177 Commits

Author SHA1 Message Date
GotthardG
fbc32474ff Refine event types and update related models and logic
Standardized event types with stricter validation using `Literal`. Adjusted related data and logic to align with new types, including changes to PGROUP assignments, event timeline increments, and schema updates. Cleaned up unused code and clarified database initialization behavior.
2025-03-14 13:11:05 +01:00
GotthardG
f41262575e Refactor logistics and frontend code for better consistency.
Refactored several files to improve code clarity, error handling, and data integrity. Introduced type safety improvements, streamlined OpenAPI model integration, adjusted configuration settings, and enhanced QR code handling logic. Also updated scripts and tsconfig settings to temporarily bypass strict checks during development.
2025-03-06 13:26:26 +01:00
GotthardG
3d55c42312 Refactor logistics and frontend code for better consistency.
Refactored several files to improve code clarity, error handling, and data integrity. Introduced type safety improvements, streamlined OpenAPI model integration, adjusted configuration settings, and enhanced QR code handling logic. Also updated scripts and tsconfig settings to temporarily bypass strict checks during development.
2025-03-06 13:24:12 +01:00
GotthardG
2e1d87c31b Update dependencies and migrate to Node 18 minimum support
Upgraded multiple package versions, including `@esbuild` and dependencies like `@mui/x-data-grid-premium`. Adjusted `node` engine requirement to `>=18` for compatibility. This ensures modernization and alignment with current toolchain standards.
2025-03-04 10:42:24 +01:00
GotthardG
da79115ba4 Refactor image rendering in ResultGrid with CSS enhancements
Simplified image rendering logic in `ResultGrid` by removing hover state management within JavaScript. Added `SampleImage.css` to handle hover effects for images and tooltips with scalable zoom. Cleaned up unnecessary comments and improved code readability.
2025-02-27 15:24:28 +01:00
GotthardG
548a86678b Update SampleTracker to support dynamic activePgroup
Enhanced the `SampleTracker` component to accept and utilize an `activePgroup` prop, allowing dynamic filtering of data based on the current project group. Adjusted related polling and data fetching logic to respond to changes in `activePgroup`. Removed excessive code from the test notebook for cleanup.
2025-02-27 11:20:04 +01:00
GotthardG
2f5cb3032a Add development-only user simulation using local file
This change introduces a fallback mechanism for development environments, allowing authentication to simulate a user from a local file named "user" when not found in the mock database. The file must include a username on the first line and a space-delimited list of pgroups on the second line. This enhancement helps streamline development workflows while maintaining error handling for missing or malformed files.
2025-02-27 10:45:16 +01:00
GotthardG
7a9cc24e05 Add development-only user simulation using local file
This change introduces a fallback mechanism for development environments, allowing authentication to simulate a user from a local file named "user" when not found in the mock database. The file must include a username on the first line and a space-delimited list of pgroups on the second line. This enhancement helps streamline development workflows while maintaining error handling for missing or malformed files.
2025-02-27 10:39:45 +01:00
GotthardG
b04c7b8c95 Add Image models and clean up test code structure
Introduced `ImageCreate` and `Image` models to handle image-related data in the backend. Improved the organization and readability of the testing notebook by consolidating and formatting code into distinct sections with markdown cells.
2025-02-26 15:11:20 +01:00
GotthardG
1606e80f81 Add Image models and clean up test code structure
Introduced `ImageCreate` and `Image` models to handle image-related data in the backend. Improved the organization and readability of the testing notebook by consolidating and formatting code into distinct sections with markdown cells.
2025-02-26 13:33:23 +01:00
GotthardG
f588bc0cda Add endpoint for creating local contacts with access control
Introduced a new `local_contact_router` to handle creation of local contacts. The endpoint enforces role-based access control and ensures no duplication of email addresses. Updated the router exports for consistency and cleaned up a large test file to improve readability.
2025-02-26 09:58:19 +01:00
GotthardG
43d67b1044 Enhance Dewar handling and display in logistics system
Added new fields and enriched data representations in DewarStatusTab, backend schemas, and APIs to improve dewar tracking and management. Introduced new API endpoint `/dewar/table` for simplified data rendering. Applied logging and validations for missing relationships.
2025-02-05 21:43:17 +01:00
GotthardG
25673ae05c added tabs to logistics frontend 2025-02-05 11:55:46 +01:00
GotthardG
9e5ae2b43c Refactor puck event handling and add tell filtering
Updated puck event queries to improve robustness and ensure distinct results. Introduced filtering by `tell` in specific API endpoints and added validation for `tell` values. Incremented project version to 0.1.0a21 to reflect API changes.
2025-02-04 17:07:25 +01:00
GotthardG
780ba1959f Add SetTellPositionRequest schema and minor cleanup.
Added a new `SetTellPositionRequest` schema in `schemas.py` to support bulk updates of TELL positions. Commented out redundant metadata operations in `main.py` and cleaned up unused content in the test notebook for better readability.
2025-02-04 14:43:59 +01:00
GotthardG
70962ba67a Refactor dewar query to use latest event subquery.
Replaces the previous query logic with a subquery to find the latest logistics event for each dewar. Ensures that only dewars with the most recent "beamline" event are retrieved, improving query accuracy and clarity.
2025-02-03 11:46:27 +01:00
GotthardG
aa70935e11 Clean up testfunctions.ipynb by removing redundant code
Removed outdated and unused code snippets from testfunctions.ipynb to streamline the notebook. This improves readability and reduces clutter, ensuring the file contains only relevant and functional code samples.
2025-01-31 22:03:46 +01:00
GotthardG
590f36cd54 Clean up testfunctions.ipynb by removing redundant code
Removed outdated and unused code snippets from testfunctions.ipynb to streamline the notebook. This improves readability and reduces clutter, ensuring the file contains only relevant and functional code samples.
2025-01-31 21:59:52 +01:00
GotthardG
08667f792a Clean up testfunctions.ipynb by removing redundant code
Removed outdated and unused code snippets from testfunctions.ipynb to streamline the notebook. This improves readability and reduces clutter, ensuring the file contains only relevant and functional code samples.
2025-01-31 21:54:01 +01:00
GotthardG
e852ac3185 Clean up testfunctions.ipynb by removing redundant code
Removed outdated and unused code snippets from testfunctions.ipynb to streamline the notebook. This improves readability and reduces clutter, ensuring the file contains only relevant and functional code samples.
2025-01-31 21:52:48 +01:00
GotthardG
17a8933597 Clean up testfunctions.ipynb by removing redundant code
Removed outdated and unused code snippets from testfunctions.ipynb to streamline the notebook. This improves readability and reduces clutter, ensuring the file contains only relevant and functional code samples.
2025-01-31 21:50:10 +01:00
GotthardG
546c570287 Clean up testfunctions.ipynb by removing redundant code
Removed outdated and unused code snippets from testfunctions.ipynb to streamline the notebook. This improves readability and reduces clutter, ensuring the file contains only relevant and functional code samples.
2025-01-31 20:32:12 +01:00
GotthardG
b63f696543 Fix timestamp method and loop variable order issues
Updated `datetime.utcnow()` to `datetime.now()` to align with local timezone handling. Corrected the order of unpacked variables in the loop to match the structure of `pucks_with_latest_events`.
2025-01-31 14:57:06 +01:00
GotthardG
7ce8c50179 Fix timestamp method and loop variable order issues
Updated `datetime.utcnow()` to `datetime.now()` to align with local timezone handling. Corrected the order of unpacked variables in the loop to match the structure of `pucks_with_latest_events`.
2025-01-31 12:58:15 +01:00
GotthardG
3757950b51 Refactor Dewar service methods and improve field handling
Updated Dewar API methods to use protected endpoints for enhanced security and consistency. Added `pgroups` handling in various frontend components and modified the LogisticsView contact field for clarity. Simplified backend router imports for better readability.
2025-01-30 15:25:04 +01:00
GotthardG
ee97bdfb5d Refactor Dewar service methods and improve field handling
Updated Dewar API methods to use protected endpoints for enhanced security and consistency. Added `pgroups` handling in various frontend components and modified the LogisticsView contact field for clarity. Simplified backend router imports for better readability.
2025-01-30 13:44:44 +01:00
GotthardG
5edaa01e8e Refactor Dewar service methods and improve field handling
Updated Dewar API methods to use protected endpoints for enhanced security and consistency. Added `pgroups` handling in various frontend components and modified the LogisticsView contact field for clarity. Simplified backend router imports for better readability.
2025-01-30 13:43:37 +01:00
GotthardG
c2215860bf Refactor Dewar service methods and improve field handling
Updated Dewar API methods to use protected endpoints for enhanced security and consistency. Added `pgroups` handling in various frontend components and modified the LogisticsView contact field for clarity. Simplified backend router imports for better readability.
2025-01-30 13:39:49 +01:00
GotthardG
44582cf38e Add pgroup handling in dewars and enhance ShipmentDetails UI
Introduced a new `pgroups` attribute for dewars in the backend with schema and model updates. Modified the frontend to display `pgroups` as chips, integrate new visual icons for pucks and crystals, and enhance the UI/UX in `ShipmentDetails` and `DewarStepper` components. Added reusable SVG components for better modularity and design consistency.
2025-01-23 13:57:25 +01:00
GotthardG
173e192fc4 Integrate pgroups for shipment data security
Added `pgroups` to secure and associate data with specific permission groups. Updated backend routers, database models, and API endpoints to handle authorization based on `pgroups`. Adjusted frontend components and hooks to support `pgroups` in data fetching and management workflows.
2025-01-22 22:53:37 +01:00
GotthardG
382b1eaba8 Refactor contact handling across backend and frontend
Replaced usage of "ContactPerson" with "Contact" for consistency across the codebase. Updated related component props, state variables, API calls, and database queries to align with the new model. Also enhanced backend functionality with stricter validations and added support for handling active pgroups in contact management.
2025-01-22 16:31:08 +01:00
GotthardG
6cde57f783 **Commit Message:**
Enhance app with active pgroup handling and token updates

