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

@@ -19,7 +19,7 @@ class EquipmentUsage(QDialog):
def __init__(self, parent, procedure: Procedure):
super().__init__(parent)
self.procedure = procedure
self.setWindowTitle(f"Equipment Checklist - {procedure.rsl_plate_num}")
self.setWindowTitle(f"Equipment Checklist - {procedure.name}")
self.used_equipment = self.procedure.equipment
self.kit = self.procedure.kittype
self.opt_equipment = procedure.proceduretype.get_equipment()

View File

@@ -39,6 +39,7 @@ def select_open_file(obj: QMainWindow, file_extension: str | None = None) -> Pat
logger.warning(f"No file selected, cancelling.")
return
obj.last_dir = fname.parent
logger.debug(f"File selected: {fname}")
return fname

View File

@@ -70,8 +70,8 @@ class ProcedureCreation(QDialog):
procedure=self.created_procedure.__dict__,
plate_map=self.plate_map
)
with open("procedure.html", "w") as f:
f.write(html)
# with open("procedure.html", "w") as f:
# f.write(html)
self.webview.setHtml(html)
@pyqtSlot(str, str)

View File

@@ -1,26 +0,0 @@
"""
"""
from pathlib import Path
from backend.validators import PydResults
from backend.db.models import Procedure, Results
from backend.excel.parsers.pcr_parser import PCRSampleParser, PCRInfoParser
from frontend.widgets.functions import select_open_file
from . import DefaultResults
class PCR(DefaultResults):
def __init__(self, procedure: Procedure, fname:Path|str|None=None):
self.procedure = procedure
if not fname:
self.fname = select_open_file(file_extension="xlsx")
elif isinstance(fname, str):
self.fname = Path(fname)
self.info_parser = PCRInfoParser(filepath=fname)
self.sample_parser = PCRSampleParser(filepath=fname)
def build_procedure(self):
results = PydResults(parent=self.procedure)
results.results =

View File

@@ -4,4 +4,4 @@ class DefaultResults(object):
pass
from .PCR import pcr
from .pcr import PCR

View File

@@ -0,0 +1,39 @@
"""
"""
import logging
from pathlib import Path
from backend.validators import PydResults
from backend.db.models import Procedure, Results
from backend.excel.parsers.pcr_parser import PCRSampleParser, PCRInfoParser
from frontend.widgets.functions import select_open_file
from tools import get_application_from_parent
from . import DefaultResults
logger = logging.getLogger(f"submissions.{__name__}")
class PCR(DefaultResults):
def __init__(self, procedure: Procedure, parent, fname:Path|str|None=None):
logger.debug(f"FName before correction: {fname}")
self.procedure = procedure
if not fname:
self.fname = select_open_file(file_extension="xlsx", obj=get_application_from_parent(parent))
elif isinstance(fname, str):
self.fname = Path(fname)
logger.debug(f"FName after correction: {fname}")
self.info_parser = PCRInfoParser(filepath=self.fname, procedure=self.procedure)
self.sample_parser = PCRSampleParser(filepath=self.fname, procedure=self.procedure)
self.build_procedure()
self.build_samples()
def build_procedure(self):
procedure_info = self.info_parser.to_pydantic()
procedure_sql = procedure_info.to_sql()
procedure_sql.save()
def build_samples(self):
samples = self.sample_parser.to_pydantic()
for sample in samples:
sql = sample.to_sql()
sql.save()

View File

@@ -321,14 +321,11 @@ class SubmissionsTree(QTreeView):
event (_type_): the item of interest
"""
indexes = self.selectedIndexes()
dicto = next((item.data(1) for item in indexes if item.data(1)))
query_obj = dicto['item_type'].query(name=dicto['query_str'], limit=1)
logger.debug(query_obj)
# NOTE: Convert to data in id column (i.e. column 0)
# id = id.sibling(id.row(), 0).data()
# logger.debug(id.model().query_group_object(id.row()))
# clientsubmission = id.model().query_group_object(id.row())
self.menu = QMenu(self)
@@ -403,8 +400,6 @@ class SubmissionsTree(QTreeView):
if isinstance(children, List):
self._populateTree(child, child_item)
def clear(self):
if self.model != None:
# self.model.clear() # works
@@ -415,7 +410,6 @@ class SubmissionsTree(QTreeView):
# NOTE: Convert to data in id column (i.e. column 0)
# id = id.sibling(id.row(), 1)
indexes = self.selectedIndexes()
dicto = next((item.data(1) for item in indexes if item.data(1)))
logger.debug(dicto)
# try: