Fixed molfile assignment, adjusted Export

This commit is contained in:
Tim Lorsbach
2026-07-03 09:40:47 +02:00
parent 365af14448
commit 2fbffb4b3b
2 changed files with 42 additions and 4 deletions

View File

@ -185,7 +185,7 @@ class PESStructure(CompoundStructure):
def create( def create(
compound: Compound, compound: Compound,
pes_link: str, pes_link: str,
mol_file: str, molfile: str,
smiles: str, smiles: str,
name: str = None, name: str = None,
description: str = None, description: str = None,
@ -204,7 +204,7 @@ class PESStructure(CompoundStructure):
cs.description = nh3.clean(description, tags=s.ALLOWED_HTML_TAGS).strip() cs.description = nh3.clean(description, tags=s.ALLOWED_HTML_TAGS).strip()
cs.smiles = smiles cs.smiles = smiles
cs.mol_file = mol_file cs.molfile = molfile
cs.pes_link = pes_link cs.pes_link = pes_link
cs.compound = compound cs.compound = compound

View File

@ -13,6 +13,7 @@ from django.db import transaction
from ninja import Schema from ninja import Schema
from pydantic import HttpUrl from pydantic import HttpUrl
from bayer.models import PESCompound
from epdb.models import ( from epdb.models import (
AdditionalInformation, AdditionalInformation,
Compound, Compound,
@ -64,6 +65,9 @@ class RefExportSchema(Schema):
return str(value) return str(value)
class RefGroupExportSchema(RefExportSchema): ...
class RefCompoundExportSchema(RefExportSchema): ... class RefCompoundExportSchema(RefExportSchema): ...
@ -110,6 +114,14 @@ class CompoundStructureExportSchema(RefCompoundStructureExportSchema):
scenarios: List[RefScenarioExportSchema] scenarios: List[RefScenarioExportSchema]
class PESCompoundExportSchema(CompoundExportSchema):
structures: List["PESCompoundStructureExportSchema"]
class PESCompoundStructureExportSchema(CompoundStructureExportSchema):
pes_link: HttpUrl
############ ############
# Reaction # # Reaction #
############ ############
@ -210,8 +222,10 @@ class PackageExportSchema(Schema):
description: str description: str
uuid: str uuid: str
reviewed: bool reviewed: bool
license: LicenseExportSchema | None license: LicenseExportSchema | None = None
compounds: List[CompoundExportSchema] classification_level: str = "Internal"
data_pool: RefGroupExportSchema | None = None
compounds: List[CompoundExportSchema | PESCompoundExportSchema]
reactions: List[ReactionExportSchema] reactions: List[ReactionExportSchema]
simple_rules: List[RuleExportSchema] simple_rules: List[RuleExportSchema]
composite_rules: List[ParallelRuleExportSchema] composite_rules: List[ParallelRuleExportSchema]
@ -224,6 +238,30 @@ class PackageExportSchema(Schema):
value = obj.get("uuid") if isinstance(obj, dict) else obj.uuid value = obj.get("uuid") if isinstance(obj, dict) else obj.uuid
return str(value) return str(value)
@staticmethod
def resolve_classification_level(obj):
if isinstance(obj, str):
return obj["classification_level"]
return obj.Classification(obj.classification_level).name
@staticmethod
def resolve_compounds(obj):
res = []
if isinstance(obj, dict):
for c in obj.get("compounds", []):
if "pes_link" in c:
res.append(PESCompoundExportSchema.model_validate(c))
else:
res.append(CompoundExportSchema.model_validate(c))
else:
for c in obj.compounds.all():
if isinstance(c, PESCompound):
res.append(PESCompoundExportSchema.from_orm(c))
else:
res.append(CompoundExportSchema.from_orm(c))
return res
@staticmethod @staticmethod
def resolve_simple_rules(obj): def resolve_simple_rules(obj):
if isinstance(obj, dict): if isinstance(obj, dict):