from plomtask.db import DatabaseConnection, BaseModel
from plomtask.misc import VersionedAttribute
from plomtask.conditions import Condition, ConditionsRelations
-from plomtask.exceptions import NotFoundException, BadFormatException
+from plomtask.exceptions import (NotFoundException, BadFormatException,
+ HandledException)
@dataclass
def remove(self, db_conn: DatabaseConnection) -> None:
"""Remove from DB, with dependencies."""
assert isinstance(self.id_, int)
+ for _ in db_conn.row_where('process_steps', 'step_process', self.id_):
+ raise HandledException('cannot remove Process in use')
+ for _ in db_conn.row_where('todos', 'process', self.id_):
+ raise HandledException('cannot remove Process in use')
db_conn.delete_where('process_conditions', 'process', self.id_)
db_conn.delete_where('process_enables', 'process', self.id_)
db_conn.delete_where('process_disables', 'process', self.id_)