website/www/conservancy/apps/events/view_helpers.py
Ben Sturmfels 2d078b0004
Apply futurize --stage-2 Python 2/3 compatibility transformations.
These changes specifically require the use of the "future" library.
2021-11-30 07:55:45 +11:00

20 lines
781 B
Python

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(set(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