[Feature] Management Command to Compute and Store Reaction <-> Rule Associations (#453)

Co-authored-by: Tim Lorsbach <tim@lorsba.ch>
Reviewed-on: enviPath/enviPy#453
This commit is contained in:
2026-08-14 20:45:12 +12:00
parent 2d3dca6a75
commit fedd1b5280
6 changed files with 235 additions and 15 deletions

View File

@ -44,20 +44,25 @@ class Command(BaseCommand):
"EPModel",
"ApplicabilityDomain",
"EnzymeLink",
"AdditionalInformation",
]
for model in MODELS:
obj_cls = apps.get_model("epdb", model)
obj_cls.objects.update(
url=Replace(F("url"), Value(options["old"]), Value(options["new"]))
)
if issubclass(obj_cls, EnviPathModel):
obj_cls.objects.update(
kv=Cast(
Replace(
Cast(F("kv"), output_field=TextField()),
Value(options["old"]),
Value(options["new"]),
),
output_field=JSONField(),
)
update_fields = {"url": Replace(F("url"), Value(options["old"]), Value(options["new"]))}
if hasattr(obj_cls, "description"):
update_fields["description"] = Replace(
F("description"), Value(options["old"]), Value(options["new"])
)
if issubclass(obj_cls, EnviPathModel):
update_fields["kv"] = Cast(
Replace(
Cast(F("kv"), output_field=TextField()),
Value(options["old"]),
Value(options["new"]),
),
output_field=JSONField(),
)
obj_cls.objects.update(**update_fields)