def get_facility_details(facility, shifts): address_line = facility.address_line if facility.address else None shifts_by_date = itertools.groupby(shifts, lambda s: s.starting_time.date()) return { 'name': facility.name, 'url': facility.get_absolute_url(), 'news': _serialize_news(NewsEntry.objects.filter(facility=facility)), 'address_line': address_line, 'contact_info': facility.contact_info, 'google_maps_link': google_maps_directions( address_line) if address_line else None, 'description': mark_safe(facility.description), 'area_slug': facility.place.area.slug, 'shifts': [{ 'date_string': date(shift_date), 'link': reverse('planner_by_facility', kwargs={ 'facility_slug': facility.slug, 'year': shift_date.year, 'month': shift_date.month, 'day': shift_date.day, }) } for shift_date, shifts_of_day in shifts_by_date], 'organization': { 'id': facility.organization.id, 'name': facility.organization.name, 'url': facility.organization.get_absolute_url(), } }
def get_context_data(self, **kwargs): context = super(HelpDesk, self).get_context_data(**kwargs) open_shifts = get_open_shifts() shifts_by_facility = itertools.groupby(open_shifts, lambda s: s.facility) facility_list = [] used_places = set() for facility, shifts_at_facility in shifts_by_facility: address_line = facility.address_line if facility.address else None shifts_by_date = itertools.groupby(shifts_at_facility, lambda s: s.starting_time.date()) used_places.add(facility.place.area) facility_list.append( { "name": facility.name, "news": getNewsFacility(facility), "address_line": address_line, "google_maps_link": google_maps_directions(address_line) if address_line else None, "description": mark_safe(facility.description), "area_slug": facility.place.area.slug, "shifts": [ { "date_string": date_filter(shift_date), "link": reverse( "planner_by_facility", kwargs={ "pk": facility.pk, "year": shift_date.year, "month": shift_date.month, "day": shift_date.day, }, ), } for shift_date, shifts_of_day in shifts_by_date ], } ) context["areas_json"] = json.dumps( [{"slug": area.slug, "name": area.name} for area in sorted(used_places, key=lambda p: p.name)] ) context["facility_json"] = json.dumps(facility_list, cls=DjangoJSONEncoder) context["shifts"] = open_shifts return context
def get_context_data(self, **kwargs): context = super(HelpDesk, self).get_context_data(**kwargs) open_shifts = get_open_shifts() shifts_by_facility = itertools.groupby(open_shifts, lambda s: s.facility) facility_list = [] used_places = set() for facility, shifts_at_facility in shifts_by_facility: address_line = facility.address_line if facility.address else None shifts_by_date = itertools.groupby(shifts_at_facility, lambda s: s.starting_time.date()) used_places.add(facility.place.area) facility_list.append({ 'name': facility.name, 'news': getNewsFacility(facility), 'address_line': address_line, 'google_maps_link': google_maps_directions( address_line) if address_line else None, 'description': mark_safe(facility.description), 'area_slug': facility.place.area.slug, 'shifts': [{ 'date_string': localize(shift_date), 'link': reverse('planner_by_facility', kwargs={ 'pk': facility.pk, 'year': shift_date.year, 'month': shift_date.month, 'day': shift_date.day, }) } for shift_date, shifts_of_day in shifts_by_date] }) context['areas_json'] = json.dumps( [{'slug': area.slug, 'name': area.name} for area in sorted(used_places, key=lambda p: p.name)]) context['facility_json'] = json.dumps(facility_list, cls=DjangoJSONEncoder) context['shifts'] = open_shifts return context
def get_facility_details(facility, shifts): address_line = facility.address_line if facility.address else None shifts_by_date = itertools.groupby(shifts, lambda s: s.starting_time.date()) return { 'name': facility.name, 'url': facility.get_absolute_url(), 'news': _serialize_news(NewsEntry.objects.filter(facility=facility)), 'address_line': address_line, 'contact_info': facility.contact_info, 'google_maps_link': google_maps_directions(address_line) if address_line else None, 'description': mark_safe(facility.description), 'area_slug': facility.place.area.slug, 'shifts': [{ 'date_string': date(shift_date), 'link': reverse('planner_by_facility', kwargs={ 'facility_slug': facility.slug, 'year': shift_date.year, 'month': shift_date.month, 'day': shift_date.day, }) } for shift_date, shifts_of_day in shifts_by_date], 'organization': { 'id': facility.organization.id, 'name': facility.organization.name, 'url': facility.organization.get_absolute_url(), } }