[Fix] Legacy API Node Depth Parsing, description validation in Reaction.create (#402)

Co-authored-by: Tim Lorsbach <tim@lorsba.ch>
Reviewed-on: enviPath/enviPy#402
This commit is contained in:
2026-05-28 09:53:39 +12:00
parent c7c7e17e43
commit 1a9f1cf9af
2 changed files with 6 additions and 3 deletions

View File

@ -1891,7 +1891,7 @@ def add_pathway_node(request, package_uuid, pathway_uuid, n: Form[CreateNode]):
pw = Pathway.objects.get(package=p, uuid=pathway_uuid)
if n.nodeDepth is not None and n.nodeDepth.strip() != "":
node_depth = int(n.nodeDepth)
node_depth = int(float(n.nodeDepth))
else:
node_depth = -1

View File

@ -1695,7 +1695,7 @@ class Reaction(
if name is not None and name.strip() != "":
r.name = nh3.clean(name, tags=s.ALLOWED_HTML_TAGS).strip()
if description is not None and name.strip() != "":
if description is not None and description.strip() != "":
r.description = nh3.clean(description, tags=s.ALLOWED_HTML_TAGS).strip()
r.multi_step = multi_step
@ -2192,6 +2192,7 @@ class Pathway(EnviPathModel, AliasMixin, ScenarioMixin, AdditionalInformationMix
depth_map = {}
depth_map[0] = list()
processed = set()
for n in self.nodes:
num_parents = in_count[str(n.uuid)]
@ -2214,10 +2215,12 @@ class Pathway(EnviPathModel, AliasMixin, ScenarioMixin, AdditionalInformationMix
unique_next_level = set()
for n in level_nodes:
processed.add(n)
for e in self.edges:
if n in e.start_nodes.all():
for p in e.end_nodes.all():
unique_next_level.add(p)
if p not in processed:
unique_next_level.add(p)
if len(unique_next_level) > 0:
depth_map[i + 1] = list(unique_next_level)