Skip to content

Commit

Permalink
Merge pull request #47 from interrogator/correct
Browse files Browse the repository at this point in the history
Corrections interface
  • Loading branch information
interrogator committed May 26, 2020
2 parents 045df8f + c274dfd commit a1b1a02
Show file tree
Hide file tree
Showing 46 changed files with 2,785 additions and 35 deletions.
47 changes: 37 additions & 10 deletions buzzword/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
https://docs.djangoproject.com/en/2.2/ref/settings/
"""
import os
import tempfile

X_FRAME_OPTIONS = "SAMEORIGIN"

Expand All @@ -18,8 +19,6 @@
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

# static files in here
# STATIC_ROOT = os.path.join(BASE_DIR, "static/")

# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/2.2/howto/deployment/checklist/
Expand All @@ -39,6 +38,7 @@
"dpd_static_support",
"start.apps.StartConfig",
"explore.apps.ExploreConfig",
"compare.apps.CompareConfig",
"django_plotly_dash.apps.DjangoPlotlyDashConfig",
"django.contrib.admin",
"django.contrib.auth",
Expand All @@ -48,6 +48,7 @@
"django.contrib.staticfiles",
"guardian",
"accounts",
"martor",
]

STATICFILES_FINDERS = [
Expand Down Expand Up @@ -116,6 +117,33 @@

WSGI_APPLICATION = "buzzword.wsgi.application"

# from https://github.com/agusmakmun/django-markdown-editor
MARTOR_ENABLE_CONFIGS = {
"emoji": False, # to enable/disable emoji icons.
"imgur": False, # to enable/disable imgur/custom uploader.
"mention": False, # to enable/disable mention
"jquery": False, # to include/revoke jquery (require for admin default django)
"living": False, # to enable/disable live updates in preview
"spellcheck": False, # to enable/disable spellcheck in form textareas
"hljs": False, # to enable/disable hljs highlighting in preview
}
# don't know why it wants bools as strings...
MARTOR_ENABLE_CONFIGS = {k: str(v).lower() for k, v in MARTOR_ENABLE_CONFIGS.items()}

MARTOR_MARKDOWN_EXTENSIONS = [
"markdown.extensions.extra",
"markdown.extensions.nl2br",
#'markdown.extensions.smarty',
#'markdown.extensions.fenced_code',
# Custom markdown extensions.
#'martor.extensions.urlize',
#'martor.extensions.del_ins', # ~~strikethrough~~ and ++underscores++
#'martor.extensions.mention', # to parse markdown mention
#'martor.extensions.emoji', # to parse markdown emoji
#'martor.extensions.mdx_video', # to parse embed/iframe video
]

# CSRF_COOKIE_HTTPONLY = False

# Database
# https://docs.djangoproject.com/en/2.2/ref/settings/#databases
Expand Down Expand Up @@ -160,14 +188,6 @@
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/2.2/howto/static-files/


# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/2.2/howto/static-files/
PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))

STATICFILES_DIRS = (os.path.join(PROJECT_ROOT, "static"),)
STATIC_URL = "/static/"

PLOTLY_DASH = {
# Route used for the message pipe websocket connection
"ws_route": "dpd/ws/channel",
Expand All @@ -186,3 +206,10 @@
# Flag controlling local serving of assets
"serve_locally": False,
}


STATIC_URL = "/static/"
STATICFILES_DIRS = ["static"]
MEDIA_URL = "/media/"
STATIC_ROOT = os.path.join(tempfile.gettempdir(), "buzzword_static")
MEDIA_ROOT = os.path.join(tempfile.gettempdir(), "buzzword_media")
4 changes: 2 additions & 2 deletions buzzword/static/jquery.min.js

Large diffs are not rendered by default.

Binary file added buzzword/static/testpage.pdf
Binary file not shown.
48 changes: 48 additions & 0 deletions buzzword/templates/compare/sidetoside.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
{% extends "jbase.html" %}
{% load static %}
{% load martortags %}
{% block title %}buzzword: compare{% endblock %}
{% block content %}

<div style="margin-top:100px;">

{% if messages %}
<ul class="messages">
{% for message in messages %}
<div class="alert alert-dismissible fade show alert-{{ message.tags }}" role="alert">{{ message }}
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
{% endfor %}
</ul>
{% endif %}

<div class="container">
<div class="row">
<div class="col-sm">
<div>
<object data={{ pdf_filepath }} type="application/pdf" width="100%" height="400vh">
<embed src={{ pdf_filepath }} type="application/pdf" />
</object>
{% include "comparenav.html" %}
</div>
</div>
<div class="col-sm">
<form method="POST" enctype="multipart/form-data">
{% csrf_token %}
<div style="height:400vh;">
{{ form.description }}
<div class="float-right">
Describe your changes:
{{ form.commit_msg }}
<button type="submit" class="btn btn-primary">Update</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
{% endblock %}

23 changes: 23 additions & 0 deletions buzzword/templates/comparenav.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<div class="pagination">
<span class="step-links" style="width:100%">
{% if page_obj.has_previous %}
<a align='left' type='button' class='btn btn-primary' href="?page=1">&laquo; first</a>
<a align='left' type='button' class='btn btn-primary' href="?page={{ page_obj.previous_page_number }}">previous</a>
{% else %}
<a align='left' type='button' disabled class='btn btn-primary'>&laquo; first</a>
<a align='left' type='button' disabled class='btn btn-primary'">previous</a>
{% endif %}

<span class="current">
Page {{ page_obj.number }} of {{ page_obj.paginator.num_pages }}
</span>

{% if page_obj.has_next %}
<a align='right' type='button' class='btn btn-primary float-right' href="?page={{ page_obj.paginator.num_pages }}">last &raquo;</a>
<a align='right' type='button' class='btn btn-primary float-right' href="?page={{ page_obj.next_page_number }}">next</a>
{% else %}
<a align='right' type='button' disabled class='btn btn-primary float-right'>last &raquo;</a>
<a align='right' type='button' disabled class='btn btn-primary float-right'>next</a>
{% endif %}
</span>
</div>
33 changes: 33 additions & 0 deletions buzzword/templates/jbase.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{% load static %}<!DOCTYPE html>
<html lang="en-us">
<head>
<title>{% block title %}buzzword{% endblock %}</title>
<link href="{% static 'plugins/css/ace.min.css' %}" type="text/css" media="all" rel="stylesheet" />
<link href="{% static 'plugins/css/semantic.min.css' %}" type="text/css" media="all" rel="stylesheet" />
<link href="{% static 'plugins/css/resizable.min.css' %}" type="text/css" media="all" rel="stylesheet" />
<link href="{% static 'martor/css/martor.min.css' %}" type="text/css" media="all" rel="stylesheet" />
<link rel="stylesheet" href="{% static 'bootstrap.min.css' %}"/>
<script type="text/javascript" src="{% static 'jquery.min.js' %}"></script>
<script type="text/javascript" src="{% static 'bootstrap.min.js' %}"></script>
<link rel="stylesheet" href="{% static 'custom.css' %}"/>
</head>
<body>
{% include "nav.html" %}

{% block content %}{% endblock %}

<script type="text/javascript" src="{% static 'plugins/js/ace.js' %}"></script>
<script type="text/javascript" src="{% static 'plugins/js/semantic.min.js' %}"></script>
<script type="text/javascript" src="{% static 'plugins/js/mode-markdown.js' %}"></script>
<script type="text/javascript" src="{% static 'plugins/js/ext-language_tools.js' %}"></script>
<script type="text/javascript" src="{% static 'plugins/js/theme-github.js' %}"></script>
<script type="text/javascript" src="{% static 'plugins/js/typo.js' %}"></script>
<script type="text/javascript" src="{% static 'plugins/js/spellcheck.js' %}"></script>
<script type="text/javascript" src="{% static 'plugins/js/highlight.min.js' %}"></script>
<script type="text/javascript" src="{% static 'plugins/js/resizable.min.js' %}"></script>
<script type="text/javascript" src="{% static 'plugins/js/emojis.min.js' %}"></script>
<script type="text/javascript" src="{% static 'martor/js/martor.min.js' %}"></script>

{% block js %}{% endblock %}
</body>
</html>
20 changes: 13 additions & 7 deletions buzzword/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,16 @@
from django.contrib import admin
from django.urls import include, path

urlpatterns = [
path("", include("start.urls")),
path("", include("accounts.urls")),
path("explore/", include("explore.urls")),
path("admin/", admin.site.urls),
path("resources/", include("django_plotly_dash.urls")),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns = (
[
path("", include("start.urls")),
path("", include("accounts.urls")),
path("compare/", include("compare.urls")),
path("explore/", include("explore.urls")),
path("martor/", include("martor.urls")),
path("admin/", admin.site.urls),
path("resources/", include("django_plotly_dash.urls")),
]
+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
+ static(settings.MEDIA_URL)
)
Empty file added compare/__init__.py
Empty file.
18 changes: 18 additions & 0 deletions compare/admin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
from django.db import models
from django.contrib import admin

from martor.widgets import AdminMartorWidget
from martor.models import MartorField

from .models import Post


class PostAdmin(admin.ModelAdmin):
list_display = ["commit_msg", "description"]
formfield_overrides = {
MartorField: {"widget": AdminMartorWidget},
models.TextField: {"widget": AdminMartorWidget},
}


admin.site.register(Post, PostAdmin)
5 changes: 5 additions & 0 deletions compare/apps.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
from django.apps import AppConfig


class CompareConfig(AppConfig):
name = "compare"
15 changes: 15 additions & 0 deletions compare/forms.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
from django import forms

from martor.fields import MartorFormField
from .models import Post


class SubmitForm(forms.Form):
description = MartorFormField()
commit_msg = forms.CharField(widget=forms.TextInput())


class PostForm(forms.ModelForm):
class Meta:
model = Post
fields = "__all__"
17 changes: 17 additions & 0 deletions compare/load.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import os
from .utils import _get_pdf_paths
from .models import PDF
from django.db import IntegrityError


def load_pdfs(corpus):
paths = _get_pdf_paths(corpus.slug)
for i, path in enumerate(paths):
name = os.path.basename(path)
name = os.path.splitext(name)[0]
pdf = PDF(name=name, num=i, path=path, slug=corpus.slug)
try:
pdf.save()
print(f"Storing PDF in DB: {pdf.path}")
except IntegrityError:
print(f"PDF exists in DB: {pdf.path}")
23 changes: 23 additions & 0 deletions compare/migrations/0001_initial.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Generated by Django 3.0.6 on 2020-05-11 14:23

from django.db import migrations, models
import martor.models


class Migration(migrations.Migration):

initial = True

dependencies = [
]

operations = [
migrations.CreateModel(
name='OCRText',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('content', martor.models.MartorField()),
('commit_msg', models.CharField(blank=True, max_length=255)),
],
),
]
26 changes: 26 additions & 0 deletions compare/migrations/0002_auto_20200511_1717.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Generated by Django 3.0.6 on 2020-05-11 17:17

from django.db import migrations, models
import martor.models


class Migration(migrations.Migration):

dependencies = [
('compare', '0001_initial'),
]

operations = [
migrations.CreateModel(
name='Post',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=200)),
('description', martor.models.MartorField()),
('wiki', martor.models.MartorField()),
],
),
migrations.DeleteModel(
name='OCRText',
),
]
23 changes: 23 additions & 0 deletions compare/migrations/0003_pdf.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Generated by Django 3.0.6 on 2020-05-25 14:28

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('compare', '0002_auto_20200511_1717'),
]

operations = [
migrations.CreateModel(
name='PDF',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('slug', models.SlugField(max_length=255)),
('path', models.TextField()),
('name', models.CharField(max_length=200)),
('num', models.IntegerField()),
],
),
]
17 changes: 17 additions & 0 deletions compare/migrations/0004_auto_20200525_1446.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Generated by Django 3.0.6 on 2020-05-25 14:46

from django.db import migrations


class Migration(migrations.Migration):

dependencies = [
('compare', '0003_pdf'),
]

operations = [
migrations.AlterUniqueTogether(
name='pdf',
unique_together={('slug', 'num')},
),
]

0 comments on commit a1b1a02

Please sign in to comment.