api: add partial_bookings field in agenda details (#81002)
gitea/chrono/pipeline/head This commit looks good
Details
gitea/chrono/pipeline/head This commit looks good
Details
This commit is contained in:
parent
7e946138ac
commit
fbe2deea93
|
@ -20,6 +20,7 @@ import datetime
|
|||
import json
|
||||
import uuid
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import IntegrityError, transaction
|
||||
from django.db.models import BooleanField, Count, ExpressionWrapper, F, Func, Prefetch, Q
|
||||
from django.db.models.expressions import RawSQL
|
||||
|
@ -95,6 +96,8 @@ def get_agenda_detail(request, agenda, check_events=False):
|
|||
if check_events:
|
||||
agenda_detail['opened_events_available'] = bool(agenda.get_open_events().filter(full=False))
|
||||
agenda_detail['booking_form_url'] = agenda.get_booking_form_url()
|
||||
if settings.PARTIAL_BOOKINGS_ENABLED:
|
||||
agenda_detail['partial_bookings'] = agenda.partial_bookings
|
||||
elif agenda.accept_meetings():
|
||||
agenda_detail['api'] = {
|
||||
'meetings_url': request.build_absolute_uri(
|
||||
|
|
|
@ -20,7 +20,7 @@ from chrono.utils.timezone import localtime, now
|
|||
pytestmark = pytest.mark.django_db
|
||||
|
||||
|
||||
def test_agendas_api(app):
|
||||
def test_agendas_api(settings, app):
|
||||
edit_group = Group.objects.create(name='Edit')
|
||||
view_group = Group.objects.create(name='View')
|
||||
category_a = Category.objects.create(label='Category A')
|
||||
|
@ -36,7 +36,7 @@ def test_agendas_api(app):
|
|||
Desk.objects.create(agenda=event_agenda, slug='_exceptions_holder')
|
||||
event_agenda2 = Agenda.objects.create(label='Foo bar 2', category=category_a, events_type=events_type2)
|
||||
Desk.objects.create(agenda=event_agenda2, slug='_exceptions_holder')
|
||||
event_agenda3 = Agenda.objects.create(label='Foo bar 3')
|
||||
event_agenda3 = Agenda.objects.create(label='Foo bar 3', partial_bookings=True)
|
||||
Desk.objects.create(agenda=event_agenda3, slug='_exceptions_holder')
|
||||
meetings_agenda1 = Agenda.objects.create(
|
||||
label='Foo bar Meeting', kind='meetings', category=category_b, view_role=view_group
|
||||
|
@ -291,6 +291,15 @@ def test_agendas_api(app):
|
|||
resp = app.get('/api/agenda/', params={'with_open_events': '1'})
|
||||
assert len(resp.json['data']) == 1
|
||||
|
||||
settings.PARTIAL_BOOKINGS_ENABLED = True
|
||||
resp = app.get('/api/agenda/')
|
||||
assert resp.json['data'][0]['kind'] == 'events'
|
||||
assert resp.json['data'][0]['partial_bookings'] is False
|
||||
assert resp.json['data'][1]['kind'] == 'events'
|
||||
assert resp.json['data'][1]['partial_bookings'] is False
|
||||
assert resp.json['data'][2]['kind'] == 'events'
|
||||
assert resp.json['data'][2]['partial_bookings'] is True
|
||||
|
||||
for _ in range(10):
|
||||
event_agenda = Agenda.objects.create(label='Foo bar', category=category_a)
|
||||
Desk.objects.create(agenda=event_agenda, slug='_exceptions_holder')
|
||||
|
|
Loading…
Reference in New Issue