Moved exif date transformation logic from template to image data model (as a function)

This commit is contained in:
Tryggvi Björgvinsson 2012-11-25 16:09:35 +00:00
parent 24d310e46f
commit d682d066d3
2 changed files with 20 additions and 7 deletions

View File

@ -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]

View File

@ -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" %}