From bee0867a2a653ca6606a6a95dd55228be044b097 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sat, 7 Jan 2017 14:57:25 -0800 Subject: [PATCH 1/5] Add document thumbnail images; use django-suit theme for admin --- requirements.txt | 1 + src/documents/admin.py | 13 ++++++++++++- src/paperless/settings.py | 16 ++++++++++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 193a6d063..68ffdc2c5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,6 +3,7 @@ Pillow>=3.1.1 django-crispy-forms>=1.6.0 django-extensions>=1.6.1 django-filter>=1.0 +django-suit>=0.2.23 djangorestframework>=3.4.4 filemagic>=1.6 langdetect>=1.0.5 diff --git a/src/documents/admin.py b/src/documents/admin.py index 4e81f7916..37a014426 100644 --- a/src/documents/admin.py +++ b/src/documents/admin.py @@ -53,13 +53,24 @@ class DocumentAdmin(admin.ModelAdmin): } search_fields = ("correspondent__name", "title", "content") - list_display = ("created", "correspondent", "title", "tags_", "document") + list_display = ("created", "title", "thumbnail", "correspondent", "tags_") list_filter = ("tags", "correspondent", MonthListFilter) + ordering = ["-created", "correspondent"] list_per_page = 25 def created_(self, obj): return obj.created.date().strftime("%Y-%m-%d") + def thumbnail(self, obj): + png_img = self._html_tag( + "img", + src="/fetch/thumb/{}".format(obj.id), + width=275, + alt="thumbnail", + title=obj.file_name) + return self._html_tag("a", png_img, href=obj.download_url) + thumbnail.allow_tags = True + def tags_(self, obj): r = "" for tag in obj.tags.all(): diff --git a/src/paperless/settings.py b/src/paperless/settings.py index fbc45db05..e90099ae3 100644 --- a/src/paperless/settings.py +++ b/src/paperless/settings.py @@ -44,6 +44,7 @@ if os.path.exists("/etc/paperless.conf"): INSTALLED_APPS = [ + 'suit', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', @@ -60,6 +61,21 @@ INSTALLED_APPS = [ ] +SUIT_CONFIG = { + 'ADMIN_NAME': 'Paperless', + 'SEARCH_URL': '', + 'LIST_PER_PAGE': 100, + 'HEADER_DATE_FORMAT': 'D m-d-Y', + 'MENU': ( + 'sites', + { 'app': 'documents', + 'label': 'Paperless', + 'icon': 'icon-file', + 'models': ('Document', 'Tag', 'Correspondent', 'log') + }, + ) +} + MIDDLEWARE_CLASSES = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', From e6526d3fd457fa015038d96640ba75a05247022d Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sat, 7 Jan 2017 15:12:45 -0800 Subject: [PATCH 2/5] Make timezone configurable --- paperless.conf.example | 3 +++ src/paperless/settings.py | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/paperless.conf.example b/paperless.conf.example index 3fb6ceb4b..2e7a79745 100644 --- a/paperless.conf.example +++ b/paperless.conf.example @@ -102,3 +102,6 @@ PAPERLESS_SHARED_SECRET="" # as is "example.com,www.example.com", but NOT " example.com" or "example.com," #PAPERLESS_ALLOWED_HOSTS="example.com,www.example.com" +# Override the default UTC time zone here +#PAPERLESS_TIME_ZONE=America/Los_Angeles + diff --git a/src/paperless/settings.py b/src/paperless/settings.py index e90099ae3..4dcfd0ab1 100644 --- a/src/paperless/settings.py +++ b/src/paperless/settings.py @@ -157,7 +157,7 @@ AUTH_PASSWORD_VALIDATORS = [ LANGUAGE_CODE = 'en-us' -TIME_ZONE = 'UTC' +TIME_ZONE = os.getenv("PAPERLESS_TIME_ZONE", "UTC") USE_I18N = True From 3c08fa9b33a3967ad1f7543fd487af7759355e8a Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sat, 7 Jan 2017 23:15:59 -0800 Subject: [PATCH 3/5] Make number of list items per page configurable --- paperless.conf.example | 3 +++ src/documents/admin.py | 1 - src/paperless/settings.py | 3 ++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/paperless.conf.example b/paperless.conf.example index 2e7a79745..969666954 100644 --- a/paperless.conf.example +++ b/paperless.conf.example @@ -105,3 +105,6 @@ PAPERLESS_SHARED_SECRET="" # Override the default UTC time zone here #PAPERLESS_TIME_ZONE=America/Los_Angeles +# Customize number of list items to show per page +#PAPERLESS_LIST_PER_PAGE=50 + diff --git a/src/documents/admin.py b/src/documents/admin.py index 37a014426..d59cec0bd 100644 --- a/src/documents/admin.py +++ b/src/documents/admin.py @@ -56,7 +56,6 @@ class DocumentAdmin(admin.ModelAdmin): list_display = ("created", "title", "thumbnail", "correspondent", "tags_") list_filter = ("tags", "correspondent", MonthListFilter) ordering = ["-created", "correspondent"] - list_per_page = 25 def created_(self, obj): return obj.created.date().strftime("%Y-%m-%d") diff --git a/src/paperless/settings.py b/src/paperless/settings.py index 4dcfd0ab1..416513e57 100644 --- a/src/paperless/settings.py +++ b/src/paperless/settings.py @@ -61,10 +61,11 @@ INSTALLED_APPS = [ ] +_list_per_page = int(os.getenv("PAPERLESS_LIST_PER_PAGE", 25)) SUIT_CONFIG = { 'ADMIN_NAME': 'Paperless', 'SEARCH_URL': '', - 'LIST_PER_PAGE': 100, + 'LIST_PER_PAGE': _list_per_page, 'HEADER_DATE_FORMAT': 'D m-d-Y', 'MENU': ( 'sites', From a32625ca04c67d1bc2f1f414140095b728ccb361 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sat, 7 Jan 2017 23:27:10 -0800 Subject: [PATCH 4/5] Make OCR_LANGUAGE configurable (Fix #176) --- paperless.conf.example | 4 ++++ src/paperless/settings.py | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/paperless.conf.example b/paperless.conf.example index 969666954..8b0e014c8 100644 --- a/paperless.conf.example +++ b/paperless.conf.example @@ -108,3 +108,7 @@ PAPERLESS_SHARED_SECRET="" # Customize number of list items to show per page #PAPERLESS_LIST_PER_PAGE=50 +# Customize the default language that tesseract will attempt to use when parsing +# documents. It should be a 3-letter language code consistent with ISO 639. +#PAPERLESS_OCR_LANGUAGE=eng + diff --git a/src/paperless/settings.py b/src/paperless/settings.py index 416513e57..d9352d7bb 100644 --- a/src/paperless/settings.py +++ b/src/paperless/settings.py @@ -204,7 +204,7 @@ LOGGING = { # The default language that tesseract will attempt to use when parsing # documents. It should be a 3-letter language code consistent with ISO 639. -OCR_LANGUAGE = "eng" +OCR_LANGUAGE = os.getenv("PAPERLESS_OCR_LANGUAGE", "eng") # The amount of threads to use for OCR OCR_THREADS = os.getenv("PAPERLESS_OCR_THREADS") From e3edb0209055b1bee7e94520d4a654abb9647d0a Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sun, 8 Jan 2017 10:21:45 -0800 Subject: [PATCH 5/5] Change default timezone value in conf file --- paperless.conf.example | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paperless.conf.example b/paperless.conf.example index 8b0e014c8..0d82dd7ef 100644 --- a/paperless.conf.example +++ b/paperless.conf.example @@ -103,7 +103,7 @@ PAPERLESS_SHARED_SECRET="" #PAPERLESS_ALLOWED_HOSTS="example.com,www.example.com" # Override the default UTC time zone here -#PAPERLESS_TIME_ZONE=America/Los_Angeles +#PAPERLESS_TIME_ZONE=UTC # Customize number of list items to show per page #PAPERLESS_LIST_PER_PAGE=50