Projet

Général

Profil

0001-time-exceptions-never-show-past-exceptions-19033.patch

Lauréline Guérin, 04 novembre 2019 10:03

Télécharger (3,24 ko)

Voir les différences:

Subject: [PATCH 1/3] time exceptions: never show past exceptions (#19033)

 chrono/manager/views.py |  2 +-
 tests/test_manager.py   | 35 +++++++++++++++++++++++++++++++++++
 2 files changed, 36 insertions(+), 1 deletion(-)
chrono/manager/views.py
749 749
    model = TimePeriodException
750 750

  
751 751
    def get_queryset(self):
752
        return self.model.objects.filter(desk=self.desk)
752
        return self.model.objects.filter(desk=self.desk, end_datetime__gte=now())
753 753

  
754 754
    def get_context_data(self, **kwargs):
755 755
        context = super(TimePeriodExceptionListView, self).get_context_data(**kwargs)
tests/test_manager.py
1012 1012
    resp = resp.form.submit()
1013 1013
    assert TimePeriodException.objects.count() == 0
1014 1014

  
1015

  
1016
def test_exception_list(app, admin_user):
1017
    agenda = Agenda.objects.create(label='Foo bar', kind='meetings')
1018
    desk = Desk.objects.create(agenda=agenda, label='Desk A')
1019
    MeetingType(agenda=agenda, label='Blah').save()
1020
    TimePeriod.objects.create(weekday=1, desk=desk,
1021
                              start_time=datetime.time(10, 0), end_time=datetime.time(12, 0))
1022
    past_exception = TimePeriodException.objects.create(
1023
        label='Past Exception',
1024
        desk=desk,
1025
        start_datetime=now() - datetime.timedelta(days=2),
1026
        end_datetime=now() - datetime.timedelta(days=1))
1027
    current_exception = TimePeriodException.objects.create(
1028
        label='Current Exception',
1029
        desk=desk,
1030
        start_datetime=now() - datetime.timedelta(days=1),
1031
        end_datetime=now() + datetime.timedelta(days=1))
1032
    future_exception = TimePeriodException.objects.create(
1033
        label='Future Exception',
1034
        desk=desk,
1035
        start_datetime=now() + datetime.timedelta(days=1),
1036
        end_datetime=now() + datetime.timedelta(days=2))
1037

  
1038
    login(app)
1039
    resp = app.get('/manage/agendas/%d/settings' % agenda.pk)
1040
    assert '/manage/time-period-exceptions/%d/edit' % past_exception.pk not in resp.text
1041
    assert '/manage/time-period-exceptions/%d/edit' % current_exception.pk in resp.text
1042
    assert '/manage/time-period-exceptions/%d/edit' % future_exception.pk in resp.text
1043

  
1044
    resp = resp.click(href="/manage/time-period-exceptions/%d/exception-list" % desk.pk)
1045
    assert '/manage/time-period-exceptions/%d/edit' % past_exception.pk not in resp.text
1046
    assert '/manage/time-period-exceptions/%d/edit' % current_exception.pk in resp.text
1047
    assert '/manage/time-period-exceptions/%d/edit' % future_exception.pk in resp.text
1048

  
1049

  
1015 1050
def test_agenda_import_time_period_exception_from_ics(app, admin_user):
1016 1051
    agenda = Agenda.objects.create(label='Example', kind='meetings')
1017 1052
    desk = Desk.objects.create(agenda=agenda, label='Test Desk')
1018
-