diff --git a/chrono/manager/templates/chrono/manager_shared_custody_agenda_settings.html b/chrono/manager/templates/chrono/manager_shared_custody_agenda_settings.html
index 7c035d80..10521c1a 100644
--- a/chrono/manager/templates/chrono/manager_shared_custody_agenda_settings.html
+++ b/chrono/manager/templates/chrono/manager_shared_custody_agenda_settings.html
@@ -9,11 +9,19 @@
{% block appbar %}
{% trans "Settings" %}
+ {% if user.is_staff %}
+
+ {% endif %}
{% trans 'Add custody period' %}
{% if has_holidays %}
{% trans 'Add custody rule during holidays' %}
{% endif %}
{% trans 'Add custody rule' %}
+ {% if user.is_staff %}
+
+ {% endif %}
{% endblock %}
diff --git a/chrono/manager/urls.py b/chrono/manager/urls.py
index 49634127..15e960bc 100644
--- a/chrono/manager/urls.py
+++ b/chrono/manager/urls.py
@@ -420,6 +420,11 @@ urlpatterns = [
views.shared_custody_agenda_settings,
name='chrono-manager-shared-custody-agenda-settings',
),
+ url(
+ r'^shared-custody/(?P\d+)/delete$',
+ views.shared_custody_agenda_delete,
+ name='chrono-manager-shared-custody-agenda-delete',
+ ),
url(
r'^shared-custody/(?P\d+)/add-rule$',
views.shared_custody_agenda_add_rule,
diff --git a/chrono/manager/views.py b/chrono/manager/views.py
index 8f76b37d..0c7d9951 100644
--- a/chrono/manager/views.py
+++ b/chrono/manager/views.py
@@ -3790,6 +3790,23 @@ class SharedCustodyAgendaSettings(SharedCustodyAgendaMixin, DetailView):
shared_custody_agenda_settings = SharedCustodyAgendaSettings.as_view()
+class SharedCustodyAgendaDeleteView(SharedCustodyAgendaMixin, DeleteView):
+ template_name = 'chrono/manager_confirm_delete.html'
+ model = SharedCustodyAgenda
+ pk_url_kwarg = 'pk'
+
+ def dispatch(self, request, *args, **kwargs):
+ if not request.user.is_staff:
+ raise PermissionDenied()
+ return super().dispatch(request, *args, **kwargs)
+
+ def get_success_url(self):
+ return reverse('chrono-manager-homepage')
+
+
+shared_custody_agenda_delete = SharedCustodyAgendaDeleteView.as_view()
+
+
class SharedCustodyAgendaAddRuleView(SharedCustodyAgendaMixin, CreateView):
title = _('Add custody rule')
template_name = 'chrono/manager_agenda_form.html'
diff --git a/tests/manager/test_shared_custody_agenda.py b/tests/manager/test_shared_custody_agenda.py
index 9f14c231..576798b8 100644
--- a/tests/manager/test_shared_custody_agenda.py
+++ b/tests/manager/test_shared_custody_agenda.py
@@ -327,3 +327,20 @@ def test_shared_custody_settings_management_role(app, admin_user, manager_user):
app = login(app, username='manager', password='manager')
resp = app.get('/manage/shared-custody/%s/settings/' % agenda.pk)
assert 'Custody agenda of John Doe and Jane Doe' in resp.text
+
+
+def test_shared_custody_agenda_delete(app, admin_user, manager_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)
+ SharedCustodySettings.objects.create(management_role=manager_user.groups.all()[0])
+
+ app = login(app, username='manager', password='manager')
+ resp = app.get('/manage/shared-custody/%s/settings/' % agenda.pk)
+ assert 'Delete' not in resp.text
+
+ app = login(app)
+ resp = app.get('/manage/shared-custody/%s/settings/' % agenda.pk)
+ resp = resp.click('Delete')
+ resp = resp.form.submit().follow()
+ assert not SharedCustodyAgenda.objects.exists()