363 |
363 |
return places
|
364 |
364 |
|
365 |
365 |
|
|
366 |
def get_event_detail(request, event, agenda=None):
|
|
367 |
agenda = agenda or event.agenda
|
|
368 |
return {
|
|
369 |
'id': event.slug,
|
|
370 |
'slug': event.slug, # kept for compatibility
|
|
371 |
'text': force_text(event),
|
|
372 |
'datetime': format_response_datetime(event.start_datetime),
|
|
373 |
'description': event.description,
|
|
374 |
'pricing': event.pricing,
|
|
375 |
'url': event.url,
|
|
376 |
'disabled': bool(event.full),
|
|
377 |
'api': {
|
|
378 |
'bookings_url': request.build_absolute_uri(
|
|
379 |
reverse(
|
|
380 |
'api-event-bookings',
|
|
381 |
kwargs={'agenda_identifier': agenda.slug, 'event_identifier': event.slug},
|
|
382 |
)
|
|
383 |
),
|
|
384 |
'fillslot_url': request.build_absolute_uri(
|
|
385 |
reverse(
|
|
386 |
'api-fillslot', kwargs={'agenda_identifier': agenda.slug, 'event_identifier': event.slug},
|
|
387 |
)
|
|
388 |
),
|
|
389 |
'status_url': request.build_absolute_uri(
|
|
390 |
reverse(
|
|
391 |
'api-event-status',
|
|
392 |
kwargs={'agenda_identifier': agenda.slug, 'event_identifier': event.slug},
|
|
393 |
)
|
|
394 |
),
|
|
395 |
},
|
|
396 |
'places': get_event_places(event),
|
|
397 |
}
|
|
398 |
|
|
399 |
|
366 |
400 |
def get_resources_from_request(request, agenda):
|
367 |
401 |
if agenda.kind != 'meetings' or 'resources' not in request.GET:
|
368 |
402 |
return []
|
... | ... | |
463 |
497 |
)
|
464 |
498 |
)
|
465 |
499 |
|
466 |
|
response = {
|
467 |
|
'data': [
|
468 |
|
{
|
469 |
|
'id': x.slug,
|
470 |
|
'slug': x.slug, # kept for compatibility
|
471 |
|
'text': force_text(x),
|
472 |
|
'datetime': format_response_datetime(x.start_datetime),
|
473 |
|
'description': x.description,
|
474 |
|
'pricing': x.pricing,
|
475 |
|
'url': x.url,
|
476 |
|
'disabled': bool(x.full),
|
477 |
|
'api': {
|
478 |
|
'bookings_url': request.build_absolute_uri(
|
479 |
|
reverse(
|
480 |
|
'api-event-bookings',
|
481 |
|
kwargs={'agenda_identifier': agenda.slug, 'event_identifier': x.slug},
|
482 |
|
)
|
483 |
|
),
|
484 |
|
'fillslot_url': request.build_absolute_uri(
|
485 |
|
reverse(
|
486 |
|
'api-fillslot',
|
487 |
|
kwargs={'agenda_identifier': agenda.slug, 'event_identifier': x.slug},
|
488 |
|
)
|
489 |
|
),
|
490 |
|
'status_url': request.build_absolute_uri(
|
491 |
|
reverse(
|
492 |
|
'api-event-status',
|
493 |
|
kwargs={'agenda_identifier': agenda.slug, 'event_identifier': x.slug},
|
494 |
|
)
|
495 |
|
),
|
496 |
|
},
|
497 |
|
'places': get_event_places(x),
|
498 |
|
}
|
499 |
|
for x in entries
|
500 |
|
]
|
501 |
|
}
|
|
500 |
response = {'data': [get_event_detail(request, x, agenda=agenda) for x in entries]}
|
502 |
501 |
return Response(response)
|
503 |
502 |
|
504 |
503 |
|
... | ... | |
1438 |
1437 |
event = self.get_object(agenda_identifier, event_identifier)
|
1439 |
1438 |
response = {
|
1440 |
1439 |
'err': 0,
|
1441 |
|
'places': get_event_places(event),
|
1442 |
1440 |
}
|
|
1441 |
response.update(get_event_detail(request, event))
|
1443 |
1442 |
return Response(response)
|
1444 |
1443 |
|
1445 |
1444 |
|