Compare commits

..

2 Commits

Author SHA1 Message Date
Lauréline Guérin 83011d4f77
api: take snapshots (#87498)
gitea/chrono/pipeline/head This commit looks good Details
2024-02-27 15:30:35 +01:00
Lauréline Guérin 76c54dfb52
agendas: take snapshots (#86634)
gitea/chrono/pipeline/head This commit looks good Details
2024-02-27 15:27:29 +01:00
2 changed files with 45 additions and 39 deletions

View File

@ -3204,7 +3204,7 @@ class EventsAPI(APIView):
event = serializer.save()
if event.recurrence_days:
event.create_all_recurrences()
agenda.take_snapshot(request=self.request, comment=_('added event %s') % event)
agenda.take_snapshot(request=self.request, comment=_('added event (%s)') % event)
return Response({'err': 0, 'data': get_event_detail(request, event)})
@ -3263,7 +3263,7 @@ class EventAPI(APIView):
changed_data, payload, protected_fields, protected_fields + ['recurrence_end_date']
):
event = serializer.save()
event.agenda.take_snapshot(request=self.request, comment=_('changed event %s') % event)
event.agenda.take_snapshot(request=self.request, comment=_('changed event (%s)') % event)
return Response({'err': 0, 'data': get_event_detail(request, event)})
def delete(self, request, agenda_identifier, event_identifier):
@ -3279,7 +3279,7 @@ class EventAPI(APIView):
raise APIError(_('This cannot be removed as there are bookings for a future date.'))
event.delete()
event.agenda.take_snapshot(request=self.request, comment=_('removed event %s') % event)
event.agenda.take_snapshot(request=self.request, comment=_('removed event (%s)') % event)
return Response({'err': 0})

View File

@ -2522,7 +2522,7 @@ class AgendaAddEventView(ManagedAgendaMixin, CreateView):
def form_valid(self, *args, **kwargs):
response = super().form_valid(*args, **kwargs)
self.agenda.take_snapshot(request=self.request, comment=_('added event %s') % self.object)
self.agenda.take_snapshot(request=self.request, comment=_('added event (%s)') % self.object)
return response
@ -2542,7 +2542,7 @@ class AgendaEventDuplicateView(ManagedAgendaMixin, UpdateView):
def form_valid(self, form):
messages.success(self.request, _('Event successfully duplicated.'))
response = super().form_valid(form)
self.agenda.take_snapshot(request=self.request, comment=_('added event %s') % self.object)
self.agenda.take_snapshot(request=self.request, comment=_('added event (%s)') % self.object)
return response
@ -3031,7 +3031,7 @@ class EventEditView(ManagedAgendaMixin, UpdateView):
def form_valid(self, *args, **kwargs):
response = super().form_valid(*args, **kwargs)
self.agenda.take_snapshot(request=self.request, comment=_('changed event %s') % self.object)
self.agenda.take_snapshot(request=self.request, comment=_('changed event (%s)') % self.object)
return response
@ -3058,7 +3058,7 @@ class EventDeleteView(ManagedAgendaMixin, DeleteView):
if context['cannot_delete']:
raise PermissionDenied()
response = super().delete(request, *args, **kwargs)
self.agenda.take_snapshot(request=self.request, comment=_('removed event %s') % self.object)
self.agenda.take_snapshot(request=self.request, comment=_('removed event (%s)') % self.object)
return response
def get_success_url(self):
@ -3255,7 +3255,7 @@ class AgendaAddResourceView(ManagedAgendaMixin, FormView):
self.agenda.resources.add(form.cleaned_data['resource'])
response = super().form_valid(form)
self.agenda.take_snapshot(
request=self.request, comment=_('added ressource %s') % form.cleaned_data['resource']
request=self.request, comment=_('added resource (%s)') % form.cleaned_data['resource']
)
return response
@ -3275,7 +3275,7 @@ class AgendaResourceDeleteView(ManagedAgendaMixin, DeleteView):
def delete(self, request, *args, **kwargs):
self.object = self.get_object()
self.agenda.resources.remove(self.object)
self.agenda.take_snapshot(request=request, comment=_('removed ressource %s') % self.object)
self.agenda.take_snapshot(request=request, comment=_('removed resource (%s)') % self.object)
return HttpResponseRedirect(self.get_success_url())
@ -3330,12 +3330,12 @@ class UnavailabilityCalendarToggleView(ManagedDeskMixin, DetailView):
break
self.desk.agenda.take_snapshot(
request=self.request,
comment=_('enabled unavailability calendar %s') % unavailability_calendar,
comment=_('enabled unavailability calendar (%s)') % unavailability_calendar,
)
else:
self.desk.agenda.take_snapshot(
request=self.request,
comment=_('disabled unavailability calendar %s') % unavailability_calendar,
comment=_('disabled unavailability calendar (%s)') % unavailability_calendar,
)
return HttpResponseRedirect(
@ -3356,7 +3356,7 @@ class AgendaAddMeetingTypeView(ManagedAgendaMixin, CreateView):
def form_valid(self, *args, **kwargs):
response = super().form_valid(*args, **kwargs)
self.object.agenda.take_snapshot(
request=self.request, comment=_('added meeting type %s') % self.object
request=self.request, comment=_('added meeting type (%s)') % self.object
)
return response
@ -3375,7 +3375,7 @@ class MeetingTypeEditView(ManagedAgendaSubobjectMixin, UpdateView):
with transaction.atomic():
response = super().form_valid(form)
self.object.agenda.take_snapshot(
request=self.request, comment=_('changed meeting type %s') % self.object
request=self.request, comment=_('changed meeting type (%s)') % self.object
)
return response
except IntegrityError as e:
@ -3431,7 +3431,7 @@ class MeetingTypeDeleteView(ManagedAgendaSubobjectMixin, DeleteView):
self.object.slug += '__deleted__' + str(uuid.uuid4())
self.object.save()
self.object.agenda.take_snapshot(
request=self.request, comment=_('removed meeting type %s') % self.object
request=self.request, comment=_('removed meeting type (%s)') % self.object
)
return HttpResponseRedirect(success_url)
@ -3514,15 +3514,15 @@ class TimePeriodEditView(ManagedTimePeriodMixin, UpdateView):
if self.object.desk:
if self.object.date:
self.object.desk.agenda.take_snapshot(
request=self.request, comment=_('changed unique period %s') % self.object
request=self.request, comment=_('changed unique period (%s)') % self.object
)
else:
self.object.desk.agenda.take_snapshot(
request=self.request, comment=_('changed repeating period %s') % self.object
request=self.request, comment=_('changed repeating period (%s)') % self.object
)
else:
self.object.agenda.take_snapshot(
request=self.request, comment=_('changed excluded period %s') % self.object
request=self.request, comment=_('changed excluded period (%s)') % self.object
)
return response
@ -3539,15 +3539,15 @@ class TimePeriodDeleteView(ManagedTimePeriodMixin, DeleteView):
if self.object.desk:
if time_period.date:
self.time_period.desk.agenda.take_snapshot(
request=self.request, comment=_('removed unique period %s') % time_period
request=self.request, comment=_('removed unique period (%s)') % time_period
)
else:
self.time_period.desk.agenda.take_snapshot(
request=self.request, comment=_('removed repeating period %s') % time_period
request=self.request, comment=_('removed repeating period (%s)') % time_period
)
else:
self.object.agenda.take_snapshot(
request=self.request, comment=_('removed excluded period %s') % self.object
request=self.request, comment=_('removed excluded period (%s)') % self.object
)
def delete(self, request, *args, **kwargs):
@ -3598,7 +3598,7 @@ class AgendaAddDateTimePeriodView(ManagedDeskMixin, FormView):
else:
time_period = TimePeriod.objects.create(desk=self.desk, **create_kwargs)
self.desk.agenda.take_snapshot(
request=self.request, comment=_('added unique period %s') % time_period
request=self.request, comment=_('added unique period (%s)') % time_period
)
return super().form_valid(form)
@ -3638,7 +3638,7 @@ class AgendaAddDesk(AgendaDeskMixin, ManagedAgendaMixin, CreateView):
def form_valid(self, *args, **kwargs):
response = super().form_valid(*args, **kwargs)
self.object.agenda.take_snapshot(request=self.request, comment=_('added desk %s') % self.object)
self.object.agenda.take_snapshot(request=self.request, comment=_('added desk (%s)') % self.object)
return response
@ -3656,7 +3656,7 @@ class DeskEditView(AgendaDeskMixin, ManagedAgendaSubobjectMixin, UpdateView):
def form_valid(self, *args, **kwargs):
response = super().form_valid(*args, **kwargs)
self.object.agenda.take_snapshot(request=self.request, comment=_('changed desk %s') % self.object)
self.object.agenda.take_snapshot(request=self.request, comment=_('changed desk (%s)') % self.object)
return response
@ -3691,7 +3691,7 @@ class DeskDeleteView(AgendaDeskMixin, ManagedAgendaSubobjectMixin, DeleteView):
if context['cannot_delete']:
raise PermissionDenied()
response = super().delete(request, *args, **kwargs)
self.object.agenda.take_snapshot(request=self.request, comment=_('removed desk %s' % self.object))
self.object.agenda.take_snapshot(request=self.request, comment=_('removed desk (%s)' % self.object))
return response
@ -3711,7 +3711,7 @@ class VirtualMemberAddView(ManagedAgendaMixin, CreateView):
def form_valid(self, *args, **kwargs):
response = super().form_valid(*args, **kwargs)
self.agenda.take_snapshot(
request=self.request, comment=_('added agenda %s') % self.object.real_agenda
request=self.request, comment=_('added agenda (%s)') % self.object.real_agenda
)
return response
@ -3766,7 +3766,7 @@ class AgendaAddTimePeriodExceptionView(ManagedDeskMixin, CreateView):
if exception.has_booking_within_time_slot():
messages.warning(self.request, _('One or several bookings exists within this time slot.'))
break
self.desk.agenda.take_snapshot(request=self.request, comment=_('added exception %s') % self.object)
self.desk.agenda.take_snapshot(request=self.request, comment=_('added exception (%s)') % self.object)
return result
@ -3783,11 +3783,11 @@ class TimePeriodExceptionEditView(ManagedTimePeriodExceptionMixin, UpdateView):
result = super().form_valid(form)
if not self.desk:
self.unavailability_calendar.take_snapshot(
request=self.request, comment=_('changed unavailability %s') % self.object
request=self.request, comment=_('changed unavailability (%s)') % self.object
)
else:
self.desk.agenda.take_snapshot(
request=self.request, comment=_('changed exception %s') % self.object
request=self.request, comment=_('changed exception (%s)') % self.object
)
messages.info(self.request, _('Exception updated.'))
for exception in form.exceptions:
@ -3850,11 +3850,11 @@ class TimePeriodExceptionDeleteView(ManagedTimePeriodExceptionMixin, DeleteView)
response = super().delete(request, *args, **kwargs)
if not self.desk:
self.unavailability_calendar.take_snapshot(
request=self.request, comment=_('removed unavailability %s') % self.object
request=self.request, comment=_('removed unavailability (%s)') % self.object
)
else:
self.desk.agenda.take_snapshot(
request=self.request, comment=_('removed exception %s') % self.object
request=self.request, comment=_('removed exception (%s)') % self.object
)
if not exception.desk_id:
@ -3936,7 +3936,7 @@ class DeskImportTimePeriodExceptionsView(ManagedAgendaSubobjectMixin, UpdateView
return self.form_invalid(form)
messages.info(self.request, _('Exceptions will be imported in a few minutes.'))
desk.agenda.take_snapshot(request=self.request, comment=_('imported exceptions %s') % sources[0])
desk.agenda.take_snapshot(request=self.request, comment=_('imported exceptions (%s)') % sources[0])
return super().form_valid(form)
@ -3958,7 +3958,9 @@ class TimePeriodExceptionSourceDeleteView(ManagedTimePeriodExceptionMixin, Delet
)
return response
if not source.desk.agenda.desk_simple_management:
self.desk.agenda.take_snapshot(request=self.request, comment=_('removed exceptions %s') % source)
self.desk.agenda.take_snapshot(
request=self.request, comment=_('removed exceptions (%s)') % source
)
return response
for desk in source.desk.agenda.desk_set.exclude(pk=source.desk_id):
@ -3970,7 +3972,7 @@ class TimePeriodExceptionSourceDeleteView(ManagedTimePeriodExceptionMixin, Delet
if _source is not None:
_source.delete()
self.desk.agenda.take_snapshot(request=self.request, comment=_('removed exceptions %s') % source)
self.desk.agenda.take_snapshot(request=self.request, comment=_('removed exceptions (%s)') % source)
return response
@ -4007,11 +4009,11 @@ class TimePeriodExceptionSourceReplaceView(ManagedTimePeriodExceptionMixin, Upda
response = super().form_valid(form)
if self.desk:
self.desk.agenda.take_snapshot(
request=self.request, comment=_('imported exceptions %s') % self.object
request=self.request, comment=_('imported exceptions (%s)') % self.object
)
else:
self.unavailability_calendar.take_snapshot(
request=self.request, comment=_('imported exceptions %s') % self.object
request=self.request, comment=_('imported exceptions (%s)') % self.object
)
return response
@ -4399,9 +4401,13 @@ class TimePeriodExceptionSourceToggleView(ManagedTimePeriodExceptionMixin, Detai
message = _('Exception source %(source)s has been disabled.')
if was_enabled:
self.desk.agenda.take_snapshot(request=self.request, comment=_('disabled exceptions %s') % source)
self.desk.agenda.take_snapshot(
request=self.request, comment=_('disabled exceptions (%s)') % source
)
else:
self.desk.agenda.take_snapshot(request=self.request, comment=_('enabled exceptions %s') % source)
self.desk.agenda.take_snapshot(
request=self.request, comment=_('enabled exceptions (%s)') % source
)
messages.info(self.request, message % {'source': source, 'desk': source.desk})
return HttpResponseRedirect(
'%s#open:time-periods'
@ -4601,7 +4607,7 @@ class UnavailabilityCalendarAddUnavailabilityView(ManagedUnavailabilityCalendarM
def form_valid(self, form):
result = super().form_valid(form)
self.unavailability_calendar.take_snapshot(
request=self.request, comment=_('added unavailability %s') % self.object
request=self.request, comment=_('added unavailability (%s)') % self.object
)
messages.info(self.request, _('Unavailability added.'))
if self.object.has_booking_within_time_slot():
@ -4656,7 +4662,7 @@ class UnavailabilityCalendarImportUnavailabilitiesView(ManagedUnavailabilityCale
messages.info(self.request, _('Exceptions will be imported in a few minutes.'))
response = super().form_valid(form)
self.object.take_snapshot(request=self.request, comment=_('imported exceptions %s') % source)
self.object.take_snapshot(request=self.request, comment=_('imported exceptions (%s)') % source)
return response