website/www/conservancy/apps/events/view_helpers.py

21 lines
778 B
Python
Raw Normal View History

def organize_media_by_event(eventmedia_queryset):
"""Organizes event media by event.
Given a queryset of event media, it returns a list of 'objects'
with the following properties:
* event (event object)
* date (date object for most recently posted media from event)
* media_list (a string of the available media types)
"""
media_by_event = {}
for media in eventmedia_queryset:
media_by_event.setdefault(media.event.id, []).append(media)
mbe = [{'event': x[0].event,
'date': max(y.date_created for y in x),
'media_list': ', '.join({y.get_format_display() for y in x})}
for x in list(media_by_event.values())]
mbe.sort(key=(lambda x: x['date']), reverse=True) # sort by date
return mbe