File diff 48cba465ea30 → 8e6ea8ad71bf
Show inline comments
new file 100644
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(, []).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 media_by_event.values()]
    mbe.sort(key=(lambda x: x['date']), reverse=True) # sort by date
    return mbe