Projet

Général

Profil

0001_fix_recurrence_delation.patch

Jérôme Schneider, 27 février 2014 18:59

Télécharger (2,1 ko)

Voir les différences:


  

calebasse/agenda/views.py
270 270
    form_class = UpdatePeriodicEventForm
271 271
    template_name = 'agenda/new-event.html'
272 272

  
273
def delete_eventwithact(event):
274
    assert event.event_type == 1
275
    if event.act.id \
276
            and not event.act.is_billed:
277
        event.act.delete()
278
    if not event.act.id or \
279
            not event.act.is_billed:
280
        event.delete()
273 281

  
274 282
class DeleteOccurrenceView(TodayOccurrenceMixin, cbv.DeleteView):
275 283
    model = Event
......
278 286

  
279 287
    def delete(self, request, *args, **kwargs):
280 288
        self.object = self.get_object()
281
        if self.object.event_type == 1 and self.object.act.id \
282
                and not self.object.act.is_billed:
283
            self.object.act.delete()
284
        self.object.delete()
289
        if self.object.event_type == 1:
290
            delete_eventwithact(self.object)
291
        else:
292
            self.object.delete()
285 293

  
286 294
        return HttpResponse(status=204)
287 295

  
288 296
class DeleteEventView(cbv.DeleteView):
289
    """
290
    TODO: Remove this class
291
    """
292 297
    model = Event
293 298
    success_url = '..'
294 299
    cookies_to_clear = []
295 300

  
296 301
    def delete(self, request, *args, **kwargs):
297
        super(DeleteEventView, self).delete(request, *args, **kwargs)
302
        self.object = self.get_object()
303
        # If exceptions remove them only if act is not billed
304
        for exception in self.object.exceptions.all():
305
            exception.recurrence_periodicity = None
306
            exception.exception_to = None
307
            exception.save()
308
            if exception.event_type == 1:
309
                delete_eventwithact(exception)
310
            else:
311
                exception.delete()
312

  
313
        if self.object.event_type == 1:
314
            delete_eventwithact(self.object)
315
        else:
316
            self.object.delete()
298 317
        return HttpResponse(status=204)
299 318

  
300 319
class AgendaServiceActValidationView(TemplateView):