{% endfor %}
diff --git a/src/documents/templates/admin/documents/document/select_object.html b/src/documents/templates/admin/documents/document/select_object.html
new file mode 100644
index 000000000..249814d28
--- /dev/null
+++ b/src/documents/templates/admin/documents/document/select_object.html
@@ -0,0 +1,46 @@
+{% extends "admin/base_site.html" %}
+{% load i18n l10n admin_urls static %}
+{% load staticfiles %}
+
+{% block extrahead %}
+{{ block.super }}
+{{ media }}
+
+
+{% endblock %}
+
+{% block bodyclass %}{{ block.super }} app-{{ opts.app_label }} model-{{ opts.model_name }} delete-confirmation delete-selected-confirmation{% endblock %}
+
+{% block breadcrumbs %}
+
+{% endblock %}
+
+{% block content %}
+
Please select the {{itemname}}.
+
+{% endblock %}
\ No newline at end of file
diff --git a/src/documents/templates/admin/documents/document/viewers/viewer_image.html b/src/documents/templates/admin/documents/document/viewers/viewer_image.html
new file mode 100755
index 000000000..9e572d74a
--- /dev/null
+++ b/src/documents/templates/admin/documents/document/viewers/viewer_image.html
@@ -0,0 +1,2 @@
+

+
diff --git a/src/documents/templates/admin/documents/document/viewers/viewer_pdf.html b/src/documents/templates/admin/documents/document/viewers/viewer_pdf.html
new file mode 100755
index 000000000..4e223d935
--- /dev/null
+++ b/src/documents/templates/admin/documents/document/viewers/viewer_pdf.html
@@ -0,0 +1,119 @@
+{% load static %}
+
+
+
+
+
+ Page: /
+
+
+
+
+
+
+
+
+
+
+ {# Load and display PDF document#}
+
+
diff --git a/src/documents/views.py b/src/documents/views.py
index 9cb66b59c..4f2e53ea5 100644
--- a/src/documents/views.py
+++ b/src/documents/views.py
@@ -20,15 +20,15 @@ from rest_framework.viewsets import (
ReadOnlyModelViewSet
)
-from .filters import CorrespondentFilterSet, DocumentFilterSet, TagFilterSet
+from .filters import CorrespondentFilterSet, DocumentFilterSet, TagFilterSet, DocumentTypeFilterSet
from .forms import UploadForm
-from .models import Correspondent, Document, Log, Tag
+from .models import Correspondent, Document, Log, Tag, DocumentType
from .serialisers import (
CorrespondentSerializer,
DocumentSerializer,
LogSerializer,
- TagSerializer
-)
+ TagSerializer,
+ DocumentTypeSerializer)
class IndexView(TemplateView):
@@ -116,6 +116,17 @@ class TagViewSet(ModelViewSet):
ordering_fields = ("name", "slug")
+class DocumentTypeViewSet(ModelViewSet):
+ model = DocumentType
+ queryset = DocumentType.objects.all()
+ serializer_class = DocumentTypeSerializer
+ pagination_class = StandardPagination
+ permission_classes = (IsAuthenticated,)
+ filter_backends = (DjangoFilterBackend, OrderingFilter)
+ filter_class = DocumentTypeFilterSet
+ ordering_fields = ("name", "slug")
+
+
class DocumentViewSet(RetrieveModelMixin,
UpdateModelMixin,
DestroyModelMixin,
diff --git a/src/manage.py b/src/manage.py
old mode 100755
new mode 100644
diff --git a/src/paperless/settings.py b/src/paperless/settings.py
old mode 100755
new mode 100644
index 956b90a7f..c303114e3
--- a/src/paperless/settings.py
+++ b/src/paperless/settings.py
@@ -22,12 +22,12 @@ elif os.path.exists("/usr/local/etc/paperless.conf"):
load_dotenv("/usr/local/etc/paperless.conf")
-def __get_boolean(key):
+def __get_boolean(key, default="NO"):
"""
Return a boolean value based on whatever the user has supplied in the
environment based on whether the value "looks like" it's True or not.
"""
- return bool(os.getenv(key, "NO").lower() in ("yes", "y", "1", "t", "true"))
+ return bool(os.getenv(key, default).lower() in ("yes", "y", "1", "t", "true"))
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
@@ -47,7 +47,7 @@ SECRET_KEY = os.getenv(
# SECURITY WARNING: don't run with debug turned on in production!
-DEBUG = True
+DEBUG = __get_boolean("PAPERLESS_DEBUG", "YES")
LOGIN_URL = "admin:login"
@@ -81,7 +81,7 @@ INSTALLED_APPS = [
"rest_framework",
"crispy_forms",
- "django_filters",
+ "django_filters"
]
@@ -144,9 +144,9 @@ DATABASES = {
}
}
-if os.getenv("PAPERLESS_DBUSER") and os.getenv("PAPERLESS_DBPASS"):
+if os.getenv("PAPERLESS_DBENGINE"):
DATABASES["default"] = {
- "ENGINE": "django.db.backends.postgresql_psycopg2",
+ "ENGINE": os.getenv("PAPERLESS_DBENGINE"),
"NAME": os.getenv("PAPERLESS_DBNAME", "paperless"),
"USER": os.getenv("PAPERLESS_DBUSER"),
"PASSWORD": os.getenv("PAPERLESS_DBPASS")
@@ -198,6 +198,11 @@ STATIC_URL = os.getenv("PAPERLESS_STATIC_URL", "/static/")
MEDIA_URL = os.getenv("PAPERLESS_MEDIA_URL", "/media/")
+# Document classification models location
+MODEL_FILE = os.getenv(
+ "PAPERLESS_MODEL_FILE", os.path.join(BASE_DIR, "..", "models", "model.pickle"))
+
+
# Paperless-specific stuff
# You shouldn't have to edit any of these values. Rather, you can set these
# values in /etc/paperless.conf instead.
@@ -292,3 +297,5 @@ FY_END = os.getenv("PAPERLESS_FINANCIAL_YEAR_END")
# Specify the default date order (for autodetected dates)
DATE_ORDER = os.getenv("PAPERLESS_DATE_ORDER", "DMY")
+
+PAPERLESS_RECENT_CORRESPONDENT_YEARS = int(os.getenv("PAPERLESS_RECENT_CORRESPONDENT_YEARS", 1))
diff --git a/src/paperless/urls.py b/src/paperless/urls.py
old mode 100755
new mode 100644
index f66ce6664..2ca0faf02
--- a/src/paperless/urls.py
+++ b/src/paperless/urls.py
@@ -12,12 +12,13 @@ from documents.views import (
FetchView,
LogViewSet,
PushView,
- TagViewSet
-)
+ TagViewSet,
+ DocumentTypeViewSet)
from reminders.views import ReminderViewSet
router = DefaultRouter()
router.register(r"correspondents", CorrespondentViewSet)
+router.register(r"document_types", DocumentTypeViewSet)
router.register(r"documents", DocumentViewSet)
router.register(r"logs", LogViewSet)
router.register(r"reminders", ReminderViewSet)
diff --git a/src/reminders/models.py b/src/reminders/models.py
old mode 100755
new mode 100644