Adding equipment usage.

This commit is contained in:
lwark
2025-06-10 10:29:01 -05:00
parent 10d4c9f155
commit 58c669bc30
12 changed files with 145 additions and 88 deletions

View File

@@ -1320,11 +1320,20 @@ class Procedure(BaseClass):
Returns:
dict: dictionary of functions
"""
names = ["Add Results", "Edit", "Add Comment", "Show Details", "Delete"]
names = ["Add Results", "Add Equipment", "Edit", "Add Comment", "Show Details", "Delete"]
return {item: self.__getattribute__(item.lower().replace(" ", "_")) for item in names}
def add_results(self, obj, resultstype_name:str):
logger.debug(f"Add Results! {resultstype_name}")
from frontend.widgets import results
results_class = getattr(results, resultstype_name)
rs = results_class(procedure=self, parent=obj)
def add_equipment(self, obj):
from frontend.widgets.equipment_usage import EquipmentUsage
dlg = EquipmentUsage(parent=obj, procedure=self)
if dlg.exec():
pass
def edit(self, obj):
logger.debug("Edit!")
@@ -2668,7 +2677,6 @@ class Results(BaseClass):
procedure = relationship("Procedure", back_populates="results")
assoc_id = Column(INTEGER, ForeignKey("_proceduresampleassociation.id", ondelete='SET NULL',
name="fk_RES_ASSOC_id"))
sampleprocedureassociation = relationship("ProcedureSampleAssociation", back_populates="results")
_img = Column(String(128))

View File

@@ -314,6 +314,7 @@ class ClientSubmission(BaseClass, LogMixin):
assoc.save()
else:
logger.warning("Run cancelled.")
obj.set_data()
def edit(self, obj):
@@ -1138,8 +1139,7 @@ class Run(BaseClass, LogMixin):
sql, _ = dlg.return_sql()
logger.debug(f"Output run samples:\n{pformat(sql.run.sample)}")
sql.save()
obj.set_data()
def delete(self, obj=None):
"""
@@ -2029,7 +2029,7 @@ class RunSampleAssociation(BaseClass):
class ProcedureSampleAssociation(BaseClass):
id = Column(INTEGER, primary_key=True)
id = Column(INTEGER, unique=True, nullable=False)
procedure_id = Column(INTEGER, ForeignKey("_procedure.id"), primary_key=True) #: id of associated procedure
sample_id = Column(INTEGER, ForeignKey("_sample.id"), primary_key=True) #: id of associated equipment
row = Column(INTEGER)
@@ -2042,15 +2042,34 @@ class ProcedureSampleAssociation(BaseClass):
results = relationship("Results", back_populates="sampleprocedureassociation")
@classmethod
def query(cls, sample: Sample|str|None=None, procedure: Procedure|str|None=None, limit: int=0, **kwargs):
query = cls.__database_session__.query(cls)
match sample:
case Sample():
query = query.filter(cls.sample==sample)
case str():
query = query.join(Sample).filter(Sample.sample_id==sample)
case _:
pass
match procedure:
case Procedure():
query = query.filter(cls.procedure == procedure)
case str():
query = query.join(Procedure).filter(Procedure.name == procedure)
case _:
pass
if sample and procedure:
limit = 1
return cls.execute_query(query=query, limit=limit, **kwargs)
# def __init__(self, new_id:int|None=None, **kwarg):
# if new_id:
# self.id = new_id
# else:
# self.id = self.__class__.autoincrement_id()
# # new_id = self.__class__.autoincrement_id()
# super().__init__(**kwarg)
def __init__(self, new_id:int|None=None, **kwarg):
if new_id:
self.id = new_id
else:
self.id = self.__class__.autoincrement_id()
super().__init__(**kwarg)
@classmethod