diff --git a/chrono/manager/templates/chrono/manager_shared_custody_agenda_month_view.html b/chrono/manager/templates/chrono/manager_shared_custody_agenda_month_view.html
index 84bcc8ff..69bf1714 100644
--- a/chrono/manager/templates/chrono/manager_shared_custody_agenda_month_view.html
+++ b/chrono/manager/templates/chrono/manager_shared_custody_agenda_month_view.html
@@ -18,7 +18,11 @@
{% trans "Week" %} {{ week }} |
{% for slot in slots %}
- {{ slot }} |
+ {% if slot.date < agenda.date_start %}
+ |
+ {% else %}
+ {{ slot }} |
+ {% endif %}
{% endfor %}
diff --git a/tests/manager/test_shared_custody_agenda.py b/tests/manager/test_shared_custody_agenda.py
index 7e69de47..0036aef0 100644
--- a/tests/manager/test_shared_custody_agenda.py
+++ b/tests/manager/test_shared_custody_agenda.py
@@ -157,7 +157,7 @@ def test_shared_custody_agenda_month_view(app, admin_user):
father = Person.objects.create(user_external_id='father_id', first_name='John', last_name='Doe')
mother = Person.objects.create(user_external_id='mother_id', first_name='Jane', last_name='Doe')
agenda = SharedCustodyAgenda.objects.create(
- first_guardian=father, second_guardian=mother, date_start=now()
+ first_guardian=father, second_guardian=mother, date_start=datetime.date(2022, 1, 1)
)
SharedCustodyRule.objects.create(agenda=agenda, guardian=father, days=list(range(7)), weeks='even')
@@ -211,6 +211,44 @@ def test_shared_custody_agenda_month_view(app, admin_user):
app.get('/manage/shared-custody/%s/42/42/' % agenda.pk, status=404)
+@pytest.mark.freeze_time('2022-02-01 14:00') # Tuesday
+def test_shared_custody_agenda_month_view_date_start(app, admin_user):
+ father = Person.objects.create(user_external_id='father_id', first_name='John', last_name='Doe')
+ mother = Person.objects.create(user_external_id='mother_id', first_name='Jane', last_name='Doe')
+ agenda = SharedCustodyAgenda.objects.create(
+ first_guardian=father, second_guardian=mother, date_start=datetime.date(2022, 1, 1)
+ )
+ SharedCustodyRule.objects.create(agenda=agenda, guardian=father, days=list(range(7)))
+
+ app = login(app)
+
+ # custody for the whole month
+ resp = app.get('/manage/shared-custody/%s/' % agenda.pk).follow()
+ assert resp.text.count(' | ') == 0
+ assert len([x.text for x in resp.pyquery('tbody tr td.guardian')]) == 35
+
+ # all days are shown
+ days = [x.text for x in resp.pyquery('tbody tr th span')]
+ assert len(days) == 7 * 5
+
+ # custody for half the month
+ agenda.date_start = datetime.date(2022, 2, 14)
+ agenda.save()
+
+ resp = app.get('/manage/shared-custody/%s/' % agenda.pk).follow()
+ assert resp.text.count(' | ') == 14
+ assert len([x.text for x in resp.pyquery('tbody tr td.guardian')]) == 21
+
+ # all days are still shown
+ new_days = [x.text for x in resp.pyquery('tbody tr th span')]
+ assert days == new_days
+
+ # month before date_start
+ resp = resp.click('←')
+ assert resp.text.count(' | ') == 42
+ assert len([x.text for x in resp.pyquery('tbody tr td.guardian')]) == 0
+
+
def test_shared_custody_agenda_month_view_queries(app, admin_user):
father = Person.objects.create(user_external_id='father_id', first_name='John', last_name='Doe')
mother = Person.objects.create(user_external_id='mother_id', first_name='Jane', last_name='Doe')