Mid clean-up.

This commit is contained in:
lwark
2025-01-10 13:49:24 -06:00
parent d93da3c90c
commit 5cded949ed
12 changed files with 178 additions and 90 deletions

View File

@@ -12,7 +12,7 @@ from PyQt6.QtGui import QAction
from pathlib import Path
from markdown import markdown
from __init__ import project_path
from backend import SubmissionType, Reagent, BasicSample, Organization
from backend import SubmissionType, Reagent, BasicSample, Organization, KitType
from tools import check_if_app, Settings, Report, jinja_template_loading, check_authorization, page_size, is_power_user
from .functions import select_save_file, select_open_file
# from datetime import date
@@ -84,6 +84,7 @@ class App(QMainWindow):
maintenanceMenu.addAction(self.joinPCRAction)
editMenu.addAction(self.editReagentAction)
editMenu.addAction(self.manageOrgsAction)
# editMenu.addAction(self.manageKitsAction)
if not is_power_user():
editMenu.setEnabled(False)
@@ -111,6 +112,7 @@ class App(QMainWindow):
self.yamlImportAction = QAction("Import Type Template", self)
self.editReagentAction = QAction("Edit Reagent", self)
self.manageOrgsAction = QAction("Manage Clients", self)
self.manageKitsAction = QAction("Manage Kits", self)
def _connectActions(self):
"""
@@ -129,6 +131,7 @@ class App(QMainWindow):
self.table_widget.pager.current_page.textChanged.connect(self.update_data)
self.editReagentAction.triggered.connect(self.edit_reagent)
self.manageOrgsAction.triggered.connect(self.manage_orgs)
self.manageKitsAction.triggered.connect(self.manage_kits)
def showAbout(self):
"""
@@ -219,6 +222,11 @@ class App(QMainWindow):
new_org = dlg.parse_form()
# logger.debug(new_org.__dict__)
def manage_kits(self):
dlg = ManagerWindow(parent=self, object_type=KitType, extras=[])
if dlg.exec():
print(dlg.parse_form())
class AddSubForm(QWidget):
def __init__(self, parent: QWidget):

View File

@@ -11,7 +11,7 @@ import logging
from sqlalchemy.orm.relationships import _RelationshipDeclared
from tools import Report, Result
from tools import Report, Result, report_result
logger = logging.getLogger(f"submissions.{__name__}")
@@ -23,7 +23,7 @@ class AddEdit(QDialog):
self.instance = instance
self.object_type = instance.__class__
self.layout = QGridLayout(self)
logger.debug(f"Manager: {manager}")
# logger.debug(f"Manager: {manager}")
QBtn = QDialogButtonBox.StandardButton.Ok | QDialogButtonBox.StandardButton.Cancel
self.buttonBox = QDialogButtonBox(QBtn)
self.buttonBox.accepted.connect(self.accept)
@@ -36,7 +36,7 @@ class AddEdit(QDialog):
fields = {'name': fields.pop('name'), **fields}
except KeyError:
pass
logger.debug(pformat(fields, indent=4))
# logger.debug(pformat(fields, indent=4))
height_counter = 0
for key, field in fields.items():
try:
@@ -47,7 +47,7 @@ class AddEdit(QDialog):
logger.debug(f"{key} property: {type(field['class_attr'].property)}")
# widget = EditProperty(self, key=key, column_type=field.property.expression.type,
# value=getattr(self.instance, key))
logger.debug(f"Column type: {field}, Value: {value}")
# logger.debug(f"Column type: {field}, Value: {value}")
widget = EditProperty(self, key=key, column_type=field, value=value)
except AttributeError as e:
logger.error(f"Problem setting widget {key}: {e}")
@@ -60,6 +60,7 @@ class AddEdit(QDialog):
self.setMinimumSize(600, 50 * height_counter)
self.setLayout(self.layout)
@report_result
def parse_form(self) -> Tuple[BaseModel, Report]:
report = Report()
parsed = {result[0].strip(":"): result[1] for result in [item.parse_form() for item in self.findChildren(EditProperty)] if result[0]}

View File

@@ -188,6 +188,8 @@ class EditRelationship(QWidget):
dlg = AddEdit(self, instance=instance, manager=self.parent().object_type.__name__.lower())
if dlg.exec():
new_instance = dlg.parse_form()
new_instance, result = new_instance.toSQL()
logger.debug(f"New instance: {new_instance}")
addition = getattr(self.parent().instance, self.objectName())
if isinstance(addition, InstrumentedList):
addition.append(new_instance)
@@ -211,7 +213,7 @@ class EditRelationship(QWidget):
sets data in model
"""
# logger.debug(self.data)
self.data = DataFrame.from_records([item.to_dict() for item in self.data])
self.data = DataFrame.from_records([item.to_omnigui_dict() for item in self.data])
try:
self.columns_of_interest = [dict(name=item, column=self.data.columns.get_loc(item)) for item in self.extras]
except (KeyError, AttributeError):

View File

@@ -68,7 +68,11 @@ class SearchBox(QDialog):
self.object_type = self.original_type
else:
self.object_type = self.original_type.find_regular_subclass(self.sub_class.currentText())
for iii, searchable in enumerate(self.object_type.searchables):
try:
search_fields = self.object_type.searchables
except AttributeError:
search_fields = []
for iii, searchable in enumerate(search_fields):
widget = FieldSearch(parent=self, label=searchable, field_name=searchable)
widget.setObjectName(searchable)
self.layout.addWidget(widget, 1 + iii, 0)
@@ -142,7 +146,10 @@ class SearchResults(QTableView):
self.context = kwargs
self.parent = parent
self.object_type = object_type
self.extras = extras + self.object_type.searchables
try:
self.extras = extras + self.object_type.searchables
except AttributeError:
self.extras = extras
def setData(self, df: DataFrame) -> None:
"""