UPdates to managers.

This commit is contained in:
lwark
2025-07-09 12:13:43 -05:00
parent 432854e76f
commit d5961f42a5
10 changed files with 147 additions and 89 deletions

View File

@@ -13,7 +13,7 @@ from PyQt6.QtGui import QAction
from pathlib import Path
from markdown import markdown
from pandas import ExcelWriter
from backend.db.models import Reagent, Sample, ClientSubmission, KitType, Run
from backend.db.models import Reagent, KitType
from tools import (
check_if_app, Settings, Report, jinja_template_loading, check_authorization, page_size, is_power_user,
under_development
@@ -175,6 +175,7 @@ class App(QMainWindow):
"""
Create a search for sample.
"""
from backend.db.models.submissions import Sample
dlg = SearchBox(self, object_type=Sample, extras=[])
dlg.exec()

View File

@@ -2,7 +2,7 @@ from PyQt6.QtWidgets import (
QVBoxLayout, QDialog, QDialogButtonBox
)
from .misc import CheckableComboBox, StartEndDatePicker
from backend.db import SubmissionType
from backend.db.models.kits import SubmissionType
class DateTypePicker(QDialog):

View File

@@ -11,9 +11,9 @@ from PyQt6.QtCore import Qt, QAbstractTableModel, QSortFilterProxyModel, pyqtSlo
from PyQt6.QtGui import QAction, QCursor, QStandardItemModel, QStandardItem, QIcon, QColor, QContextMenuEvent
from typing import Dict, List
from backend import Procedure
from backend.db.models import Run, ClientSubmission
from tools import Report, Result, report_result
# from backend import Procedure
from backend.db.models import Run, ClientSubmission, Procedure
from tools import Report, Result, report_result, get_application_from_parent
from .functions import select_open_file
logger = logging.getLogger(f"procedure.{__name__}")
@@ -261,6 +261,7 @@ class SubmissionsTree(QTreeView):
def __init__(self, model, parent=None):
super(SubmissionsTree, self).__init__(parent)
self.app = get_application_from_parent(parent)
self.total_count = ClientSubmission.__database_session__.query(ClientSubmission).count()
# self.setIndentation(0)
self.setExpandsOnDoubleClick(False)

View File

@@ -6,6 +6,8 @@ from PyQt6.QtWidgets import (
QComboBox, QDateEdit, QLineEdit, QLabel, QCheckBox, QHBoxLayout, QGridLayout
)
from PyQt6.QtCore import pyqtSignal, Qt, QSignalBlocker
from backend.managers import DefaultClientSubmission
from .functions import select_open_file, select_save_file
import logging
from pathlib import Path
@@ -120,25 +122,28 @@ class SubmissionFormContainer(QWidget):
report.add_result(Result(msg=f"File {fname.__str__()} not found.", status="critical"))
return report
# NOTE: create sheetparser using excel sheet and context from gui
try:
self.clientsubmissionparser = ClientSubmissionInfoParser(filepath=fname)
except PermissionError:
logger.error(f"Couldn't get permission to access file: {fname}")
return
except AttributeError:
self.clientsubmissionparser = ClientSubmissionInfoParser(filepath=fname)
try:
# self.prsr = SheetParser(filepath=fname)
self.sampleparser = ClientSubmissionSampleParser(filepath=fname)
except PermissionError:
logger.error(f"Couldn't get permission to access file: {fname}")
return
except AttributeError:
self.sampleparser = ClientSubmissionSampleParser(filepath=fname)
self.pydclientsubmission = self.clientsubmissionparser.to_pydantic()
self.pydsamples = self.sampleparser.to_pydantic()
# try:
# self.clientsubmissionparser = ClientSubmissionInfoParser(filepath=fname)
# except PermissionError:
# logger.error(f"Couldn't get permission to access file: {fname}")
# return
# except AttributeError:
# self.clientsubmissionparser = ClientSubmissionInfoParser(filepath=fname)
# try:
# # self.prsr = SheetParser(filepath=fname)
# self.sampleparser = ClientSubmissionSampleParser(filepath=fname)
# except PermissionError:
# logger.error(f"Couldn't get permission to access file: {fname}")
# return
# except AttributeError:
# self.sampleparser = ClientSubmissionSampleParser(filepath=fname)
# self.pydclientsubmission = self.clientsubmissionparser.to_pydantic()
# self.pydsamples = self.sampleparser.to_pydantic()
# logger.debug(f"Samples: {pformat(self.pydclientsubmission.sample)}")
checker = SampleChecker(self, "Sample Checker", self.pydsamples)
self.clientsubmission_manager = DefaultClientSubmission(parent=self, fname=fname)
self.pydclientsubmission = self.clientsubmission_manager.parse()
checker = SampleChecker(self, "Sample Checker", self.pydclientsubmission.samples)
if checker.exec():
# logger.debug(pformat(self.pydclientsubmission.sample))
try:
@@ -147,7 +152,7 @@ class SubmissionFormContainer(QWidget):
logger.error(f"Got wrong type for {self.pydclientsubmission}: {type(self.pydclientsubmission)}")
raise e
self.form = self.pydclientsubmission.to_form(parent=self)
self.form.samples = self.pydsamples
# self.form.samples = self.pydsamples
self.layout().addWidget(self.form)
else:
message = "Submission cancelled."