forked from enviPath/enviPy
[Feature] Alias Support (#151)
Fixes #149 Co-authored-by: Tim Lorsbach <tim@lorsba.ch> Reviewed-on: enviPath/enviPy#151
This commit is contained in:
@ -691,6 +691,7 @@ class PackageManager(object):
|
||||
struc.uuid = UUID(structure["id"].split("/")[-1]) if keep_ids else uuid4()
|
||||
struc.name = structure["name"]
|
||||
struc.description = structure["description"]
|
||||
struc.aliases = structure.get("aliases", [])
|
||||
struc.smiles = structure["smiles"]
|
||||
struc.save()
|
||||
|
||||
@ -728,6 +729,7 @@ class PackageManager(object):
|
||||
r.package = pack
|
||||
r.name = rule["name"]
|
||||
r.description = rule["description"]
|
||||
r.aliases = rule.get("aliases", [])
|
||||
r.smirks = rule["smirks"]
|
||||
r.reactant_filter_smarts = rule.get("reactantFilterSmarts", None)
|
||||
r.product_filter_smarts = rule.get("productFilterSmarts", None)
|
||||
@ -747,6 +749,7 @@ class PackageManager(object):
|
||||
r.uuid = UUID(par_rule["id"].split("/")[-1]) if keep_ids else uuid4()
|
||||
r.name = par_rule["name"]
|
||||
r.description = par_rule["description"]
|
||||
r.aliases = par_rule.get("aliases", [])
|
||||
r.save()
|
||||
|
||||
mapping[par_rule["id"]] = r.uuid
|
||||
@ -766,6 +769,7 @@ class PackageManager(object):
|
||||
r.uuid = UUID(seq_rule["id"].split("/")[-1]) if keep_ids else uuid4()
|
||||
r.name = seq_rule["name"]
|
||||
r.description = seq_rule["description"]
|
||||
r.aliases = seq_rule.get("aliases", [])
|
||||
r.save()
|
||||
|
||||
mapping[seq_rule["id"]] = r.uuid
|
||||
@ -791,6 +795,7 @@ class PackageManager(object):
|
||||
r.uuid = UUID(reaction["id"].split("/")[-1]) if keep_ids else uuid4()
|
||||
r.name = reaction["name"]
|
||||
r.description = reaction["description"]
|
||||
r.aliases = reaction.get("aliases", [])
|
||||
r.medlinereferences = (reaction["medlinereferences"],)
|
||||
r.multi_step = True if reaction["multistep"] == "true" else False
|
||||
r.save()
|
||||
@ -824,6 +829,7 @@ class PackageManager(object):
|
||||
pw.uuid = UUID(pathway["id"].split("/")[-1]) if keep_ids else uuid4()
|
||||
pw.name = pathway["name"]
|
||||
pw.description = pathway["description"]
|
||||
pw.aliases = pathway.get("aliases", [])
|
||||
pw.save()
|
||||
|
||||
mapping[pathway["id"]] = pw.uuid
|
||||
@ -836,6 +842,8 @@ class PackageManager(object):
|
||||
n = Node()
|
||||
n.uuid = UUID(node["id"].split("/")[-1]) if keep_ids else uuid4()
|
||||
n.name = node["name"]
|
||||
n.description = node.get("description")
|
||||
n.aliases = node.get("aliases", [])
|
||||
n.pathway = pw
|
||||
n.depth = node["depth"]
|
||||
n.default_node_label = CompoundStructure.objects.get(
|
||||
@ -862,6 +870,7 @@ class PackageManager(object):
|
||||
e.name = edge["name"]
|
||||
e.pathway = pw
|
||||
e.description = edge["description"]
|
||||
e.aliases = edge.get("aliases", [])
|
||||
e.edge_label = Reaction.objects.get(uuid=mapping[edge["edgeLabel"]["id"]])
|
||||
e.save()
|
||||
|
||||
|
||||
@ -300,6 +300,14 @@ def set_scenarios(current_user, attach_object, scenario_urls: List[str]):
|
||||
attach_object.set_scenarios(scens)
|
||||
|
||||
|
||||
def set_aliases(current_user, attach_object, aliases: List[str]):
|
||||
if aliases == [""]:
|
||||
aliases = []
|
||||
|
||||
attach_object.aliases = aliases
|
||||
attach_object.save()
|
||||
|
||||
|
||||
def copy_object(current_user, target_package: "Package", source_object_url: str):
|
||||
# Ensures that source is readable
|
||||
source_package = PackageManager.get_package_by_url(current_user, source_object_url)
|
||||
@ -1160,10 +1168,19 @@ def package_compound(request, package_uuid, compound_uuid):
|
||||
|
||||
if "selected-scenarios" in request.POST:
|
||||
selected_scenarios = request.POST.getlist("selected-scenarios")
|
||||
|
||||
set_scenarios(current_user, current_compound, selected_scenarios)
|
||||
return redirect(current_compound.url)
|
||||
|
||||
if "aliases" in request.POST:
|
||||
aliases = request.POST.getlist("aliases")
|
||||
|
||||
try:
|
||||
set_aliases(current_user, current_compound, aliases)
|
||||
except Exception as e:
|
||||
return JsonResponse({"error": str(e)}, status=400)
|
||||
|
||||
return JsonResponse({"success": current_compound.url})
|
||||
|
||||
new_compound_name = request.POST.get("compound-name", "").strip()
|
||||
new_compound_description = request.POST.get("compound-description", "").strip()
|
||||
|
||||
@ -1311,6 +1328,16 @@ def package_compound_structure(request, package_uuid, compound_uuid, structure_u
|
||||
set_scenarios(current_user, current_structure, selected_scenarios)
|
||||
return redirect(current_structure.url)
|
||||
|
||||
if "aliases" in request.POST:
|
||||
aliases = request.POST.getlist("aliases")
|
||||
|
||||
try:
|
||||
set_aliases(current_user, current_structure, aliases)
|
||||
except Exception as e:
|
||||
return JsonResponse({"error": str(e)}, status=400)
|
||||
|
||||
return JsonResponse({"success": current_structure.url})
|
||||
|
||||
selected_database = request.POST.get("selected-database", "").strip()
|
||||
external_identifier = request.POST.get("identifier", "").strip()
|
||||
|
||||
@ -1472,6 +1499,16 @@ def package_rule(request, package_uuid, rule_uuid):
|
||||
set_scenarios(current_user, current_rule, selected_scenarios)
|
||||
return redirect(current_rule.url)
|
||||
|
||||
if "aliases" in request.POST:
|
||||
aliases = request.POST.getlist("aliases")
|
||||
|
||||
try:
|
||||
set_aliases(current_user, current_rule, aliases)
|
||||
except Exception as e:
|
||||
return JsonResponse({"error": str(e)}, status=400)
|
||||
|
||||
return JsonResponse({"success": current_rule.url})
|
||||
|
||||
rule_name = request.POST.get("rule-name", "").strip()
|
||||
rule_description = request.POST.get("rule-description", "").strip()
|
||||
|
||||
@ -1588,6 +1625,16 @@ def package_reaction(request, package_uuid, reaction_uuid):
|
||||
set_scenarios(current_user, current_reaction, selected_scenarios)
|
||||
return redirect(current_reaction.url)
|
||||
|
||||
if "aliases" in request.POST:
|
||||
aliases = request.POST.getlist("aliases")
|
||||
|
||||
try:
|
||||
set_aliases(current_user, current_reaction, aliases)
|
||||
except Exception as e:
|
||||
return JsonResponse({"error": str(e)}, status=400)
|
||||
|
||||
return JsonResponse({"success": current_reaction.url})
|
||||
|
||||
new_reaction_name = request.POST.get("reaction-name", "").strip()
|
||||
new_reaction_description = request.POST.get("reaction-description", "").strip()
|
||||
|
||||
@ -1807,6 +1854,16 @@ def package_pathway(request, package_uuid, pathway_uuid):
|
||||
set_scenarios(current_user, current_pathway, selected_scenarios)
|
||||
return redirect(current_pathway.url)
|
||||
|
||||
if "aliases" in request.POST:
|
||||
aliases = request.POST.getlist("aliases")
|
||||
|
||||
try:
|
||||
set_aliases(current_user, current_pathway, aliases)
|
||||
except Exception as e:
|
||||
return JsonResponse({"error": str(e)}, status=400)
|
||||
|
||||
return JsonResponse({"success": current_pathway.url})
|
||||
|
||||
pathway_name = request.POST.get("pathway-name")
|
||||
pathway_description = request.POST.get("pathway-description")
|
||||
|
||||
@ -1957,6 +2014,16 @@ def package_pathway_node(request, package_uuid, pathway_uuid, node_uuid):
|
||||
set_scenarios(current_user, current_node, selected_scenarios)
|
||||
return redirect(current_node.url)
|
||||
|
||||
if "aliases" in request.POST:
|
||||
aliases = request.POST.getlist("aliases")
|
||||
|
||||
try:
|
||||
set_aliases(current_user, current_node, aliases)
|
||||
except Exception as e:
|
||||
return JsonResponse({"error": str(e)}, status=400)
|
||||
|
||||
return JsonResponse({"success": current_node.url})
|
||||
|
||||
return HttpResponseBadRequest()
|
||||
else:
|
||||
return HttpResponseNotAllowed(["GET", "POST"])
|
||||
@ -2073,6 +2140,16 @@ def package_pathway_edge(request, package_uuid, pathway_uuid, edge_uuid):
|
||||
set_scenarios(current_user, current_edge, selected_scenarios)
|
||||
return redirect(current_edge.url)
|
||||
|
||||
if "aliases" in request.POST:
|
||||
aliases = request.POST.getlist("aliases")
|
||||
|
||||
try:
|
||||
set_aliases(current_user, current_edge, aliases)
|
||||
except Exception as e:
|
||||
return JsonResponse({"error": str(e)}, status=400)
|
||||
|
||||
return JsonResponse({"success": current_edge.url})
|
||||
|
||||
return HttpResponseBadRequest()
|
||||
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user