118 Commits

Author SHA1 Message Date
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
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
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
GotthardG
9bfcc30981 Refactor dewar and sample handling; improve grid data binding
Updated Dewar and Sample schemas, added nested relationships, and adjusted API responses for better data handling. Simplified puck normalization, enhanced data grid logic in the frontend, and implemented a PUT endpoint for updating samples. Incremented backend version to 0.1.0a15 and added new HTTP request example.
2025-01-09 13:01:52 +01:00
GotthardG
a9cb7a41b0 Refactor set_tell_positions logic with updated rules.
Revised the set_tell_positions endpoint to handle updated business rules for puck positioning. Improved event handling to ensure proper nullification, updates, and removal of tell_positions based on the provided payload. Enhanced query performance and normalized puck name processing for consistency.
2025-01-09 09:44:59 +01:00
GotthardG
0fdd5e54b7 Refactor set_tell_positions logic with updated rules.
Revised the set_tell_positions endpoint to handle updated business rules for puck positioning. Improved event handling to ensure proper nullification, updates, and removal of tell_positions based on the provided payload. Enhanced query performance and normalized puck name processing for consistency.
2025-01-08 17:01:42 +01:00
GotthardG
fb5e930096 Refactor set_tell_positions logic with updated rules.
Revised the set_tell_positions endpoint to handle updated business rules for puck positioning. Improved event handling to ensure proper nullification, updates, and removal of tell_positions based on the provided payload. Enhanced query performance and normalized puck name processing for consistency.
2025-01-08 16:59:46 +01:00
GotthardG
6c91bc78da Refactor set_tell_positions logic with updated rules.
Revised the set_tell_positions endpoint to handle updated business rules for puck positioning. Improved event handling to ensure proper nullification, updates, and removal of tell_positions based on the provided payload. Enhanced query performance and normalized puck name processing for consistency.
2025-01-08 15:18:08 +01:00
GotthardG
4f73f41717 Refactor and extend puck handling with tell_position updates
Refactored puck updating logic to use Pydantic models for validation and normalization. Added a new endpoint to retrieve all pucks with a tell_position and their associated samples. Updated project version to 0.1.0a11 in pyproject.toml.
2025-01-08 14:11:34 +01:00
GotthardG
6d67d02259 Expand sample data handling and grid display.
Integrated additional sample parameters into backend and frontend for enhanced data collection. Updated pyproject version to reflect these changes. This improves user interface flexibility and enriches displayed sample metadata.
2025-01-08 09:52:15 +01:00
GotthardG
9b4f8599f3 Add support for data collection parameters across layers
Introduced serialization for `data_collection_parameters` in backend models and processing. Added logic to parse and attach data collection parameters in the frontend. This ensures consistent handling and storage of these parameters throughout the application.
2025-01-08 09:19:23 +01:00
GotthardG
35369fd13c Add column type mapping and enhance validation
Introduced a backend mapping for column expected types, improving validation and error handling. Updated UI to highlight default and corrected values, with additional detailed validation for data collection parameters.
2025-01-07 16:07:13 +01:00
GotthardG
92306fcfa6 Add column type mapping and enhance validation
Introduced a backend mapping for column expected types, improving validation and error handling. Updated UI to highlight default and corrected values, with additional detailed validation for data collection parameters.
2025-01-07 15:45:08 +01:00
GotthardG
54975b5919 Add spreadsheet enhancements and default handling
Implemented a toggleable spreadsheet UI component for sample data, added fields such as priority and comments, and improved backend validation. Default values for "directory" are now assigned when missing, with feedback highlighted in green on the front end.
2025-01-06 14:40:02 +01:00
GotthardG
27d2717a05 Refactor slot UI and backend refill logic.
Updated slot styling for improved user feedback and responsiveness. Simplified LN2 representation with a new level bar and adjusted refill logic to a 48-hour interval. Removed unused functions for cleaner backend code.
2024-12-20 13:20:45 +01:00
GotthardG
da5dbb9e31 Refactor puck handling and update tell position setting
Simplify and standardize puck name normalization and validation. Refactor `set_tell_positions` to handle batch operations, improve error handling, and provide detailed responses for each puck. Removed unnecessary `with-tell-position` endpoint for better clarity and maintainability.
2024-12-19 15:16:21 +01:00
GotthardG
14eaca81c6 Update tell position logic and add new endpoint
Refactored tell position logic to use `segment` and `puck_in_segment` fields, replacing the previous single `tell_position` field. Introduced a new `/set-tell-positions` endpoint for setting tell positions based on these changes and removed the deprecated endpoint handling the old logic. Enhanced validation and streamlined handling of related logistics and puck events.
2024-12-19 13:21:37 +01:00
GotthardG
ef981d1e45 Refactor OpenAPI fetcher for improved clarity and robustness
Reorganized and enhanced the OpenAPI fetch logic for better maintainability and error handling. Key updates include improved environment variable validation, more detailed error messages, streamlined configuration loading, and additional safety checks for file paths and directories. Added proper logging and ensured the process flow is easy to trace.
2024-12-18 14:22:37 +01:00
GotthardG
9b6ad107bb Refactor OpenAPI fetcher for improved clarity and robustness
Reorganized and enhanced the OpenAPI fetch logic for better maintainability and error handling. Key updates include improved environment variable validation, more detailed error messages, streamlined configuration loading, and additional safety checks for file paths and directories. Added proper logging and ensured the process flow is easy to trace.
2024-12-17 16:25:53 +01:00