File diff 48cba465ea30 → 8e6ea8ad71bf
www/conservancy/apps/events/view_helpers.py
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(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 media_by_event.values()]
 
    mbe.sort(key=(lambda x: x['date']), reverse=True) # sort by date
 
    return mbe