Source code for fairdm.core.sample.config
"""Base registry configuration for sample types.
Do not register the base ``Sample`` model, only its polymorphic subclasses.
"""
from fairdm.registry.config import ModelConfiguration
[docs]
class BaseSampleConfiguration(ModelConfiguration):
"""Base registry configuration for sample types, declaring only the shared ``fields`` list.
``fields`` is what every component (form, table, filter set, serializer, resource, admin)
falls back to when a subclass names no list of its own. The per-component lists
(``form_fields`` and the rest) are deliberately not declared, because each would win over a
subclass's own ``fields`` for that component. A subclass sets ``model`` and, to change every
component at once, ``fields``. Do not register the base ``Sample`` model.
Attributes:
fields: The default fields for every component that names no list of its own.
Example:
```python
from fairdm.core.sample.config import BaseSampleConfiguration
from fairdm.registry import registry
class RockSampleConfiguration(BaseSampleConfiguration):
model = RockSample
fields = ["name", "dataset", "rock_type", "mineral_content"]
registry.register(RockSampleConfiguration)
```
"""
fields = [
"name",
"dataset",
"local_id",
"status",
"location",
"image",
]