From d682d066d375177461db82986dc79028925a8819 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tryggvi=20Bj=C3=B6rgvinsson?= Date: Sun, 25 Nov 2012 16:09:35 +0000 Subject: [PATCH] Moved exif date transformation logic from template to image data model (as a function) --- mediagoblin/media_types/image/models.py | 12 ++++++++++++ .../templates/mediagoblin/user_pages/media.html | 15 ++++++++------- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/mediagoblin/media_types/image/models.py b/mediagoblin/media_types/image/models.py index fc518daa..b02c41d3 100644 --- a/mediagoblin/media_types/image/models.py +++ b/mediagoblin/media_types/image/models.py @@ -40,6 +40,18 @@ class ImageData(Base): gps_altitude = Column(Float) gps_direction = Column(Float) + def get_original_date(self): + import datetime + try: + # Try wrapped around all since exif_all might be none, + # EXIF DateTimeOriginal or printable might not exist, or + # strptime might not be able to parse date correctly + exif_date = self.exif_all['EXIF DateTimeOriginal']['printable'] + original_date = datetime.datetime.strptime(exif_date, + '%Y:%m:%d %H:%M:%S') + return original_date + except: + return None DATA_MODEL = ImageData MODELS = [ImageData] diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 5932174d..2dcbf90c 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -153,13 +153,14 @@

Added on

{{ date }}

{%- endtrans %} - {% if app_config['original_date_visible'] - and media.media_data.exif_all is defined - and 'EXIF DateTimeOriginal' in media.media_data.exif_all %} - {% trans date=media.media_data.exif_all['EXIF DateTimeOriginal']['printable'][:10].replace(':','-') -%} -

Created on

-

{{ date }}

- {%- endtrans %} + {% if app_config['original_date_visible'] %} + {% set original_date = media.media_data.get_original_date() %} + {% if original_date -%} + {% trans date=original_date.strftime("%Y-%m-%d") -%} +

Created on

+

{{ date }}

+ {%- endtrans %} + {%- endif %} {% endif %} {% if media.tags %} {% include "mediagoblin/utils/tags.html" %}