Files
Submissions-App/TODO.md
2025-09-23 08:57:40 -05:00

119 lines
7.3 KiB
Markdown

- [x] Add in database objects for rsl_run (submission -> run), procedure (run -> procedure), many more things will likely be associated with procedure.
- [x] Add in database object for client submission.
- [ ] Add arbitrary pipette addition to equipment UI.
- [ ] transfer details template rendering fully into sql objects
- [x] Add in connecting links for tips.
- [x] Add in connecting links for equipment/processes.
- [ ] move functions from widgets.functions to... app?
- [x] Apply below fix to all other date-based queries.
- [x] Fix Control graph chart bug that excludes today's controls.
- [x] Convert logger to a custom class.
- [x] Change "Manage Organizations" to the Pydantic version.
- [x] Can my "to_dict", "to_sub_dict", "to_pydantic" methods be rewritten as properties?
- [ ] Stop displacing date on Irida controls and just do what Turnaround time does.
- [x] Get Manager window working for KitType, maybe SubmissionType
- [x] Find a way to merge AddEdit with ReagentAdder
- [x] Find a way to merge omni_search and sample_search
- [x] Allow parsing of custom fields to a json 'custom' field in _basicsubmissions
- [x] Upgrade to generators when returning lists.
- [x] Revamp frontend.widgets.controls_chart to include visualizations?
- [x] Convert Parsers to using openpyxl.
- [ ] Create a default info return function.
- [x] Parse comment from excel sheet.
- [x] Make reporting better.
- [x] Build master query method?
- Obviously there will need to be extensions, but I feel the attr method I have in Submissions could work.
- [x] Fix Artic RSLNamer
- [x] Put "Not applicable" reagents in to_dict() method.
- Currently in to_pydantic().
- [x] Critical: Convert Json list to dicts so I can have them update properly without using crashy Sqlalchemy-json
- Was actually not necessary.
- [x] Fix Parsed/Missing mix ups.
- [x] Have sample parser check for controls and add to reagents?
- [x] Update controls to NestedMutableJson
- [x] Appending of qPCR results to WW not saving. Find out why.
- Possibly due to immutable JSON? But... it's worked before... Right?
- Based on research, if a top-level JSON field is not changed, SQLalchemy will not detect changes.
- Using sqlalchemy-json module seems to have helped.
- found that by using 'flag_modified' this can be fixed
- [x] Add Bead basher and Assist to DB.
- [x] Artic not creating right plate name.
- [x] Merge BasicSubmission.find_subclasses and BasicSubmission.find_polymorphic_subclass
- [x] Fix updating of Extraction Kit in submission form widget.
- [x] Fix cropping of gel image.
- [x] Create Tips ... *sigh*.
- [x] Create platemap image from html for export to pdf.
- [x] Move plate map maker to submission.
- [x] Finish Equipment Parser (add in regex to id asset_number)
- [x] Update Artic and add in equipment listings... *sigh*.
- [x] Fix WastewaterAssociations not in Session error.
- Done... I think?
- [x] Fix submitted date always being today.
- this is an issue with the way client is filling in form with =TODAY()
- [x] SubmissionReagentAssociation.query
- [x] Move as much from db.functions to objects as possible.
- [x] Clean up DB objects after failed test fix.
- [x] Fix tests.
- [x] Fix pydant.PydSample.handle_duplicate_samples?
- [x] See if the number of queries in BasicSubmission functions (and others) can be trimmed down.
- [x] Document code
- [x] Create a result object to facilitate returning function results.
- [x] Refactor main_window_functions into as many objects (forms, etc.) as possible to clean it up.
- [x] Integrate 'Construct First Strand' into the Artic import.
- [x] Clear out any unnecessary ctx passes now that queries are improved.
- [x] Make a 'query or create' method in all db objects to go with new query.
- Due to necessity of user input this has only been implemented for BasicSubmission, BasicSample and SubmissionSampleAssociation.
- [x] Ensure Bacterial plates end up with RSL_YY_###_{submitterName}_{submitterPlateID}.xlsx format.
- [x] Move lookup functions into class methods of db objects?
- Not sure if will work for associations.
- [x] Update artic submission type database entry to add more technicians.
- [x] Rewrite tests... again.
- [x] Have InfoItem change status self.missing to True if value changed.
- [x] Make the kit verifier make more sense.
- [x] Slim down the Import and Submit functions in main_window_functions.
- [x] Create custom store methods for submission, reagent and sample.
- [x] Make pydantic models for other things that use constructors.
- [x] Move backend.db.functions.constructor functions into Pydantic models.
- This will allow for better data validation.
- Parser(client input) -> Pydantic(validation) -> Form(user input) -> Pydantic(validation) -> SQL
- [x] Rebuild RSLNamer and fix circular imports
- Should be used when coming in to parser and when leaving form. NO OTHER PLACES.
- [x] Change 'check_is_power_user' to decorator.
- [x] Drag and drop files into submission form area?
- [x] Get info for controls into their sample hitpicks.
- [x] Move submission-type specific parser functions into class methods in their respective models.
- [x] Improve function results reporting.
- Maybe make it a list until it gets to the reporter?
- [x] Increase robustness of form parsers by adding custom procedures for each.
- [x] Rerun Kit integrity if extraction kit changed in the form.
- [x] Clean up db.functions.
- [x] Make kits easier to add.
- [x] Clean up & document code... again.
- Including paring down the logging.debugs
- Also including reducing number of functions in db.functions
- [x] Fix Tests... again.
- [x] Rebuild database
- [x] Provide more generic names for reagenttypes in kits and move specific names to reagents.
- ex. Instead of "omega_e-z_96_disruptor_plate_c_plus" in reagent types, have "omega_plate" and have "omega_e-z_96_disruptor_plate_c_plus" in reagent name.
- Maybe rename to "ReagentRoles"?
- If I'm doing this, since the forms have a different layout for each submission type I should rewrite the parser to use the locations given in database... Which I should do anyway
- [x] Fix Wastewater/Artic double submission problem
- [x] Fix tests.
- [x] Reorganize wastewater artic parser.
- [x] Streamline addition of new kits by moving as much into DB as possible.
- [x] Large scale refactor (2023-07-24).
- [x] Make plate details from html, same as export.
- [x] Put in SN controls I guess.
- [x] Code clean-up and refactor (2023-07).
- [x] Migrate context settings to pydantic-settings model.
- [x] Insert column into reagent type to indicate if reagent is required for kit.
- Needed to keep interchangeable bead plates from being forced into forms.
- [x] Migrate the parser.sub dictionary to pydantic models.
- [x] Move type_decider to metadata based method rather than excel map.
- [x] Solve bug for plate mapping when two samples of same name are in different rows.
- Try importing "L:\Robotics Laboratory Support\Submissions\Wastewater\2023\2023-06-21\RSL-WW-20230621-1.xlsx" for example.
- [x] Improve plate mapping by using layout in submission forms rather than PCR.
- [x] Create a method for creation of hitpicking .csvs because of reasons that may or may not exist.
- [x] Create a method for commenting submissions.
- [x] Create barcode generator, because of reasons that may or may not exist.
- [x] Move bulk of functions from frontend.__init__ to frontend.functions as __init__ is getting bloated.