Projet

Général

Profil

0001-event-show-booking-sorted-by-creation-40019.patch

Lauréline Guérin, 21 février 2020 16:35

Télécharger (3,1 ko)

Voir les différences:

Subject: [PATCH] event: show booking sorted by creation (#40019)

 chrono/manager/views.py | 14 ++++++++------
 tests/test_manager.py   | 18 +++++++++++++++---
 2 files changed, 23 insertions(+), 9 deletions(-)
chrono/manager/views.py
712 712
        context = super(EventDetailView, self).get_context_data(**kwargs)
713 713
        context['user_can_manage'] = self.agenda.can_be_managed(self.request.user)
714 714
        event = self.get_object()
715
        context['booked'] = event.booking_set.filter(
716
            cancellation_datetime__isnull=True, in_waiting_list=False
717
        )
718
        context['waiting'] = event.booking_set.filter(
719
            cancellation_datetime__isnull=True, in_waiting_list=True
720
        )
715
        context['booked'] = (
716
            event.booking_set
717
            .filter(cancellation_datetime__isnull=True, in_waiting_list=False)
718
            .order_by('creation_datetime'))
719
        context['waiting'] = (
720
            event.booking_set
721
            .filter(cancellation_datetime__isnull=True, in_waiting_list=True)
722
            .order_by('creation_datetime'))
721 723
        return context
722 724

  
723 725

  
tests/test_manager.py
1978 1978
    agenda = Agenda(label=u'Foo bar')
1979 1979
    agenda.view_role = manager_user.groups.all()[0]
1980 1980
    agenda.save()
1981
    event = Event(
1981
    event = Event.objects.create(
1982 1982
        label='xyz',
1983 1983
        start_datetime=make_aware(datetime.datetime(2019, 12, 22, 17, 0)),
1984 1984
        places=10,
1985 1985
        agenda=agenda,
1986 1986
    )
1987
    event.save()
1988 1987
    for i in range(8):
1989
        Booking(event=event).save()
1988
        Booking.objects.create(event=event)
1989
    Booking.objects.create(event=event, cancellation_datetime=now())
1990 1990
    app = login(app, username='manager', password='manager')
1991 1991
    resp = app.get('/manage/agendas/%s/2019/12/' % agenda.id, status=200)
1992 1992
    resp = resp.click('xyz')
......
1998 1998
    resp = app.get(resp.request.url)
1999 1999
    assert 'Waiting List (0/5)' in resp.text
2000 2000

  
2001
    booking = Booking.objects.order_by('pk')[0]
2002
    booking.in_waiting_list = True
2003
    booking.save()
2004
    booking = Booking.objects.order_by('pk')[1]
2005
    booking.in_waiting_list = True
2006
    booking.save()
2007
    resp = app.get(resp.request.url)
2008
    assert 'Waiting List (2/5)' in resp.text
2009
    assert 'Bookings (6/10)' in resp.text
2010
    assert list(resp.context['booked']) == list(Booking.objects.order_by('creation_datetime')[2:8])
2011
    assert list(resp.context['waiting']) == list(Booking.objects.order_by('creation_datetime')[0:2])
2012

  
2001 2013
    event.places = 5
2002 2014
    event.save()
2003 2015
    resp = app.get(resp.request.url)
2004
-