now creating dewars, pucks and samples from spreadsheet and replacing dewars if a dewar with the same name exists

This commit is contained in:
GotthardG
2024-11-12 17:03:38 +01:00
parent 86883133a7
commit 8f7c90bab0
5 changed files with 327 additions and 134 deletions

View File

@@ -101,7 +101,8 @@ class Sample(BaseModel):
class SampleCreate(BaseModel):
sample_name: str = Field(..., alias="crystalname")
position: int = Field(..., alias="positioninpuck")
data_collection_parameters: DataCollectionParameters
data_collection_parameters: Optional[DataCollectionParameters] = None
results: Optional[Results] = None
class Config:
populate_by_name = True
@@ -115,8 +116,11 @@ class PuckBase(BaseModel):
puck_location_in_dewar: int
class PuckCreate(PuckBase):
pass
class PuckCreate(BaseModel):
puck_name: str
puck_type: str
puck_location_in_dewar: int
samples: List[SampleCreate] = []
class PuckUpdate(BaseModel):
@@ -152,6 +156,7 @@ class DewarBase(BaseModel):
qrcode: str
contact_person_id: Optional[int]
return_address_id: Optional[int]
pucks: List[PuckCreate] = []
class DewarCreate(DewarBase):
@@ -181,6 +186,17 @@ class DewarUpdate(BaseModel):
contact_person_id: Optional[int] = None
address_id: Optional[int] = None
class DewarSchema(BaseModel):
id: int
dewar_name: str
tracking_number: str
status: str
contact_person_id: int
return_address_id: int
class Config:
from_attributes = True
# Proposal schemas
class Proposal(BaseModel):