Private
Public Access
1
0

can delete sessions with deletion of plan

This commit is contained in:
2024-12-13 12:02:59 +01:00
parent 9a7ecfeebc
commit 6722833561
3 changed files with 31 additions and 1 deletions

View File

@@ -1978,6 +1978,21 @@ class TrainingPlan(models.Model):
return stri
def delete(self, *args, **kwargs):
delete_sessions = kwargs.pop('delete_sessions', False)
delete_all_sessions = kwargs.pop('delete_all_sessions', False)
if delete_sessions:
sessions = PlannedSession.objects.filter(from_plan=self)
for s in sessions:
s.delete()
if delete_all_sessions:
sessions = PlannedSession.objects.filter(startdate__gte=self.startdate,enddate__lte=self.enddate)
for s in sessions:
s.delete()
super().delete(*args, **kwargs)
def save(self, *args, **kwargs):
manager = self.manager
if not can_add_plan(manager.user): # pragma: no cover

View File

@@ -13,7 +13,15 @@
<form action="" method="post">
{% csrf_token %}
<p>Are you sure you want to delete <em>{{ object }}</em>?</p>
<input class="button red" type="submit" value="Confirm">
<p>
<input type="checkbox" name="delete_sessions" value="1"> Delete all planned sessions linked to the plan
</p>
<p>
<input type="checkbox" name="delete_all_sessions" value="1">Delete all planned sessions in the plan time frame
</p>
<p>
<input class="button red" type="submit" value="Confirm">
</p>
</form>

View File

@@ -3335,6 +3335,13 @@ class TrainingPlanDelete(DeleteView):
template_name = 'trainingplan_delete.html'
success_url = reverse_lazy(rower_create_trainingplan)
def post(self, request, *args, **kwargs):
delete_sessions = request.POST.get('delete_sessions')
delete_all_sessions = request.POST.get('delete_all_sessions')
self.object = self.get_object()
self.object.delete(delete_sessions=delete_sessions, delete_all_sessions=delete_all_sessions)
return HttpResponseRedirect(self.get_success_url())
def get_object(self, *args, **kwargs):
obj = super(TrainingPlanDelete, self).get_object(*args, **kwargs)
if not can_delete_plan(self.request.user, obj): # pragma: no cover