From d537ce66da079bcf7a5e384d6cde657d4741e5a2 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Tue, 2 Mar 2021 12:12:31 +0100 Subject: [PATCH] deleting fitfile on session delete --- rowers/models.py | 5 +++++ rowers/views/planviews.py | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/rowers/models.py b/rowers/models.py index 94055201..d83218bd 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -2450,6 +2450,11 @@ class PlannedSession(models.Model): super(PlannedSession,self).save(*args, **kwargs) +#@receiver(models.signals.pre_delete,sender=PlannedSession) +#def auto_delete_fitfile_on_delete(send, instance, **kwargs): +# if instance.fitfile: +# if os.path.isfile(instance.fitfile): +# os.remove(instance.fitfile) from django.core.validators import RegexValidator,validate_email diff --git a/rowers/views/planviews.py b/rowers/views/planviews.py index b0bc1d5c..be2130df 100644 --- a/rowers/views/planviews.py +++ b/rowers/views/planviews.py @@ -1626,6 +1626,7 @@ def plannedsession_teamclone_view(request,id=0): if not ps.is_template: ps.name += ' (copy)' ps.is_template = False + ps.fitfile = None deltadays = ps.preferreddate-ps.startdate @@ -2234,6 +2235,15 @@ class PlannedSessionDelete(DeleteView): w.plannedsession = None w.save() + if self.object.fitfile: + filelist = self.object.fitfile.name.split('/media') + filename = settings.MEDIA_ROOT+'/'+filelist[-1] + try: + os.remove(filename) + except FileNotFoundError: + print(filename) + self.object.fitfile = None + url = reverse(plannedsessions_view) next = self.request.GET.get('next',url)