Created objects and process/submission associations.

This commit is contained in:
lwark
2024-06-10 15:08:45 -05:00
parent 3b9dc69618
commit 78c92cd31f

View File

@@ -71,6 +71,29 @@ kittypes_processes = Table(
extend_existing=True extend_existing=True
) )
tiproles_tips = Table(
"_tiproles_tips",
Base.metadata,
Column("tiprole_id", INTEGER, ForeignKey("_tiprole.id")),
Column("tips_id", INTEGER, ForeignKey("_tips.id")),
extend_existing=True
)
submissions_tips = Table(
"_submissions_tips",
Base.metadata,
Column("submission_id", INTEGER, ForeignKey("_basicsubmissions.id")),
Column("tips_id", INTEGER, ForeignKey("_tips.id")),
extend_existing=True
)
process_tiprole = Table(
"_process_tiprole",
Base.metadata,
Column("process_id", INTEGER, ForeignKey("_process.id")),
Column("tiprole_id", INTEGER, ForeignKey("_tiprole.id")),
extend_existing=True
)
class KitType(BaseClass): class KitType(BaseClass):
""" """
@@ -1048,7 +1071,6 @@ class Equipment(BaseClass):
secondary=equipmentroles_equipment) #: relation to EquipmentRoles secondary=equipmentroles_equipment) #: relation to EquipmentRoles
processes = relationship("Process", back_populates="equipment", processes = relationship("Process", back_populates="equipment",
secondary=equipment_processes) #: relation to Processes secondary=equipment_processes) #: relation to Processes
equipment_submission_associations = relationship( equipment_submission_associations = relationship(
"SubmissionEquipmentAssociation", "SubmissionEquipmentAssociation",
back_populates="equipment", back_populates="equipment",
@@ -1445,6 +1467,8 @@ class Process(BaseClass):
backref='process') #: relation to SubmissionEquipmentAssociation backref='process') #: relation to SubmissionEquipmentAssociation
kit_types = relationship("KitType", back_populates='processes', kit_types = relationship("KitType", back_populates='processes',
secondary=kittypes_processes) #: relation to KitType secondary=kittypes_processes) #: relation to KitType
tip_roles = relationship("TipRoles", back_populates='processes',
secondary=process_tiprole) #: relation to KitType
def __repr__(self) -> str: def __repr__(self) -> str:
""" """
@@ -1477,45 +1501,31 @@ class Process(BaseClass):
return cls.execute_query(query=query, limit=limit) return cls.execute_query(query=query, limit=limit)
# class TipRole(BaseClass): class TipRole(BaseClass):
#
# id = Column(INTEGER, primary_key=True) #: primary key id = Column(INTEGER, primary_key=True) #: primary key
# name = Column(String(64)) #: name of reagent type name = Column(String(64)) #: name of reagent type
# instances = relationship("Tips", back_populates="role", instances = relationship("Tips", back_populates="role",
# secondary=reagenttypes_reagents) #: concrete instances of this reagent type secondary=tiproles_tips) #: concrete instances of this reagent type
# processes = relationship("Process", back_populates="tip_roles", secondary=process_tiprole)
# tiprole_kit_associations = relationship(
# "KitTypeTipRoleAssociation",
# back_populates="tip_role", def __repr__(self):
# cascade="all, delete-orphan", return f"<TipRole({self.name})>"
# ) #: Relation to KitTypeReagentTypeAssociation
# class Tips(BaseClass):
# # creator function: https://stackoverflow.com/questions/11091491/keyerror-when-adding-objects-to-sqlalchemy-association-object/11116291#11116291
# kit_types = association_proxy("tiprole_kit_associations", "kit_type", id = Column(INTEGER, primary_key=True) #: primary key
# creator=lambda kit: KitTypeReagentTypeAssociation( role = relationship("TipRole", back_populates="instances",
# kit_type=kit)) #: Association proxy to KitTypeReagentTypeAssociation secondary=tiproles_tips) #: joined parent reagent type
# role_id = Column(INTEGER, ForeignKey("_tiprole.id", ondelete='SET NULL',
# def __repr__(self): name="fk_tip_role_id")) #: id of parent reagent type
# return f"<TipRole({self.name})>" name = Column(String(64)) #: tip common name
# lot = Column(String(64)) #: lot number of tips
# class Tips(BaseClass): submissions = relationship("BasicSubmission", back_populates="tips",
# secondary=submissions_tips) #: associated submission
# id = Column(INTEGER, primary_key=True) #: primary key
# role = relationship("TipRole", back_populates="instances", def __repr__(self):
# secondary=reagenttypes_reagents) #: joined parent reagent type return f"<Tips({self.name})>"
# role_id = Column(INTEGER, ForeignKey("_tiprole.id", ondelete='SET NULL',
# name="fk_tip_role_id")) #: id of parent reagent type
# name = Column(String(64)) #: tip common name
# lot = Column(String(64)) #: lot number of tips
#
# tips_submission_associations = relationship(
# "SubmissionTipsAssociation",
# back_populates="tips",
# cascade="all, delete-orphan",
# ) #: Relation to SubmissionSampleAssociation
#
# submissions = association_proxy("tips_submission_associations",
# "submission") #: Association proxy to SubmissionSampleAssociation.samples
#
# def __repr__(self):
# return f"<Tips({self.name})>"