Writer and manager updates.
This commit is contained in:
@@ -5,6 +5,7 @@ from __future__ import annotations
|
||||
|
||||
import datetime
|
||||
import os
|
||||
import re
|
||||
import sys, logging
|
||||
from pathlib import Path
|
||||
from pprint import pformat
|
||||
@@ -81,6 +82,8 @@ class ProcedureCreation(QDialog):
|
||||
equipmentrole['equipment'].index(item_in_er_list)))
|
||||
proceduretype_dict['equipment_section'] = EquipmentUsage.construct_html(procedure=self.procedure, child=True)
|
||||
self.update_equipment = EquipmentUsage.update_equipment
|
||||
regex = re.compile(r".*R\d$")
|
||||
proceduretype_dict['previous'] = [""] + [item.name for item in self.run.procedure if item.proceduretype == self.proceduretype and not bool(regex.match(item.name))]
|
||||
html = render_details_template(
|
||||
template_name="procedure_creation",
|
||||
# css_in=['new_context_menu'],
|
||||
@@ -91,8 +94,8 @@ class ProcedureCreation(QDialog):
|
||||
plate_map=self.plate_map,
|
||||
edit=self.edit
|
||||
)
|
||||
with open("procedure_creation_rendered.html", "w") as f:
|
||||
f.write(html)
|
||||
# with open("procedure_creation_rendered.html", "w") as f:
|
||||
# f.write(html)
|
||||
self.webview.setHtml(html)
|
||||
|
||||
@pyqtSlot(str, str, str, str)
|
||||
@@ -127,11 +130,18 @@ class ProcedureCreation(QDialog):
|
||||
setattr(self.procedure.run, key, new_value)
|
||||
case _:
|
||||
attribute = getattr(self.procedure, key)
|
||||
attribute['value'] = new_value.strip('\"')
|
||||
match attribute:
|
||||
case dict():
|
||||
attribute['value'] = new_value.strip('\"')
|
||||
case _:
|
||||
setattr(self.procedure, key, new_value.strip('\"'))
|
||||
logger.debug(f"Set value for {key}: {getattr(self.procedure, key)}")
|
||||
|
||||
|
||||
|
||||
@pyqtSlot(str, bool)
|
||||
def check_toggle(self, key: str, ischecked: bool):
|
||||
# logger.debug(f"{key} is checked: {ischecked}")
|
||||
logger.debug(f"{key} is checked: {ischecked}")
|
||||
setattr(self.procedure, key, ischecked)
|
||||
|
||||
@pyqtSlot(str)
|
||||
@@ -159,7 +169,7 @@ class ProcedureCreation(QDialog):
|
||||
self.set_html()
|
||||
|
||||
@pyqtSlot(str, str)
|
||||
def update_reagent(self, reagentrole:str, name_lot_expiry:str):
|
||||
def update_reagent(self, reagentrole: str, name_lot_expiry: str):
|
||||
try:
|
||||
name, lot, expiry = name_lot_expiry.split(" - ")
|
||||
except ValueError as e:
|
||||
@@ -167,8 +177,8 @@ class ProcedureCreation(QDialog):
|
||||
return
|
||||
self.procedure.update_reagents(reagentrole=reagentrole, name=name, lot=lot, expiry=expiry)
|
||||
|
||||
def return_sql(self):
|
||||
return self.procedure.to_sql()
|
||||
def return_sql(self, new: bool = False):
|
||||
return self.procedure.to_sql(new=new)
|
||||
|
||||
# class ProcedureWebViewer(QWebEngineView):
|
||||
#
|
||||
|
||||
@@ -8,7 +8,7 @@ from PyQt6.QtWebChannel import QWebChannel
|
||||
from PyQt6.QtCore import Qt, pyqtSlot
|
||||
from jinja2 import TemplateNotFound
|
||||
from backend.db.models import Run, Sample, Reagent, KitType, Equipment, Process, Tips
|
||||
from tools import is_power_user, jinja_template_loading, timezone, get_application_from_parent
|
||||
from tools import is_power_user, jinja_template_loading, timezone, get_application_from_parent, list_str_comparator
|
||||
from .functions import select_save_file, save_pdf
|
||||
from pathlib import Path
|
||||
import logging
|
||||
@@ -50,14 +50,6 @@ class SubmissionDetails(QDialog):
|
||||
# NOTE: setup channel
|
||||
self.channel = QWebChannel()
|
||||
self.channel.registerObject('backend', self)
|
||||
# match sub:
|
||||
# case Run():
|
||||
# self.run_details(run=sub)
|
||||
# self.rsl_plate_number = sub.rsl_plate_number
|
||||
# case Sample():
|
||||
# self.sample_details(sample=sub)
|
||||
# case Reagent():
|
||||
# self.reagent_details(reagent=sub)
|
||||
# NOTE: Used to maintain javascript functions.
|
||||
self.object_details(object=sub)
|
||||
self.webview.page().setWebChannel(self.channel)
|
||||
@@ -75,8 +67,8 @@ class SubmissionDetails(QDialog):
|
||||
self.webview.setHtml(html)
|
||||
self.setWindowTitle(f"{object.__class__.__name__} Details - {object.name}")
|
||||
with open(f"{object.__class__.__name__}_details_rendered.html", "w") as f:
|
||||
f.write(html)
|
||||
|
||||
# f.write(html)
|
||||
pass
|
||||
|
||||
|
||||
def activate_export(self) -> None:
|
||||
@@ -88,11 +80,11 @@ class SubmissionDetails(QDialog):
|
||||
"""
|
||||
title = self.webview.title()
|
||||
self.setWindowTitle(title)
|
||||
if "Submission" in title:
|
||||
if list_str_comparator(title, ['ClientSubmission', "Run", "Procedure"], mode="starts_with"):
|
||||
self.btn.setEnabled(True)
|
||||
self.export_plate = title.split(" ")[-1]
|
||||
else:
|
||||
self.btn.setEnabled(False)
|
||||
self.export_plate = title
|
||||
try:
|
||||
check = self.webview.history().items()[0].title()
|
||||
except IndexError as e:
|
||||
|
||||
Reference in New Issue
Block a user