Exemplo n.º 1
0
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(),
        }
    }
Exemplo n.º 2
0
    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
Exemplo n.º 3
0
    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
Exemplo n.º 4
0
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(),
        }
    }