Instantiate a data file choosing among all inheriting sections
Given the following example archive files, I would like to be able to manually create new entries from the ELN not simply belonging to the "Material" superclass, as stated in the type of ReferenceEditQuantity, but to one of the possible children classes, i.e., Sample, Substance, or EntityAndAmount.
If I navigate in the definitions of material I can already see listed the All_inheriting_sections; would it be possible to have a choice among these subclasses when hitting the "create" button implemented by @mnakh ?
The example files are showed with base classes written in the same entry, it would be good to have this feature also if the base classes are in different files, as showed in #1106 (closed)
- test-schema.archive.yaml
definitions:
name: 'test'
sections: # Schemes consist of section definitions
Entity:
m_annotations:
eln:
dict()
base_sections:
- nomad.datamodel.data.EntryData
sub_sections:
history:
section:
m_annotations:
eln:
quantities:
activities:
type: Activity
shape: ['*']
m_annotations:
eln:
component: ReferenceEditQuantity
Material:
base_section: '#/Entity'
quantities:
my_quantity:
type: str
m_annotations:
eln:
component: StringEditQuantity
Sample:
base_section: '#/Material'
quantities:
components:
type: '#/Material'
shape: ['*']
m_annotations:
eln:
component: ReferenceEditQuantity
Substance:
base_section: '#/Material'
more:
label_quantity: iupac_name
quantities:
comment:
type: str
m_annotations:
eln:
component: StringEditQuantity
EntityAndAmount:
base_section: '#/Material'
quantities:
component:
type: Material
description: |
Note: this is not a list,
it is a sigle Material entity connected to a specified amount during an activity
m_annotations:
eln:
component: ReferenceEditQuantity
amount:
type: np.float64
unit: mmol
description: |
Amount of substance of precursor powder weighted out
m_annotations:
eln:
component: NumberEditQuantity
defaultDisplayUnit: mmol
data:
m_def: Sample
components:
- ../upload/raw/Substance1.data.archive.yaml#data
- Substance1.data.archive.yaml
data:
m_def: ../upload/raw/test-schema.archive.yaml#Substance
comment: my test substance