14438 soft delete

This commit is contained in:
Arthur 2024-02-16 10:53:17 -08:00
parent 8b54ff7e33
commit cb2bf2b293
2 changed files with 6 additions and 6 deletions

View File

@ -67,12 +67,12 @@ class Script(EventRulesMixin, JobsMixin, models.Model):
def python_class(self):
return self.module.get_module_scripts.get(self.name)
def delete_if_no_jobs(self):
if self.jobs.exists():
def delete(self, soft_delete=False):
if soft_delete and self.jobs.exists():
self.is_executable = False
self.save()
else:
self.delete()
super().delete()
self.id = None
@ -134,7 +134,7 @@ class ScriptModule(PythonModuleMixin, JobsMixin, ManagedFile):
# remove any existing db classes if they are no longer in the file
removed = db_classes_set - module_classes_set
for name in removed:
db_classes[name].delete_if_no_jobs()
db_classes[name].delete(soft_delete=True)
added = module_classes_set - db_classes_set
for name in added:

View File

@ -1055,7 +1055,7 @@ class BaseScriptView(ContentTypePermissionRequiredMixin, generic.ObjectView):
if self.script.python_class:
self.script_class = self.script.python_class()
else:
self.script.delete_if_no_jobs()
self.script.delete(soft_delete=True)
messages.error(request, _("Script class has been deleted from module: ") + str(self.script.module))
if not self.script.id:
return redirect('extras:script_list')
@ -1156,7 +1156,7 @@ class ScriptJobsView(ContentTypePermissionRequiredMixin, View):
if self.script.python_class:
self.script_class = self.script.python_class()
else:
self.script.delete_if_no_jobs()
self.script.delete(soft_delete=True)
if not self.script.id:
messages.error(request, _("Script class has been deleted from module: ") + str(self.script.module))
return redirect('extras:script_list')