table_name = 'processes'
to_save = ['calendarize']
to_save_versioned = ['title', 'description', 'effort']
- to_save_relations = [('process_conditions', 'process', 'conditions'),
- ('process_blockers', 'process', 'blockers'),
- ('process_enables', 'process', 'enables'),
- ('process_disables', 'process', 'disables')]
+ to_save_relations = [('process_conditions', 'process', 'conditions', 0),
+ ('process_blockers', 'process', 'blockers', 0),
+ ('process_enables', 'process', 'enables', 0),
+ ('process_disables', 'process', 'disables', 0)]
to_search = ['title.newest', 'description.newest']
def __init__(self, id_: int | None, calendarize: bool = False) -> None:
for child in explicit_children:
assert isinstance(child.id_, int)
node.steps[child.id_] = make_node(child)
+ # ensure that one (!) explicit step of process replaces
+ # one (!) implicit step of same process
+ for i in [i for i, s in node.steps.items()
+ if not s.is_explicit
+ and s.process.id_ == child.step_process_id]:
+ del node.steps[i]
+ break
node.seen = node_id in seen_step_ids
seen_step_ids.add(node_id)
for id_, step in node.steps.items():