416 |
416 |
return places
|
417 |
417 |
|
418 |
418 |
|
419 |
|
def is_event_disabled(event, min_places=1):
|
420 |
|
if getattr(event, 'user_places_count', 0) > 0:
|
|
419 |
def is_event_disabled(event, min_places=1, disable_booked=True):
|
|
420 |
if disable_booked and getattr(event, 'user_places_count', 0) > 0:
|
421 |
421 |
return True
|
422 |
422 |
if event.start_datetime < now():
|
423 |
423 |
# event is past => not disabled (always ok to book a past event)
|
... | ... | |
450 |
450 |
|
451 |
451 |
|
452 |
452 |
def get_event_detail(
|
453 |
|
request, event, agenda=None, min_places=1, booked_user_external_id=None, show_events=None
|
|
453 |
request,
|
|
454 |
event,
|
|
455 |
agenda=None,
|
|
456 |
min_places=1,
|
|
457 |
booked_user_external_id=None,
|
|
458 |
show_events=None,
|
|
459 |
disable_booked=True,
|
454 |
460 |
):
|
455 |
461 |
agenda = agenda or event.agenda
|
456 |
462 |
details = {
|
... | ... | |
463 |
469 |
'description': event.description,
|
464 |
470 |
'pricing': event.pricing,
|
465 |
471 |
'url': event.url,
|
466 |
|
'disabled': is_event_disabled(event, min_places=min_places),
|
|
472 |
'disabled': is_event_disabled(event, min_places=min_places, disable_booked=disable_booked),
|
467 |
473 |
'api': {
|
468 |
474 |
'bookings_url': request.build_absolute_uri(
|
469 |
475 |
reverse(
|
... | ... | |
752 |
758 |
start_datetime, end_datetime = get_start_and_end_datetime_from_request(request)
|
753 |
759 |
booked_user_external_id = request.GET.get('user_external_id') or None
|
754 |
760 |
excluded_user_external_id = request.GET.get('exclude_user_external_id') or None
|
|
761 |
disable_booked = bool(excluded_user_external_id)
|
755 |
762 |
if (
|
756 |
763 |
booked_user_external_id
|
757 |
764 |
and excluded_user_external_id
|
... | ... | |
785 |
792 |
)
|
786 |
793 |
|
787 |
794 |
if request.GET.get('hide_disabled'):
|
788 |
|
entries = [e for e in entries if not is_event_disabled(e, min_places)]
|
|
795 |
entries = [
|
|
796 |
e for e in entries if not is_event_disabled(e, min_places, disable_booked=disable_booked)
|
|
797 |
]
|
789 |
798 |
|
790 |
799 |
response = {
|
791 |
800 |
'data': [
|
... | ... | |
796 |
805 |
min_places=min_places,
|
797 |
806 |
booked_user_external_id=booked_user_external_id,
|
798 |
807 |
show_events=show_events_raw,
|
|
808 |
disable_booked=disable_booked,
|
799 |
809 |
)
|
800 |
810 |
for x in entries
|
801 |
811 |
],
|