diff options
-rw-r--r-- | mediagoblin/media_types/image/models.py | 12 | ||||
-rw-r--r-- | mediagoblin/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 @@ <h3>Added on</h3> <p>{{ date }}</p> {%- 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(':','-') -%} - <h3>Created on</h3> - <p>{{ date }}</p> - {%- 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") -%} + <h3>Created on</h3> + <p>{{ date }}</p> + {%- endtrans %} + {%- endif %} {% endif %} {% if media.tags %} {% include "mediagoblin/utils/tags.html" %} |