exif_all = self.media_data.get("exif_all")
- taken = None
+ exif_short = {}
+
if 'Image DateTimeOriginal' in exif_all:
# format date taken
takendate = datetime.datetime.strptime(
'%Y:%m:%d %H:%M:%S').date()
taken = takendate.strftime('%B %d %Y')
+ exif_short.update({'Date Taken': taken})
+
aperture = None
if 'EXIF FNumber' in exif_all:
fnum = str(exif_all['EXIF FNumber']['printable']).split('/')
elif fnum[0] != 'None':
aperture = "f/%s" % (fnum[0])
- return {
- "Camera" : exif_all['Image Model']['printable'],
- "Exposure" : '%s sec' % exif_all['EXIF ExposureTime']['printable'],
- "Aperture" : aperture,
- "ISO" : exif_all['EXIF ISOSpeedRatings']['printable'],
- "Focal Length" : '%s mm' % exif_all['EXIF FocalLength']['printable'],
- "Date Taken" : taken,
- }
+ if aperture:
+ exif_short.update({'Aperture': aperture})
+
+ short_keys = [
+ ('Camera', 'Image Model', None),
+ ('Exposure', 'EXIF ExposureTime', lambda x: '%s sec' % x),
+ ('ISO Speed', 'EXIF ISOSpeedRatings', None),
+ ('Focal Length', 'EXIF FocalLength', lambda x: '%s mm' % x)]
+
+ for label, key, fmt_func in short_keys:
+ try:
+ val = fmt_func(exif_all[key]['printable']) if fmt_func \
+ else exif_all[key]['printable']
+ exif_short.update({label: val})
+ except KeyError:
+ pass
+
+ return exif_short
+
class MediaCommentMixin(object):
@property
#}
{% block exif_content %}
-<style type="text/css">
-#exif_content h3 {
- border-bottom: 1px solid #333;
-}
-#exif_camera_information {
- margin-bottom: 20px;
-}
-
-#exif_additional_info {
- display: none;
-}
-#exif_additional_info table {
- font-size: 11px;
- margin-top: 10px;
-}
-#exif_additional_info td {
- vertical-align: top;
- padding-bottom: 5px;
-}
-#exif_content .col1 {
- padding-right: 20px;
-}
-#exif_additional_info table tr {
- margin-bottom: 10px;
-}
-</style>
<noscript>
<style type="text/css">
#exif_additional_info {
<h3>Camera Information</h3>
<table id="exif_camera_information">
<tbody>
+ {% for label, value in media.exif_display_data_short().iteritems() %}
<tr>
- <td class="col1">Taken on</td>
- <td>{{ media.exif_display_data_short()['Date Taken'] }}</td>
- </tr>
- <tr>
- <td class="col1">Camera</td>
- <td>{{ media.exif_display_data_short()['Camera'] }}</td>
- </tr>
- <tr>
- <td class="col1">Exposure</td>
- <td>{{ media.exif_display_data_short()['Exposure'] }}</td>
- </tr>
- <tr>
- <td class="col1">Aperture</td>
- <td>{{ media.exif_display_data_short()['Aperture'] }}</td>
- </tr>
- <tr>
- <td class="col1">ISO</td>
- <td>{{ media.exif_display_data_short()['ISO'] }}</td>
- </tr>
- <tr>
- <td class="col1">Focal Length</td>
- <td>{{ media.exif_display_data_short()['Focal Length'] }}</td>
+ <td class="col1">{{ label }}</td>
+ <td>{{ value }}</td>
</tr>
+ {% endfor %}
</tbody>
</table>
<h3 id="exif_additional_info_button" class="button_action">