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.
This commit is contained in:
GotthardG
2025-01-30 13:39:49 +01:00
parent 44582cf38e
commit c2215860bf
20 changed files with 304 additions and 262 deletions

View File

@ -429,7 +429,7 @@ class Sample(BaseModel):
priority: Optional[int] = None
comments: Optional[str] = None
data_collection_parameters: Optional[DataCollectionParameters]
events: List[SampleEventResponse]
events: List[SampleEventResponse] = []
mount_count: Optional[int] = None
unmount_count: Optional[int] = None
# results: Optional[Results] = None
@ -497,6 +497,7 @@ class Puck(BaseModel):
class DewarBase(BaseModel):
pgroups: str
dewar_name: str
dewar_type_id: Optional[int] = None
dewar_serial_number_id: Optional[int] = None
@ -505,10 +506,6 @@ class DewarBase(BaseModel):
number_of_pucks: Optional[int] = None
number_of_samples: Optional[int] = None
status: str
ready_date: Optional[date]
shipping_date: Optional[date]
arrival_date: Optional[date]
returning_date: Optional[date]
contact_id: Optional[int]
return_address_id: Optional[int]
pucks: List[PuckCreate] = []
@ -534,22 +531,20 @@ class Dewar(DewarBase):
class DewarUpdate(BaseModel):
pgroups: str
dewar_name: Optional[str] = None
dewar_type_id: Optional[int] = None
dewar_serial_number_id: Optional[int] = None
unique_id: Optional[str] = None
tracking_number: Optional[str] = None
status: Optional[str] = None
ready_date: Optional[date] = None
shipping_date: Optional[date] = None
arrival_date: Optional[date] = None
returning_date: Optional[date] = None
contact_id: Optional[int] = None
address_id: Optional[int] = None
class DewarSchema(BaseModel):
id: int
pgroups: str
dewar_name: str
tracking_number: str
status: str
@ -559,6 +554,9 @@ class DewarSchema(BaseModel):
class Config:
from_attributes = True
# shipping status etc will become a logistics event.
# Tracking will also become an event
class Proposal(BaseModel):
id: int
@ -681,7 +679,7 @@ class PuckWithTellPosition(BaseModel):
dewar_name: Optional[
str
] # was changed to optional but probably needs to be not optional
user: str = "e16371"
pgroup: str
samples: Optional[List[Sample]] = None
tell_position: Optional[str]