Moments before disaster
This commit is contained in:
@@ -33,21 +33,10 @@ class SubmissionDetails(QDialog):
|
||||
self.app = parent.parent().parent().parent().parent().parent().parent()
|
||||
except AttributeError:
|
||||
self.app = None
|
||||
self.setWindowTitle(f"Submission Details - {sub.rsl_plate_num}")
|
||||
# self.setWindowTitle(f"Submission Details - {sub.rsl_plate_num}")
|
||||
# create scrollable interior
|
||||
interior = QScrollArea()
|
||||
interior.setParent(self)
|
||||
# self.base_dict = sub.to_dict(full_data=True)
|
||||
# logger.debug(f"Submission details data:\n{pformat({k:v for k,v in self.base_dict.items() if k != 'samples'})}")
|
||||
# # don't want id
|
||||
# del self.base_dict['id']
|
||||
# logger.debug(f"Creating barcode.")
|
||||
# if not check_if_app():
|
||||
# self.base_dict['barcode'] = base64.b64encode(sub.make_plate_barcode(width=120, height=30)).decode('utf-8')
|
||||
# logger.debug(f"Making platemap...")
|
||||
# self.base_dict['platemap'] = sub.make_plate_map()
|
||||
# self.base_dict, self.template = sub.get_details_template(base_dict=self.base_dict)
|
||||
# self.html = self.template.render(sub=self.base_dict)
|
||||
self.webview = QWebEngineView(parent=self)
|
||||
self.webview.setMinimumSize(900, 500)
|
||||
self.webview.setMaximumSize(900, 500)
|
||||
@@ -80,6 +69,7 @@ class SubmissionDetails(QDialog):
|
||||
base_dict, template = sample.get_details_template(base_dict=base_dict)
|
||||
html = template.render(sample=base_dict)
|
||||
self.webview.setHtml(html)
|
||||
self.setWindowTitle(f"Sample Details - {sample.submitter_id}")
|
||||
|
||||
@pyqtSlot(str)
|
||||
def submission_details(self, submission:str|BasicSubmission):
|
||||
@@ -104,6 +94,7 @@ class SubmissionDetails(QDialog):
|
||||
self.base_dict, self.template = submission.get_details_template(base_dict=self.base_dict)
|
||||
self.html = self.template.render(sub=self.base_dict)
|
||||
self.webview.setHtml(self.html)
|
||||
self.setWindowTitle(f"Submission Details - {submission.rsl_plate_num}")
|
||||
|
||||
def export(self):
|
||||
"""
|
||||
@@ -124,8 +115,6 @@ class SubmissionDetails(QDialog):
|
||||
self.base_dict['export_map'] = base64.b64encode(image_io.getvalue()).decode('utf-8')
|
||||
del self.base_dict['platemap']
|
||||
self.html2 = self.template.render(sub=self.base_dict)
|
||||
with open("test.html", "w") as fw:
|
||||
fw.write(self.html2)
|
||||
try:
|
||||
with open(fname, "w+b") as f:
|
||||
pisa.CreatePDF(self.html2, dest=f)
|
||||
|
||||
@@ -148,11 +148,11 @@ class SubmissionFormContainer(QWidget):
|
||||
logger.debug(f"Pydantic result: \n\n{pformat(self.pyd)}\n\n")
|
||||
self.form = self.pyd.toForm(parent=self)
|
||||
self.layout().addWidget(self.form)
|
||||
kit_widget = self.form.find_widgets(object_name="extraction_kit")[0].input
|
||||
logger.debug(f"Kitwidget {kit_widget}")
|
||||
self.scrape_reagents(kit_widget.currentText())
|
||||
kit_widget.currentTextChanged.connect(self.scrape_reagents)
|
||||
# compare obj.reagents with expected reagents in kit
|
||||
# kit_widget = self.form.find_widgets(object_name="extraction_kit")[0].input
|
||||
# logger.debug(f"Kitwidget {kit_widget}")
|
||||
# self.scrape_reagents(kit_widget.currentText())
|
||||
# kit_widget.currentTextChanged.connect(self.scrape_reagents)
|
||||
# # compare obj.reagents with expected reagents in kit
|
||||
if self.prsr.sample_result != None:
|
||||
report.add_result(msg=self.prsr.sample_result, status="Warning")
|
||||
self.report.add_result(report)
|
||||
@@ -220,7 +220,8 @@ class SubmissionFormContainer(QWidget):
|
||||
for reagent in self.form.reagents:
|
||||
logger.debug(f"Creating widget for {reagent}")
|
||||
add_widget = ReagentFormWidget(parent=self, reagent=reagent, extraction_kit=self.ext_kit)
|
||||
self.form.layout().addWidget(add_widget)
|
||||
# self.form.layout().addWidget(add_widget)
|
||||
self.form.layout.addWidget(add_widget)
|
||||
if reagent.missing:
|
||||
missing_reagents.append(reagent)
|
||||
logger.debug(f"Checking integrity of {self.ext_kit}")
|
||||
@@ -397,15 +398,15 @@ class SubmissionFormWidget(QWidget):
|
||||
super().__init__(parent)
|
||||
self.ignore = ['filepath', 'samples', 'reagents', 'csv', 'ctx', 'comment', 'equipment', 'source_plates']
|
||||
self.recover = ['filepath', 'samples', 'csv', 'comment', 'equipment']
|
||||
layout = QVBoxLayout()
|
||||
self.layout = QVBoxLayout()
|
||||
for k, v in kwargs.items():
|
||||
if k not in self.ignore:
|
||||
add_widget = self.create_widget(key=k, value=v, submission_type=kwargs['submission_type'])
|
||||
if add_widget != None:
|
||||
layout.addWidget(add_widget)
|
||||
self.layout.addWidget(add_widget)
|
||||
else:
|
||||
setattr(self, k, v)
|
||||
self.setLayout(layout)
|
||||
self.setLayout(self.layout)
|
||||
|
||||
def create_widget(self, key:str, value:dict, submission_type:str|None=None) -> "self.InfoItem":
|
||||
"""
|
||||
@@ -420,7 +421,15 @@ class SubmissionFormWidget(QWidget):
|
||||
self.InfoItem: Form widget to hold name:value
|
||||
"""
|
||||
if key not in self.ignore:
|
||||
return self.InfoItem(self, key=key, value=value, submission_type=submission_type)
|
||||
widget = self.InfoItem(self, key=key, value=value, submission_type=submission_type)
|
||||
# match key:
|
||||
# case "extraction_kit":
|
||||
# # compare obj.reagents with expected reagents in kit
|
||||
# self.scrape_reagents(widget.currentText())
|
||||
# widget.currentTextChanged.connect(self.scrape_reagents)
|
||||
# case _:
|
||||
# pass
|
||||
return widget
|
||||
return None
|
||||
|
||||
def clear_form(self):
|
||||
|
||||
Reference in New Issue
Block a user