Added active pgroup state management across the app for user-specific settings. Improved token handling with decoding, saving user data, and setting OpenAPI authorization. Updated components, API calls, and forms to support dynamic pgroup selection and user-specific features.
2025-01-22 13:55:26 +01:00
GotthardG
4630bcfac5 Add mount_count and unmount_count tracking for samples
Introduced `mount_count` and `unmount_count` fields to track mounting events for samples. Updated models, schemas, and front-end components to support dynamic calculation and display of these counts. Enhanced backend queries and API responses to include the new data.
2025-01-20 13:04:20 +01:00
GotthardG
3b315f2997 Add mount_count and unmount_count tracking for samples
Introduced `mount_count` and `unmount_count` fields to track mounting events for samples. Updated models, schemas, and front-end components to support dynamic calculation and display of these counts. Enhanced backend queries and API responses to include the new data.
2025-01-20 11:02:56 +01:00
GotthardG
3d804c1635 Update logistics data display and dewar event handling
Renamed "Retrieved Timestamp" to "Last Event" for clarity in the UI. Improved backend logic to handle dewar events, including associating refill events with specific slots and retrieving the last slot ID for new events.
2025-01-17 15:59:49 +01:00
GotthardG
6825421f20 Update package-lock.json with latest dependency versions
Upgraded multiple dependencies across Babel, Emotion, ESLint, and DevExpress packages in `package-lock.json` to their latest versions. These updates ensure compatibility, fix minor issues, and improve overall performance and security.
2025-01-17 15:35:29 +01:00
GotthardG
9739b8cfe9 Make shipment fields optional and refactor test scripts.
Updated the `number_of_pucks` and `number_of_samples` fields in the `schemas.py` to be optional for greater flexibility. Simplified the test Jupyter Notebook by restructuring imports and consolidating function calls for better readability and maintainability.
2025-01-17 09:36:16 +01:00
GotthardG
481068603b Enhance deletion processes with event-check validations.
Added validation to prevent deletion of shipments, dewars, pucks, or samples if they have associated events. Updated frontend components to handle and display error messages based on API responses for improved user feedback.
2025-01-15 15:30:54 +01:00
GotthardG
e63af3e66d ```
Add duplicate detection for spreadsheet data processing

Implemented logic to detect and handle duplicate 'positioninpuck' entries within the same puck during spreadsheet processing. Updated backend to validate duplicates and provide detailed error messages. Enhanced frontend to visually highlight duplicate errors and allow better user feedback during cell editing.
```
2025-01-15 14:23:51 +01:00
GotthardG
7861082a02 Set default values for empty "priority" column in spreadsheets.
Added logic to assign a default value of 1 to empty "priority" fields in the spreadsheet service. Adjusted the router to correctly track columns explicitly marked as defaulted.
2025-01-14 22:18:14 +01:00
GotthardG
c0951292d0 Refactor spreadsheet handling to track corrections and defaults
Improved the backend's value cleaning to differentiate between corrections and defaults, logging metadata for clearer traceability. Updated frontend to display corrected/defaulted fields with visual cues and tooltips for better user feedback. Enhanced data models and response structures to support this richer metadata.
2025-01-14 21:46:11 +01:00
GotthardG
f6c19cc4da Refactor spreadsheet processing to improve validation logic
Enhanced value cleaning and validation for spreadsheet data with dynamic handling of columns and corrections. Improved feedback for users with detailed error messages and visual indicators for corrected or defaulted values. Simplified backend and frontend logic for better maintainability and usability.
2025-01-13 21:55:15 +01:00
GotthardG
19ef20e6b0 Fix type and handle missing dewar_id in sample router.
Updated puck_id type from str to int for better type consistency. Added a fallback value of -1 for pucks with missing dewar_id to prevent potential errors when querying pucks.
2025-01-10 13:39:10 +01:00
GotthardG
fa99e3fa63 Refactor response construction in sample endpoint.
Replaced direct return of `last_event` with an explicit construction of `SampleEventResponse`. This ensures clarity and better adherence to the response schema.
2025-01-10 12:02:49 +01:00
GotthardG
f233058070 Add image upload endpoint and fix puck location handling
Introduced `/samples/{sample_id}/upload-images` API for uploading images tied to samples, validating file types, and saving them in structured directories. Fixed `puck_location_in_dewar` type handling in puck routes. Updated project version in `pyproject.toml`.
2025-01-10 11:31:51 +01:00
GotthardG
d6910411f1 Add default values to optional fields in SampleUpdate 2025-01-10 10:44:03 +01:00
GotthardG
1e766fa620 Add default values to optional fields in SampleUpdate 2025-01-10 10:00:14 +01:00
GotthardG
0f6759e417 Add default values to optional fields in SampleUpdate 2025-01-09 22:51:26 +01:00
GotthardG
ac38bc3bb6 Refactor puck handling for responses
Revised and optimized the `get_pucks_with_tell_position` endpoint to streamline logic and enhance clarity.
2025-01-09 20:36:03 +01:00
GotthardG
c45a46b07b Add example scripts and enhance puck event queries
Introduced a new Jupyter Notebook with API usage examples for managing pucks and samples. Refactored puck retrieval logic to include the latest event type and `tell_position`, improving data accuracy. Updated backend version to 0.1.0a16 accordingly.
2025-01-09 16:56:38 +01:00