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.
This commit is contained in:
@ -91,6 +91,12 @@ class DataCollectionParameters(BaseModel):
|
||||
chiphiangles: Optional[float] = None # Optional float field between 0 and 30
|
||||
dose: Optional[float] = None # Optional float field
|
||||
|
||||
def to_dict(self):
|
||||
"""Convert the model instance to a dictionary."""
|
||||
return self.dict(
|
||||
exclude_unset=True
|
||||
) # Use this built-in method for serialization
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
@ -416,6 +422,7 @@ class Sample(BaseModel):
|
||||
positioninpuck: Optional[int] = Field(None)
|
||||
priority: Optional[int] = None
|
||||
comments: Optional[str] = None
|
||||
data_collection_parameters: Optional[DataCollectionParameters]
|
||||
events: List[SampleEventCreate] = []
|
||||
|
||||
|
||||
@ -423,7 +430,7 @@ class SampleCreate(BaseModel):
|
||||
sample_name: str = Field(..., alias="crystalname")
|
||||
proteinname: Optional[str] = None
|
||||
position: int = Field(..., alias="positioninpuck")
|
||||
data_collection_parameters: Optional[DataCollectionParameters] = None
|
||||
data_collection_parameters: Optional[DataCollectionParameters] = Field(default=None)
|
||||
priority: Optional[int] = None
|
||||
comments: Optional[str] = None
|
||||
results: Optional[Results] = None
|
||||
|
Reference in New Issue
Block a user