From 51b193b4dbd01e4fcc893747ebf2b4db0ecb0b86 Mon Sep 17 00:00:00 2001 From: lwark Date: Thu, 3 Jul 2025 09:15:11 -0500 Subject: [PATCH] Troubleshooting. --- .../excel/parsers/clientsubmission_parser.py | 5 +++-- src/submissions/backend/validators/pydant.py | 18 +++++++++++++++++- src/submissions/templates/js/procedure_form.js | 1 - 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/submissions/backend/excel/parsers/clientsubmission_parser.py b/src/submissions/backend/excel/parsers/clientsubmission_parser.py index ef7a86e..7c82922 100644 --- a/src/submissions/backend/excel/parsers/clientsubmission_parser.py +++ b/src/submissions/backend/excel/parsers/clientsubmission_parser.py @@ -111,8 +111,8 @@ class ClientSubmissionSampleParser(DefaultTABLEParser, SubmissionTyperMixin): """ default_range_dict = [dict( - header_row=20, - end_row=116, + header_row=19, + end_row=115, sheet="Sample List" )] @@ -126,6 +126,7 @@ class ClientSubmissionSampleParser(DefaultTABLEParser, SubmissionTyperMixin): def parsed_info(self) -> Generator[dict, None, None]: output = super().parsed_info for ii, sample in enumerate(output): + logger.debug(f"Parsed info sample: {sample}") if isinstance(sample["row"], str) and sample["row"].lower() in ascii_lowercase[0:8]: try: sample["row"] = row_keys[sample["row"]] diff --git a/src/submissions/backend/validators/pydant.py b/src/submissions/backend/validators/pydant.py index 26db451..35b09a8 100644 --- a/src/submissions/backend/validators/pydant.py +++ b/src/submissions/backend/validators/pydant.py @@ -1504,10 +1504,26 @@ class PydProcedure(PydBaseClass, arbitrary_types_allowed=True): kittype_obj.get_reagents(proceduretype=self.proceduretype)} except AttributeError: self.reagentrole = {} - + reordered_options = {} + if self.reagentrole: + for k, v in self.reagentrole.items(): + reordered_options[k] = self.reorder_reagents(reagentrole=k, options=v) + self.reagentrole = reordered_options self.kittype['value'] = kittype self.possible_kits.insert(0, self.possible_kits.pop(self.possible_kits.index(kittype))) + def reorder_reagents(self, reagentrole: str, options:list): + reagent_used = next((reagent for reagent in self.reagent if reagent.reagentrole == reagentrole), None) + if not reagent_used: + return options + roi = next((item for item in options if item.lot == reagent_used.lot and item.name == reagent_used.name), None) + if not roi: + return options + options.insert(0, options.pop(options.index(roi))) + return options + + + def update_kittype_equipmentroles(self, kittype: str | KitType): if kittype == self.__class__.model_fields['kittype'].default['value']: return diff --git a/src/submissions/templates/js/procedure_form.js b/src/submissions/templates/js/procedure_form.js index 07ab8bf..55dc1a6 100644 --- a/src/submissions/templates/js/procedure_form.js +++ b/src/submissions/templates/js/procedure_form.js @@ -85,7 +85,6 @@ for(let i = 0; i < reagentRoles.length; i++) { catch(err) { console.log("Missed it."); } - alert(reagentRoles[i].value); backend.update_reagent(reagentRoles[i].id, reagentRoles[i].value);