From 32ff6e67e709e8597674427a629dc6dc6bd71d1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Espino?= Date: Tue, 17 Jan 2017 14:18:18 +0100 Subject: [PATCH] Adding support for preview svg and psd images --- CHANGELOG.md | 4 ++-- settings/common.py | 3 +++ taiga/projects/attachments/serializers.py | 6 ++++++ taiga/projects/attachments/services.py | 5 +++++ 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 570f8314..bbc26535 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,8 +8,8 @@ - Ability to create rich text custom fields in Epics, User Stories, Tasks and Isues. - Full text search now use simple as tokenizer so search with non-english text are allowed. - Duplicate project: allows creating a new project based on the structure of another (status, tags, colors, default values...) -- Add thumbnails for PSD files. -- Add thumbnails for SVG files (Cario lib is needed). +- Add thumbnails and preview for PSD files. +- Add thumbnails and preview for SVG files (Cario lib is needed). - i18n: - Add japanese (ja) translation. - Add korean (ko) translation. diff --git a/settings/common.py b/settings/common.py index 0f5911f9..b4c9e002 100644 --- a/settings/common.py +++ b/settings/common.py @@ -483,6 +483,7 @@ THN_LOGO_BIG_SIZE = 300 # 300x300 pixels THN_TIMELINE_IMAGE_SIZE = 640 # 640x??? pixels THN_CARD_IMAGE_WIDTH = 300 # 300 pixels THN_CARD_IMAGE_HEIGHT = 200 # 200 pixels +THN_PREVIEW_IMAGE_WIDTH = 800 # 800 pixels THN_AVATAR_SMALL = "avatar" THN_AVATAR_BIG = "big-avatar" @@ -490,6 +491,7 @@ THN_LOGO_SMALL = "logo-small" THN_LOGO_BIG = "logo-big" THN_ATTACHMENT_TIMELINE = "timeline-image" THN_ATTACHMENT_CARD = "card-image" +THN_ATTACHMENT_PREVIEW = "preview-image" THUMBNAIL_ALIASES = { "": { @@ -499,6 +501,7 @@ THUMBNAIL_ALIASES = { THN_LOGO_BIG: {"size": (THN_LOGO_BIG_SIZE, THN_LOGO_BIG_SIZE), "crop": True}, THN_ATTACHMENT_TIMELINE: {"size": (THN_TIMELINE_IMAGE_SIZE, 0), "crop": True}, THN_ATTACHMENT_CARD: {"size": (THN_CARD_IMAGE_WIDTH, THN_CARD_IMAGE_HEIGHT), "crop": True}, + THN_ATTACHMENT_PREVIEW: {"size": (THN_PREVIEW_IMAGE_WIDTH, 0), "crop": False}, }, } diff --git a/taiga/projects/attachments/serializers.py b/taiga/projects/attachments/serializers.py index ce8893b7..17176466 100644 --- a/taiga/projects/attachments/serializers.py +++ b/taiga/projects/attachments/serializers.py @@ -42,6 +42,7 @@ class AttachmentSerializer(serializers.LightSerializer): sha1 = Field() url = MethodField("get_url") thumbnail_card_url = MethodField("get_thumbnail_card_url") + preview_url = MethodField("get_preview_url") def get_url(self, obj): return obj.attached_file.url @@ -49,6 +50,11 @@ class AttachmentSerializer(serializers.LightSerializer): def get_thumbnail_card_url(self, obj): return services.get_card_image_thumbnail_url(obj) + def get_preview_url(self, obj): + if obj.name.endswith(".psd"): + return services.get_attachment_image_preview_url(obj) + return self.get_url(obj) + class BasicAttachmentsInfoSerializerMixin(serializers.LightSerializer): """ diff --git a/taiga/projects/attachments/services.py b/taiga/projects/attachments/services.py index b3305552..80f4afc3 100644 --- a/taiga/projects/attachments/services.py +++ b/taiga/projects/attachments/services.py @@ -28,3 +28,8 @@ def get_card_image_thumbnail_url(attachment): if attachment.attached_file: return get_thumbnail_url(attachment.attached_file, settings.THN_ATTACHMENT_CARD) return None + +def get_attachment_image_preview_url(attachment): + if attachment.attached_file: + return get_thumbnail_url(attachment.attached_file, settings.THN_ATTACHMENT_PREVIEW) + return None