aboutsummaryrefslogtreecommitdiff
path: root/qc_app
AgeCommit message (Collapse)Author
2024-04-10Gracefully handle all `werkzeug.exceptions` errors.Frederick Muriuki Muriithi
2024-04-10Use application logger, not root logger.Frederick Muriuki Muriithi
2024-04-08Add logging for IntegrityErrorFrederick Muriuki Muriithi
2024-04-08Refactor: Make error-checking more robustFrederick Muriuki Muriithi
Rather than maintaining a dictionary of possible error-checking functions, this commit allows passing in the error-checking functions necessary for each point. This makes the code easier to extend by simply defining a new error-checking function and passing it in to the error-checking "driver".
2024-04-08Fix issues caught by integration tests.Frederick Muriuki Muriithi
2024-04-08Fix pylint and mypy errors.Frederick Muriuki Muriithi
2024-04-08bug: UI: Provide better error messaging.Frederick Muriuki Muriithi
2024-04-08bug: Handle IntegrityError: Studies cannot have same name.Frederick Muriuki Muriithi
2024-04-08bug: Check that Genotype dataset name is not duplicated.Frederick Muriuki Muriithi
2024-04-05Handle exceptions creating ProbeSet datasets.Frederick Muriuki Muriithi
2024-04-05Add explicit route for favicon to reduce noise in the logs.Frederick Muriuki Muriithi
2024-03-29Add UI to select/create tissue.Frederick Muriuki Muriithi
2024-03-20Use `url_for` to get icon.Frederick Muriuki Muriithi
2024-03-19Set up application logging.Frederick Muriuki Muriithi
2024-03-19Add debugging statements to track upload of R/qtl2 bundle.Frederick Muriuki Muriithi
2024-03-19Query by `Id` rather than `ProbeFreezeId`Frederick Muriuki Muriithi
Previously `ProbeFreezeId` was set as 1 more than the largest `Id` value found, which might not end up being the same as the incremented Id. This commit, thus, queries by `Id` which is more robust, and does an actual update for the `ProbeFreezeId` column to make it same value as `Id`.
2024-03-15Move defaults settings into qc_app module.Frederick Muriuki Muriithi
2024-03-12Build up correct path to default settingsFrederick Muriuki Muriithi
The assumption has been that the application will be started in the root of the repository, and uses that to source the default settings. It is, however, possible that the application is started in a totally different working directory, which leads to an error during startup. This commit sources the default settings relative to a know file, in this case the module __init__.py file for qc_app module.
2024-03-04Use `Id` rather than `ProbeFreezeId`.Frederick Muriuki Muriithi
2024-03-04Display flash messages correctly.Frederick Muriuki Muriithi
2024-02-28Remove last vestiges of flask's "instance path" configurations.Frederick Muriuki Muriithi
2024-02-27Remove use of instance path in configurations.Frederick Muriuki Muriithi
2024-02-15Refactor checking for user input errors.Frederick Muriuki Muriithi
2024-02-15Verify that the file actually existFrederick Muriuki Muriithi
In case a filename is provided, verify that the file actually exists in the upload directory.
2024-02-15Provide only the file name, not full path.Frederick Muriuki Muriithi
There are 2 reasons to provide only the filename and not the full path: * Security: We do not want to inadvertently expose the paths to the outside world, or allow users to enter file system paths for this system. * The code does not assume a complete path, rather, it builds the path to the upload directory using the filename received from the user.
2024-02-15Provide the log messages to the status page.Frederick Muriuki Muriithi
2024-02-14Provide endpoint to send data to.Frederick Muriuki Muriithi
2024-02-14Extract upload progress indication codeFrederick Muriuki Muriithi
* Extract the UI elements and code for indicating upload progress into separate, reusable "modules". * Fix bugs arising from changes.
2024-02-13Provide nice UI progress indicators.Frederick Muriuki Muriithi
2024-02-12Check for errors in the 'phenose' file.Frederick Muriuki Muriithi
2024-02-12Check for errors in the 'pheno' file.Frederick Muriuki Muriithi
2024-02-12Improve error display for generic errorsFrederick Muriuki Muriithi
2024-02-12Collect and display errors on 'geno' files in the bundle.Frederick Muriuki Muriithi
2024-02-12UI: Provide QC successful results pageFrederick Muriuki Muriithi
2024-02-12Retrive and display generic bundle errorsFrederick Muriuki Muriithi
Implement the first QC check for generic errors e.g. missing files in bundle, etc. Display retrieved errors on UI.
2024-02-12Raise error if file is missing rather than returning a Union value.Frederick Muriuki Muriithi
2024-02-12R/qtl2 QC: Set up scaffolding for QC UIFrederick Muriuki Muriithi
Set up the scaffolding for the flows and UI that will be used when running QC against the uploaded R/qtl2 bundle. This will be fleshed out later, and the UI is likely to change somewhat, down the line.
2024-02-07ShortName is optional, remove check and set defaultFrederick Muriuki Muriithi
The ShortName is optional, and can be set to the same value as Name. This commit removes the check that made it mandatory.
2024-02-07Prevent infinite redirect.Frederick Muriuki Muriithi
2024-02-07Fix error display: setup correct error classFrederick Muriuki Muriithi
2024-02-07Set up limits for inputs in UIFrederick Muriuki Muriithi
2024-02-06Bug: Fix routing issuesFrederick Muriuki Muriithi
Fix the routing issues that were redirecting the flow to the wrong endpoints.
2024-02-05Run QC on the 'geno' file in R/qtl2 bundle.Frederick Muriuki Muriithi
2024-02-05Fix linting and type errors.Frederick Muriuki Muriithi
2024-02-05Do general bundle validation and show errorsFrederick Muriuki Muriithi
* Display any and all errors on the UI * Move `validate_bundle` to QC module and refactor to use `missing_files`
2024-02-05Update UI documentationFrederick Muriuki Muriithi
Improve the UI documentation by making it more explicit what each section deals with to help aleviate confusion of what the different features do.
2024-02-02Bug: Specify DictCursor class to return dict-like resultFrederick Muriuki Muriithi
Without specifying the `cursorclass`, the result is a tuple of the form: ((query_col01_val, query_col02_val, ...), ...) where the ellipsis specify the possibility of more than one of the previous form. We specify the DictCursor class instead so that the form changes to: ({query_col01_name: query_col01_val, ...}, ...) which allows us to pick the value we want with a string index.
2024-01-24Checks: Update code and tests to ensure all checks pass.Frederick Muriuki Muriithi
2024-01-24redis-prefix: update "upload samples" pathFrederick Muriuki Muriithi
2024-01-24redis-prefix: Update "insert data" path.Frederick Muriuki Muriithi