From bee0867a2a653ca6606a6a95dd55228be044b097 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sat, 7 Jan 2017 14:57:25 -0800 Subject: [PATCH] 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',