export_import: fix event agenda dependencies (#87627)
gitea/chrono/pipeline/head This commit looks good Details

This commit is contained in:
Lauréline Guérin 2024-02-29 15:44:34 +01:00
parent 966d93829f
commit 3cef873ce4
No known key found for this signature in database
GPG Key ID: 1FAB9B9B4F93D473
2 changed files with 24 additions and 2 deletions

View File

@ -475,6 +475,7 @@ class Agenda(WithSnapshotMixin, WithApplicationMixin, models.Model):
yield from desk.get_dependencies()
if self.kind == 'events':
yield self.events_type
yield from self.desk_set.get().get_dependencies()
def export_json(self):
agenda = {

View File

@ -238,7 +238,8 @@ def test_agenda_dependencies_unavailability_calendars(app, user):
app.authorization = ('Basic', ('john.doe', 'password'))
meetings_agenda = Agenda.objects.create(label='Rdv', slug='rdv', kind='meetings')
desk = Desk.objects.create(slug='foo', label='Foo', agenda=meetings_agenda)
desk.unavailability_calendars.add(UnavailabilityCalendar.objects.create(slug='foo', label='Foo'))
unavailability_calendar = UnavailabilityCalendar.objects.create(slug='foo', label='Foo')
desk.unavailability_calendars.add(unavailability_calendar)
resp = app.get('/api/export-import/agendas/rdv/dependencies/')
assert resp.json == {
'data': [
@ -255,6 +256,25 @@ def test_agenda_dependencies_unavailability_calendars(app, user):
],
'err': 0,
}
events_agenda = Agenda.objects.create(label='Evt', slug='evt', kind='events')
desk = Desk.objects.create(agenda=events_agenda, slug='_exceptions_holder')
desk.unavailability_calendars.add(unavailability_calendar)
resp = app.get('/api/export-import/agendas/evt/dependencies/')
assert resp.json == {
'data': [
{
'id': 'foo',
'text': 'Foo',
'type': 'unavailability_calendars',
'urls': {
'dependencies': 'http://testserver/api/export-import/unavailability_calendars/foo/dependencies/',
'export': 'http://testserver/api/export-import/unavailability_calendars/foo/',
'redirect': 'http://testserver/api/export-import/unavailability_calendars/foo/redirect/',
},
}
],
'err': 0,
}
def test_agenda_dependencies_groups(app, user):
@ -312,7 +332,8 @@ def test_agenda_dependencies_virtual_agendas(app, user):
def test_agenda_dependencies_events_type(app, user):
app.authorization = ('Basic', ('john.doe', 'password'))
events_type = EventsType.objects.create(slug='foo', label='Foo')
Agenda.objects.create(label='Evt', slug='evt', kind='events', events_type=events_type)
events_agenda = Agenda.objects.create(label='Evt', slug='evt', kind='events', events_type=events_type)
Desk.objects.create(agenda=events_agenda, slug='_exceptions_holder')
resp = app.get('/api/export-import/agendas/evt/dependencies/')
assert resp.json == {
'data': [