recordtransfer.caais - Convert submission form to CAAIS models
Converts the submission form to a caais.models.Metadata object.
To set default values, refer to Data Formatting and Defaults.
- recordtransfer.caais.get_setting_key(field_name: str) SiteSettingKey | None
Generate a SiteSettingKey enum member for a field name, if it exists.
- Parameters:
field_name (str) – The name of the field on the model or the form
- Returns:
A SiteSettingKey enum member if it exists, None otherwise
- Return type:
Optional[SiteSettingKey]
- recordtransfer.caais.map_form_to_metadata(form_data: dict) Metadata
Convert cleaned form data to a
caais.models.Metadataobject. Form fields are expected to exactly match field names in CAAIS models.Related CAAIS defaults:
- Parameters:
form_data (dict) – Cleaned form data from form
- Returns:
The metadata created from the form data
- Return type:
(Metadata)
- recordtransfer.caais.add_identifiers(form_data: dict, metadata: Metadata) None
Populate metadata with
caais.models.Identifierobjects.No related CAAIS defaults.
- Parameters:
form_data (dict) – The form data dictionary
metadata (Metadata) – The top-level metadata object to link any new objects to
- recordtransfer.caais.add_source_of_materials(form_data: dict, metadata: Metadata) None
Populate metadata with
SourceOfMaterialobjects.Related CAAIS defaults:
- Parameters:
form_data (dict) – The form data dictionary
metadata (Metadata) – The top-level metadata object to link any new objects to
- recordtransfer.caais.add_rights(form_data: dict, metadata: Metadata) None
Populate metadata with Rights objects.
No related CAAIS defaults.
- Parameters:
form_data (dict) – The form data dictionary
metadata (Metadata) – The top-level metadata object to link any new objects to
- recordtransfer.caais.add_submission_event(metadata: Metadata) None
Populate metadata with a new Submission-type Event object.
Related CAAIS defaults:
CAAIS_DEFAULT_SUBMISSION_EVENT_TYPE (Required)
- Parameters:
metadata (Metadata) – The top-level metadata object to link any new objects to
- recordtransfer.caais.add_date_of_creation(metadata: Metadata) None
Populate metadata with a new Creation-type DateOfCreationOrRevision object.
Related CAAIS defaults:
- Parameters:
metadata (Metadata) – The top-level metadata object to link any new objects to
Add up to one related model to the metadata object by mapping the model’s fields to the form’s fields. For every field on the model that is not named “metadata” or “id,” a field with the same name is searched in the form. If that field exists in both the form and the model, then the data from the form is passed to the model when it is created.
If the model has relational fields that are not to a metadata object or to an
AbstractTerm, then aValueErroris thrown.- Parameters:
form_data (dict) – The cleaned form data dictionary
metadata (Metadata) – The top-level metadata object to link any new objects to
CaaisModel (Model) – A model from caais.models
- recordtransfer.caais.str_or_default(form_data: dict, field_name: str, default: str = '') str
Return form data if it exists, or the setting from
SiteSettingif it exists, or the default value, in that order of priority.- Parameters:
form_data (dict) – The cleaned data from the submission form
field_name (str) – The name of the field in the form data
default (str) – The default value to return if the data does not exist in the form or is empty, and if the setting also does not exist or is empty.
- Returns:
The data from the form, or the value from the setting, or the default value, in order of priority.
- Return type:
str
- recordtransfer.caais.term_or_default(form_data: dict, field_name: str, TermClass: Type[AbstractTerm], default: AbstractTerm | None = None) AbstractTerm | None
If the name of a term can be found in the form data or in the
SiteSettingmodel, return an instance of the term for the given TermClass with that name. If the term did not exist, it is created.If no name can be found in the form data or in
SiteSetting, the default value is returned.- Parameters:
form_data (dict) – The cleaned data from the submission form
field_name (str) – The name of the key in the form data
TermClass (Type[AbstractTerm]) – The type of term to return if the name exists in the form or in the settings
default (Optional[AbstractTerm]) – A term (or None) to return if there is no form data or there is no default set in
SiteSetting
- Returns:
A term instance, if the name of the term could be found, or the default if not
- Return type:
(Optional[AbstractTerm])
- recordtransfer.caais.coalesce_other_term_field(form_data: dict, field_name: str, TermClass: Type[AbstractTerm], notes: list | None = None) AbstractTerm | None
Attempt to coalesce an other_<TERM FIELD> field into a term, if a term does not already exist.
There are two cases:
term is the Other Term, and other_term is filled
term is not the Other Term