aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mediagoblin/media_types/image/models.py12
-rw-r--r--mediagoblin/templates/mediagoblin/user_pages/media.html15
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" %}