recordtransfer.caais - Convert to CAAIS Metadata
Converts the submission form to a caais.models.Metadata object.
To set default values, refer to Data Formatting and Defaults.
- recordtransfer.caais.get_setting_name(field_name)
Generates a setting name in the
django.conf.settingsobject that may contain a default value for some field.- Parameters:
field_name (str) – The name of the field on the model or the form
- Returns:
A setting name for the default value, in the form CAAIS_DEFAULT_FIELD_NAME
- Return type:
(str)
- 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
SourceOfMaterialobjectsRelated 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)
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)
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)
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.Default values can be set by creating settings in the module set by DJANGO_SETTINGS_MODULE named CAAIS_DEFAULT_FIELD_NAME, where FIELD_NAME is the uppercase-d field name of the model and the form field.
- 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 = '')
Return form data if it exists, or the setting in the
django.conf.settingsobject if it exists, or the default value, in that order of priority.- Parameters:
form_data (dict) – The cleaned data from the transfer 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 returned.
- 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
django.conf.settingsobject, 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
django.conf.settings, the default value is returned.- Parameters:
form_data (dict) – The cleaned data from the transfer 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
django.conf.settings
- 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