@json_view
@non_atomic_requests
def site_events(request, start, end):
 (start, end) = get_daterange_or_404(start, end)
 qs = SiteEvent.objects.filter((Q(start__gte=start, start__lte=end) | Q(end__gte=start, end__lte=end)))
 events = list(site_event_format(request, qs))
 type_pretty = unicode(amo.SITE_EVENT_CHOICES[amo.SITE_EVENT_RELEASE])
 releases = product_details.firefox_history_major_releases
 for (version, date_) in releases.items():
  events.append({'start': date_, 'type_pretty': type_pretty, 'type': amo.SITE_EVENT_RELEASE, 'description': ('Firefox %s released' % version)})
 return events

@ json_view @ non_atomic_requests def site_events ( request , start , end ) : ( start , end ) = get_daterange_or_404 ( start , end ) qs = SiteEvent . objects . filter ( ( Q ( start__gte = start , start__lte = end ) | Q ( end__gte = start , end__lte = end ) ) ) events = list ( site_event_format ( request , qs ) ) type_pretty = unicode ( amo . SITE_EVENT_CHOICES [ amo . SITE_EVENT_RELEASE ] ) releases = product_details . firefox_history_major_releases for ( version , date_ ) in releases . items ( ) : events . append ( { 'start' : date_ , 'type_pretty' : type_pretty , 'type' : amo . SITE_EVENT_RELEASE , 'description' : ( 'Firefox %s released' % version ) } ) return events
return site events in the given timeframe .