diff --git a/src/submissions/backend/db/models/__init__.py b/src/submissions/backend/db/models/__init__.py index fbf5d70..d669a67 100644 --- a/src/submissions/backend/db/models/__init__.py +++ b/src/submissions/backend/db/models/__init__.py @@ -655,7 +655,7 @@ class BaseClass(Base): from backend.validators import pydant if not pyd_model_name: pyd_model_name = f"Pyd{self.__class__.__name__}" - logger.info(f"Looking for pydant model {pyd_model_name}") + # logger.info(f"Looking for pydant model {pyd_model_name}") try: pyd = getattr(pydant, pyd_model_name) except AttributeError: diff --git a/src/submissions/backend/db/models/procedures.py b/src/submissions/backend/db/models/procedures.py index 43fbf91..be1f7c6 100644 --- a/src/submissions/backend/db/models/procedures.py +++ b/src/submissions/backend/db/models/procedures.py @@ -978,7 +978,7 @@ class Procedure(BaseClass): output['sample'] = active_samples + inactive_samples output['reagent'] = [reagent.details_dict() for reagent in output['procedurereagentlotassociation']] output['equipment'] = [equipment.details_dict() for equipment in output['procedureequipmentassociation']] - logger.debug(f"equipment: {pformat([item for item in output['equipment']])}") + # logger.debug(f"equipment: {pformat([item for item in output['equipment']])}") output['repeat'] = self.repeat output['run'] = self.run.name output['excluded'] += self.get_default_info("details_ignore") @@ -1045,7 +1045,6 @@ class Procedure(BaseClass): return html - class ProcedureTypeReagentRoleAssociation(BaseClass): """ table containing reagenttype/kittype associations diff --git a/src/submissions/frontend/widgets/submission_table.py b/src/submissions/frontend/widgets/submission_table.py index 1997b48..8ff7f08 100644 --- a/src/submissions/frontend/widgets/submission_table.py +++ b/src/submissions/frontend/widgets/submission_table.py @@ -23,7 +23,9 @@ class SubmissionsTree(QTreeView): self.app = get_application_from_parent(parent) self.total_count = ClientSubmission.__database_session__.query(ClientSubmission).count() self.setExpandsOnDoubleClick(False) - self.model = model + self.model: ClientSubmissionRunModel = model + header_labels = ["Name", "Submission Type", "Client Lab", "Submitted Date"] + self.model.setHorizontalHeaderLabels(header_labels) self.setModel(self.model) self.setSelectionBehavior(QAbstractItemView.selectionBehavior(self).SelectRows) self.set_data() @@ -48,7 +50,8 @@ class SubmissionsTree(QTreeView): self.setAlternatingRowColors(True) self.setIndentation(20) self.setItemsExpandable(True) - for ii in range(2): + self.setSortingEnabled(True) + for ii, _ in enumerate(header_labels): self.resizeColumnToContents(ii) def expand_item(self, event: QModelIndex): @@ -107,15 +110,19 @@ class SubmissionsTree(QTreeView): """ self.clear() self.data = [item.to_dict(full_data=True) for item in + # self.data = [item.details_dict() for item in ClientSubmission.query(chronologic=True, page=page, page_size=page_size)] root = self.model.invisibleRootItem() for submission in self.data: group_str = f"{submission['submissiontype']}-{submission['submitter_plate_id']}-{submission['submitted_date']}" - submission_item = self.model.add_child(parent=root, child=dict( + submission_item: QStandardItem = self.model.add_child(parent=root, child=dict( name=group_str, + client=submission['clientlab'], + date=submission['submitted_date'], + type=submission['submissiontype'], query_str=submission['submitter_plate_id'], item_type=ClientSubmission - )) + ), additions=True) for run in submission['run']: run_item = self.model.add_child(parent=submission_item, child=dict( name=run['plate_number'], @@ -156,10 +163,19 @@ class SubmissionsTree(QTreeView): class ClientSubmissionRunModel(QStandardItemModel): - def add_child(self, parent: QStandardItem, child:dict): + def __init__(self, parent): + super().__init__(parent) + + def add_child(self, parent: QStandardItem, child:dict, additions:bool=False) -> QStandardItem: item = QStandardItem(child['name']) item.setData(dict(item_type=child['item_type'], query_str=child['query_str']), 1) - parent.appendRow(item) + if additions: + item_client = QStandardItem(child['client']) + item_date = QStandardItem(child['date']) + item_type = QStandardItem(child['type']) + parent.appendRow([item, item_type, item_client, item_date]) + else: + parent.appendRow([item]) item.setEditable(False) return item