29 |
29 |
from ..agendas.models import Agenda, Event, Booking, MeetingType, TimePeriod
|
30 |
30 |
|
31 |
31 |
|
|
32 |
def get_agenda_data(request, agenda):
|
|
33 |
agenda_data = {
|
|
34 |
'id': agenda.id,
|
|
35 |
'slug': agenda.slug,
|
|
36 |
'text': agenda.label,
|
|
37 |
'kind': agenda.kind,
|
|
38 |
}
|
|
39 |
|
|
40 |
if agenda.kind == 'events':
|
|
41 |
agenda_data['api'] = {
|
|
42 |
'datetimes_url': request.build_absolute_uri(
|
|
43 |
reverse('api-agenda-datetimes',
|
|
44 |
kwargs={'agenda_identifier': agenda.slug}))
|
|
45 |
}
|
|
46 |
elif agenda.kind == 'meetings':
|
|
47 |
agenda_data['api'] = {
|
|
48 |
'meetings_url': request.build_absolute_uri(
|
|
49 |
reverse('api-agenda-meetings',
|
|
50 |
kwargs={'agenda_identifier': agenda.slug}))
|
|
51 |
}
|
|
52 |
return agenda_data
|
|
53 |
|
|
54 |
|
32 |
55 |
class Agendas(GenericAPIView):
|
33 |
56 |
permission_classes = ()
|
34 |
57 |
|
35 |
58 |
def get(self, request, format=None):
|
36 |
|
agendas = []
|
37 |
|
for agenda in Agenda.objects.all().order_by('label'):
|
38 |
|
agenda_data = {
|
39 |
|
'id': agenda.id,
|
40 |
|
'slug': agenda.slug,
|
41 |
|
'text': agenda.label,
|
42 |
|
'kind': agenda.kind,
|
43 |
|
}
|
44 |
|
|
45 |
|
if agenda.kind == 'events':
|
46 |
|
agenda_data['api'] = {
|
47 |
|
'datetimes_url': request.build_absolute_uri(
|
48 |
|
reverse('api-agenda-datetimes',
|
49 |
|
kwargs={'agenda_identifier': agenda.slug}))
|
50 |
|
}
|
51 |
|
elif agenda.kind == 'meetings':
|
52 |
|
agenda_data['api'] = {
|
53 |
|
'meetings_url': request.build_absolute_uri(
|
54 |
|
reverse('api-agenda-meetings',
|
55 |
|
kwargs={'agenda_identifier': agenda.slug}))
|
56 |
|
}
|
57 |
|
agendas.append(agenda_data)
|
58 |
|
|
|
59 |
agendas = [get_agenda_data(request, agenda) for agenda in Agenda.objects.all().order_by('label')]
|
59 |
60 |
return Response({'data': agendas})
|
60 |
61 |
|
61 |
62 |
agendas = Agendas.as_view()
|
62 |
63 |
|
63 |
64 |
|
|
65 |
class AgendaDetail(GenericAPIView):
|
|
66 |
"""View returning detail of a single agenda
|
|
67 |
"""
|
|
68 |
permission_classes = ()
|
|
69 |
|
|
70 |
def get(self, request, agenda_identifier):
|
|
71 |
agenda = get_object_or_404(Agenda, slug=agenda_identifier)
|
|
72 |
return Response({'data': get_agenda_data(request, agenda)})
|
|
73 |
|
|
74 |
agenda = AgendaDetail.as_view()
|
|
75 |
|
|
76 |
|
64 |
77 |
class Datetimes(GenericAPIView):
|
65 |
78 |
permission_classes = ()
|
66 |
79 |
|