Compare commits

..

7 Commits

Author SHA1 Message Date
Lauréline Guérin d465105fbc
manager: get snapshots to compare from application version (#87653)
gitea/chrono/pipeline/head This commit looks good Details
2024-03-07 16:44:44 +01:00
Lauréline Guérin ccc65e1963
export_import: redirect to compare view if compare in GET params (#87653) 2024-03-07 16:44:44 +01:00
Lauréline Guérin 5a52fa7911
export_import: bundle-check endpoint (#87653) 2024-03-07 16:44:44 +01:00
Lauréline Guérin da123eaf41
export_import: snapshots on application import (#87653) 2024-03-07 16:44:44 +01:00
Lauréline Guérin 024b34b34f
agendas: object history and compare (#87316)
gitea/chrono/pipeline/head This commit looks good Details
2024-03-07 16:44:19 +01:00
Lauréline Guérin 0ea056dcd5
agendas: fix missing options in agenda import/export (#87679)
gitea/chrono/pipeline/head This commit looks good Details
2024-03-04 17:32:20 +01:00
Lauréline Guérin 3cef873ce4
export_import: fix event agenda dependencies (#87627)
gitea/chrono/pipeline/head This commit looks good Details
2024-02-29 15:44:34 +01:00
3 changed files with 27 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 = {
@ -484,6 +485,7 @@ class Agenda(WithSnapshotMixin, WithApplicationMixin, models.Model):
'category': self.category.slug if self.category else None,
'minimal_booking_delay': self.minimal_booking_delay,
'maximal_booking_delay': self.maximal_booking_delay,
'anonymize_delay': self.anonymize_delay,
'permissions': {
'view': self.view_role.name if self.view_role else None,
'edit': self.edit_role.name if self.edit_role else None,

View File

@ -239,7 +239,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': [
@ -256,6 +257,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):
@ -313,7 +333,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': [

View File

@ -186,6 +186,7 @@ def test_import_export_events_agenda_options(app):
label='Foo Bar',
kind='events',
default_view='open_events',
anonymize_delay=42,
booking_form_url='{{ eservices_url }}backoffice/submission/inscription-aux-activites/',
minimal_booking_delay_in_working_days=True,
booking_user_block_template='foo bar',
@ -210,6 +211,7 @@ def test_import_export_events_agenda_options(app):
assert Agenda.objects.count() == 1
agenda = Agenda.objects.first()
assert agenda.default_view == 'open_events'
assert agenda.anonymize_delay == 42
assert agenda.booking_form_url == '{{ eservices_url }}backoffice/submission/inscription-aux-activites/'
assert agenda.minimal_booking_delay_in_working_days is True
assert agenda.booking_user_block_template == 'foo bar'