Adding equipment usage.
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 =
|
||||
|
||||
|
||||
@@ -4,4 +4,4 @@ class DefaultResults(object):
|
||||
|
||||
pass
|
||||
|
||||
from .PCR import pcr
|
||||
from .pcr import PCR
|
||||
39
src/submissions/frontend/widgets/results/pcr.py
Normal file
39
src/submissions/frontend/widgets/results/pcr.py
Normal 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()
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user