Skip to content
Snippets Groups Projects

feat: delete linked data in hook

Merged Arnaud Vergnet requested to merge topic/default/delete-hooks into branch/default
1 file
+ 46
0
Compare changes
  • Side-by-side
  • Inline
+ 46
0
@@ -115,3 +115,49 @@
f"urn:rodolf:{procedure.eid}:ontology",
file.download_file_name(),
)
class DeleteImportProcedureHook(Hook):
__regid__ = "rodolf.delete-import-procedure-hook"
__select__ = Hook.__select__ & is_instance("ImportProcedure")
events = ("before_delete_entity",)
def __call__(self):
# Delete linked ImportProcess, ImportRecipe and RqTask
self._cw.execute(
"DELETE ImportRecipe X WHERE PROCEDURE eid %(eid)s, PROCEDURE import_recipes X",
{"eid": self.entity.eid},
)
self._cw.execute(
"DELETE RqTask X WHERE PROCESS import_procedure %(eid)s, PROCESS rq_task X",
{"eid": self.entity.eid},
)
self._cw.execute(
"DELETE ImportProcess X WHERE X import_procedure %(eid)s",
{"eid": self.entity.eid},
)
self._cw.commit()
class DeleteDataServiceHook(Hook):
__regid__ = "rodolf.delete-data-service-hook"
__select__ = Hook.__select__ & is_instance("DataService")
events = ("before_delete_entity",)
def __call__(self):
# Delete linked ImportProcess, ImportRecipe and RqTask
self._cw.execute(
"DELETE RqTask X WHERE RECIPE dataservice %(eid)s, "
"PROCESS import_recipe RECIPE, PROCESS rq_task X",
{"eid": self.entity.eid},
)
self._cw.execute(
"DELETE ImportProcess X WHERE RECIPE dataservice %(eid)s, "
"PROCESS import_recipe RECIPE",
{"eid": self.entity.eid},
)
self._cw.execute(
"DELETE ImportRecipe X WHERE X dataservice %(eid)s",
{"eid": self.entity.eid},
)
self._cw.commit()
Loading