caais.models - Models Defining the CAAIS Standard

Models describing the Canadian Archival Accession Information Standard v1.0.

https://archivescanada.ca/wp-content/uploads/2022/12/CAAIS_2019May15_EN.pdf

Note that there are seven sections of CAAIS that organize the fields by related information. These sections are:

  1. Identity Information Section

  2. Source Information Section

  3. Materials Information Section

  4. Management Information Section

  5. Event Information Section

  6. General Information Section

  7. Control Information Section

The models here are not in the exact order as in the CAAIS document, but each field in the standard is defined in a model.

class caais.models.AbstractTerm(*args, **kwargs)

An abstract class that can be used to define any term that consists of a name and a description.

name

The name of the term. Terms must have unique names

Type:

CharField

description

A description for the term

Type:

TextField

class caais.models.AcquisitionMethod(*args, **kwargs)

Acquisition Method [CAAIS, Section 1.5]

Definition: The process by which a repository acquires material.

Inherits AbstractTerm

name

The name of the acquisition method

Type:

CharField

description

A description of the acquisition method

Type:

TextField

exception DoesNotExist
exception MultipleObjectsReturned
class caais.models.Status(*args, **kwargs)

Status [CAAIS, Section 1.7]

Definition: The current position of the material with respect to the repository’s workflows and business processes.

Inherits AbstractTerm

name

The name of the status

Type:

CharField

description

A description for the status term

Type:

TextField

exception DoesNotExist
exception MultipleObjectsReturned
class caais.models.Metadata(*args, **kwargs)

Top-level container for all CAAIS metadata. Contains all simple non-repeatable fields. Any repeatable field is represented by a separate model with a ForeignKey.

For repeatable fields associated with this model, see:

  • Identifier [CAAIS, Section 1.2]

    • Access via related with self.identifiers

  • ArchivalUnit [CAAIS, Section 1.4]

    • Access via related with self.archival_units

  • DispositionAuthority [CAAIS, Section 1.6]

    • Access via related with self.disposition_authorities

  • SourceOfMaterial [CAAIS, Section 2.1]

    • Access via related with self.source_of_materials

  • PreliminaryCustodialHistory [CAAIS, Section 2.2]

    • Accessible via related with self.preliminary_custodial_histories

  • ExtentStatement [CAAIS, Section 3.2]

    • Accessible via related with self.extent_statements

  • PreliminaryScopeAndContent [CAAIS, Section 3.3]

    • Accessible via related with self.preliminary_scope_and_contents

  • LanguageOfMaterials [CAAIS, Section 3.4]

    • Accessible via related with self.language_of_materials

  • StorageLocation [CAAIS, Section 4.1]

    • Accessible via related with self.storage_locations

  • Rights [CAAIS, Section 4.2]

    • Accessible via related with self.rights

  • PreservationRequirements [CAAIS, Section 4.3]

    • Accessible via related with self.preservation_requirements

  • Appraisal [CAAIS, Section 4.4]

    • Accessible via related with self.appraisals

  • AssociatedDocumentation [CAAIS, Section 4.5]

    • Accessible via related with self.associated_documentation

  • Events [CAAIS, Section 5.1]

    • Accessible via related with self.events

  • GeneralNote [CAAIS, Section 6.1]

    • Accessible via related with self.general_notes

  • DateOfCreationOrRevision [CAAIS, Section 7.2]

    • Accessible via related with self.dates_of_creation_or_revision

repository

Repository [CAAIS, Section 1.1]. Definition: The name of the institution that accepts legal responsibility for the accessioned material.

Type:

CharField

accession_title

Accession Title [CAAIS, Section 1.3]. Definition: The name assigned to the material.

Type:

CharField

acquisition_method

See AcquisitionMethod [CAAIS, Section 1.5]

Type:

ForeignKey

status

See Status [CAAIS, Section 1.7]

Type:

ForeignKey

date_of_materials

Date of Materials [CAAIS, Section 3.1]. Definition: A date or date range indicating when the materials were known or thought to have been created.

Type:

CharField

date_is_approximate

Date is Approximate: To indicate if the date of materials is approximate or not. This is not a field in CAAIS, but is used to determine whether to format the event_date for AtoM.

Type:

BooleanField

rules_or_conventions

Rules or Conventions [CAAIS, Section 7.1]. Definition: The rules, conventions or templates that were used in creating or maintaining the accession record.

Type:

CharField

language_of_accession_record

Language of Accession Record [CAAIS, Section 7.2]. Definition: The language(s) and script(s) used to record information in the accession record.

Type:

CharField

parse_event_date_for_atom() tuple[str, date, date]

Parse this metadata’s date of materials into a three-tuple containing an event date for AtoM.

Uses the same start date and end date if only one date is provided. For an invalid date range with at least either a valid start or end date, the valid date is used for both start and end date. The returned text representation of the date in this case is the single valid date.

If the date cannot be parsed, returns a three tuple containing: - CAAIS_UNKNOWN_DATE_TEXT - A date object representing CAAIS_UNKNOWN_START_DATE - A date object representing CAAIS_UNKNOWN_END_DATE

Returns:

A three-tuple containing the text representation of the date, the earliest date in the range, and the latest date in the range.

create_flat_representation(version=ExportVersion.CAAIS_1_0) dict

Convert this model and all related models into a flat dictionary suitable to be written to a CSV or used as the metadata fields for a BagIt bag.

Note that some CAAIS fields do not map well to AtoM fields, so some information is dropped when using an AtoM export version. For maximum compatibility, convert using the CAAIS export version when possible.

Parameters:

version (ExportVersion) – The flat representation type to export. Can be a CAAIS version or an AtoM version.

Returns:

A dictionary containing all fields in this model as well as all related models (where possible).

Return type:

(dict)

update_accession_id(accession_id: str)

Update the accession identifier value, if an accession identifier exists.

Parameters:
  • accession_id (str) – The new accession identifier

  • commit (bool) – Saves this model if a change is made if True

exception DoesNotExist
exception MultipleObjectsReturned
class caais.models.Identifier(*args, **kwargs)

Identifiers [CAAIS, Section 1.2]

Definition: Alphabetic, numeric, or alpha-numeric codes assigned to accessioned material, parts of the material, or accruals for purposes of unique for purposes of identification.

metadata

Link to Metadata object. Access instances of this model with metadata.identifiers

Type:

ForeignKey

identifier_type

Identifier Type [CAAIS, Section 1.2.1]. Definition: A term or phrase that characterizes the nature of the identifier

Type:

CharField

identifier_value

Identifier Value [CAAIS, Section 1.2.2]. Definition: A code that is assigned to the material to support identification in the course of processes and activities such as acquisition, transfer, ingest, and conservation.

Type:

CharField

identifier_note

Identifier Note [CAAIS, Section 1.2.3]. Definition: Additional information about the identifier, including contextual information on the purpose of the identifier.

Type:

CharField

exception DoesNotExist
exception MultipleObjectsReturned
class caais.models.ArchivalUnit(*args, **kwargs)

Archival Unit [CAAIS, Section 1.4]

Definition: The archival unit or the aggregate to which the accessioned material belongs.

metadata

Link to Metadata object. Access instances of this model with metadata.archival_units

Type:

ForeignKey

archival_unit

The text content of CAAIS, Section 1.4.

Type:

TextField

exception DoesNotExist
exception MultipleObjectsReturned
class caais.models.DispositionAuthority(*args, **kwargs)

Disposition Authority [CAAIS, Section 1.6]

Definition: A reference to policies, directives, and agreements that prescribe and allow for the transfer of material to a repository.

metadata

Link to Metadata object. Access instances of this model with metadata.disposition_authorities

Type:

ForeignKey

disposition_authority

The text content of CAAIS, Section 1.6.

Type:

TextField

exception DoesNotExist
exception MultipleObjectsReturned
class caais.models.SourceType(*args, **kwargs)

Source Type [CAAIS, Section 2.1.1]

Definition: A term describing the nature of the source.

Inherits AbstractTerm

name

The name of the source type

Type:

CharField

description

A description of the source type

Type:

TextField

exception DoesNotExist
exception MultipleObjectsReturned
class caais.models.SourceRole(*args, **kwargs)

Source Role [CAAIS, Section 2.1.4]

Definition: The relationship of the named source to the material.

Inherits AbstractTerm

name

The name of the source role

Type:

CharField

description

A description of the source role

Type:

TextField

exception DoesNotExist
exception MultipleObjectsReturned
class caais.models.SourceConfidentiality(*args, **kwargs)

Source Confidentiality [CAAIS, Section 2.1.6]

Definition: An instruction to maintain information about the source in confidence.

Inherits AbstractTerm

name

The name of the source confidentiality

Type:

CharField

description

A description of the source confidentiality

Type:

TextField

exception DoesNotExist
exception MultipleObjectsReturned
class caais.models.SourceOfMaterial(*args, **kwargs)

Source of Material [CAAIS, Section 2.1]

Definition: A corporate body, person or family responsible for the creation, use or transfer of the accessioned material.

metadata

Link to Metadata object. Access instances of this model with metadata.source_of_materials

Type:

ForeignKey

source_type

See SourceType [CAAIS, Section 2.1.1]

Type:

ForeignKey

source_name

Source Name [CAAIS, Section 2.1.2]. Definition: The proper name of the source of the material.

Type:

CharField

contact_name

An extension of Source Contact Information [CAAIS, Section 2.1.3] The name of the contact person

Type:

CharField

job_title

An extension of Source Contact Information [CAAIS, Section 2.1.3] The job title of the contact person

Type:

CharField

organization

An extension of Source Contact Information [CAAIS, Section 2.1.3] The organization the source is a member of, or the organization the source is

Type:

CharField

phone_number

An extension of Source Contact Information [CAAIS, Section 2.1.3] The phone number the source can be contacted with

Type:

CharField

email_address

An extension of Source Contact Information [CAAIS, Section 2.1.3] The email address the source can be contacted with

Type:

CharField

address_line_1

An extension of Source Contact Information [CAAIS, Section 2.1.3] The first line of the address where the source resides or operates in

Type:

CharField

address_line_2

An extension of Source Contact Information [CAAIS, Section 2.1.3] The second line of the address where the source resides or operates in

Type:

CharField

city

An extension of Source Contact Information [CAAIS, Section 2.1.3] The city the source resides or operates in

Type:

CharField

region

An extension of Source Contact Information [CAAIS, Section 2.1.3] The region the source resides or operates in, i.e., the province or state

Type:

CharField

postal_or_zip_code

An extension of Source Contact Information [CAAIS, Section 2.1.3] The source’s postal or zip code

Type:

CharField

country

An extension of Source Contact Information [CAAIS, Section 2.1.3] The country the source resides or operates in

Type:

CountryField

source_role

See SourceRole [CAAIS, Section 2.1.4]

Type:

ForeignKey

source_note

Source Note [CAAIS, Section 2.1.5]. Definition: An open element to capture any additional information about the source, or circumstances surrounding their role.

Type:

TextField

source_confidentiality

See SourceConfidentiality [CAAIS, Section 2.1.6]

Type:

ForeignKey

exception DoesNotExist
exception MultipleObjectsReturned
class caais.models.PreliminaryCustodialHistory(*args, **kwargs)

Preliminary Custodial History [CAAIS, Section 2.2]

Definition: Information about the chain of agents, in addition to the creator(s), that have exercised custody or control over the material at all stages in its existence.

metadata

Link to Metadata object. Access instances of this model with metadata.preliminary_custodial_histories

Type:

ForeignKey

preliminary_custodial_history

The text content of CAAIS, Section 2.2.

Type:

TextField

exception DoesNotExist
exception MultipleObjectsReturned
class caais.models.ExtentType(*args, **kwargs)

Extent Type [CAAIS, Section 3.2.1]

Definition: A term that characterizes the nature of each extent statement.

Inherits AbstractTerm

name

The name of the extent type

Type:

CharField

description

A description of the extent type

Type:

TextField

exception DoesNotExist
exception MultipleObjectsReturned
class caais.models.ContentType(*args, **kwargs)

Content Type [CAAIS, Section 3.2.3]

Definition: The type of material contained in the units measured, considered as a form of communication or documentary genre.

Inherits AbstractTerm

name

The name of the content type

Type:

CharField

description

A description of the content type

Type:

TextField

exception DoesNotExist
exception MultipleObjectsReturned
class caais.models.CarrierType(*args, **kwargs)

Carrier Type [CAAIS, Section 3.2.4]

Definition: The physical format of an object that supports or carries archival materials.

Inherits AbstractTerm

name

The name of the carrier type

Type:

CharField

description

A description of the carrier type

Type:

TextField

exception DoesNotExist
exception MultipleObjectsReturned
class caais.models.ExtentStatement(*args, **kwargs)

Extent Statement [CAAIS, Section 3.2]

Definition: The physical or logical quantity and type of material.

metadata

Link to Metadata object. Access instances of this model with metadata.preliminary_custodial_histories

Type:

ForeignKey

extent_type

See ExtentType [CAAIS, Section 3.2.1]

Type:

ForeignKey

quantity_and_unit_of_measure

Quantity and Unit of Measure [CAAIS, Section 3.2.2]. Definition: The number and unit of measure expressing the quantity of the extent.

Type:

TextField

content_type

See ContentType [CAAIS, Section 3.2.3]

Type:

ForeignKey

carrier_type

See CarrierType [CAAIS, Section 3.2.4]

Type:

ForeignKey

extent_note

Extent Note [CAAIS, Section 3.2.5]. Definition: Additional information related to the number and type of units received, retained, or removed not otherwise recorded.

Type:

TextField

exception DoesNotExist
exception MultipleObjectsReturned
class caais.models.PreliminaryScopeAndContent(*args, **kwargs)

Preliminary Scope and Content [CAAIS, Section 3.3]

Definition: A preliminary description of the functions and activities that generated the accessioned material as well as information about its arrangement (organizational structure or relationships) and documentary forms.

metadata

Link to Metadata object. Access instances of this model with metadata.preliminary_scope_and_contents

Type:

ForeignKey

preliminary_scope_and_content

The text content of CAAIS, Section 3.3.

Type:

TextField

exception DoesNotExist
exception MultipleObjectsReturned
class caais.models.LanguageOfMaterial(*args, **kwargs)

Language of Material [CAAIS, Section 3.4]

Definition: The language(s) and script(s) represented in the accessioned materials.

metadata

Link to Metadata object. Access instances of this model with metadata.language_of_materials

Type:

ForeignKey

language_of_material

The text content of CAAIS, Section 3.4.

Type:

TextField

exception DoesNotExist
exception MultipleObjectsReturned
class caais.models.StorageLocation(*args, **kwargs)

Storage Location [CAAIS, Section 4.1]

Definition: The physical or logical location where the material resides.

metadata

Link to Metadata object. Access instances of this model with metadata.storage_locations

Type:

ForeignKey

storage_location

The text content of CAAIS, Section 4.1.

Type:

TextField

exception DoesNotExist
exception MultipleObjectsReturned
class caais.models.RightsType(*args, **kwargs)

Rights Type [CAAIS, Section 4.2.1]

Definition: A term that characterizes the nature of a rights statement.

Inherits AbstractTerm

name

The name of the rights type

Type:

CharField

description

A description of the rights type

Type:

TextField

exception DoesNotExist
exception MultipleObjectsReturned
class caais.models.Rights(*args, **kwargs)

Rights [CAAIS, Section 4.2]

Definition: The assertion of one or more rights pertaining to the material.

metadata

Link to Metadata object. Access instances of this model with metadata.rights

Type:

ForeignKey

rights_type

See RightsType [CAAIS, Section 4.2.1]

Type:

ForeignKey

rights_value

Rights Value [CAAIS, Section 4.2.2]. Definition: The parameters and conditions pertaining to the rights statement.

Type:

TextField

rights_note

Rights Note [CAAIS, Section 4.2.3]. Definition: Additional information related to the rights statement not otherwise recorded.

Type:

TextField

exception DoesNotExist
exception MultipleObjectsReturned
class caais.models.PreservationRequirementsType(*args, **kwargs)

Preservation Requirements Type [CAAIS, Section 4.3.1]

Definition: A description of the material’s physical state, dependency or preservation concerns identified.

Inherits AbstractTerm

name

The name of the preservation requirements type

Type:

CharField

description

A description of the preservation requirements type

Type:

TextField

exception DoesNotExist
exception MultipleObjectsReturned
class caais.models.PreservationRequirements(*args, **kwargs)

Preservation Requirements [CAAIS, Section 4.3]

Definition: Information about physical condition and / or logical dependencies that need to be addressed by the repository to ensure the long-term preservation of the materials.

metadata

Link to Metadata object. Access instances of this model with metadata.preservation_requirements

Type:

ForeignKey

preservation_requirements_type

See PreservationRequirementsType [CAAIS, Section 4.3.1]

Type:

ForeignKey

preservation_requirements_value

Preservation Requirements Value [CAAIS, Section 4.3.2]. Definition: A description of the material’s physical state, dependency or preservation concerns identified.

Type:

TextField

preservation_requirements_note

Preservation Requirements Note [CAAIS, Section 4.3.3]. Definition: Additional information related to the preservation requirement not otherwise recorded.

Type:

TextField

exception DoesNotExist
exception MultipleObjectsReturned
class caais.models.AppraisalType(*args, **kwargs)

Appraisal Type [CAAIS, Section 4.4.1]

Definition: A term that characterizes the nature of the appraisal.

Inherits AbstractTerm

name

The name of the appraisal type

Type:

CharField

description

A description of the appraisal type

Type:

TextField

exception DoesNotExist
exception MultipleObjectsReturned
class caais.models.Appraisal(*args, **kwargs)

Appraisal [CAAIS, Section 4.4]

Definition: Information about the assessment of value of the materials accessioned.

metadata

Link to Metadata object. Access instances of this model with metadata.appraisals

Type:

ForeignKey

appraisal_type

See AppraisalType [CAAIS, Section 4.4.1]

Type:

ForeignKey

appraisal_value

Appraisal Value [CAAIS, Section 4.4.2]. Definition: A statement identifying any decisions made on the appraisal and selection of material, or outlining monetary appraisal details.

Type:

TextField

appraisal_note

Appraisal Note [CAAIS, Section 4.4.3]. Definition: Additional information related to the appraisal not otherwise recorded.

Type:

TextField

exception DoesNotExist
exception MultipleObjectsReturned
class caais.models.AssociatedDocumentationType(*args, **kwargs)

Associated Documentation Type [CAAIS, Section 4.5.1]

Definition: A term that characterizes the nature of the appraisal.

Inherits AbstractTerm

name

The name of the associated documentation type

Type:

CharField

description

A description of the associated documentation type

Type:

TextField

exception DoesNotExist
exception MultipleObjectsReturned
class caais.models.AssociatedDocumentation(*args, **kwargs)

Associated Documentation [CAAIS, Section 4.5]

Definition: A reference to any documentation related to the material in the accession.

metadata

Link to Metadata object. Access instances of this model with metadata.appraisals

Type:

ForeignKey

associated_documentation_type

See AssociatedDocumentationType [CAAIS, Section 4.5.1]

Type:

ForeignKey

associated_documentation_title

Associated Documentation Title [CAAIS, Section 4.5.2]. Definition: Name of the documentation related to the accessioned material

Type:

TextField

associated_documentation_note

Associated Documentation Note [CAAIS, Section 4.5.3]. Definition: Additional information related to associated documentation not otherwise recorded

Type:

TextField

exception DoesNotExist
exception MultipleObjectsReturned
class caais.models.EventType(*args, **kwargs)

Event Type [CAAIS, Section 5.1.1]

Definition: A term that characterizes the type of event documented in the accession process.

Inherits AbstractTerm

name

The name of the event type

Type:

CharField

description

A description of the event type

Type:

TextField

exception DoesNotExist
exception MultipleObjectsReturned
class caais.models.Event(*args, **kwargs)

Event [CAAIS, Section 5.1]

Definition: The actions taken by repository staff throughout the accession process.

metadata

Link to Metadata object. Access instances of this model with metadata.events

Type:

ForeignKey

event_type

See EventType [CAAIS, Section 5.1.1]

Type:

ForeignKey

event_date

Event Date [CAAIS, Section 5.1.2]. Definition: The calendar date on which the event occurred. Time is automatically set to the current time when a new Event is created.

Type:

DateTimeField

event_agent

Event Agent [CAAIS, Section 5.1.3]. Definition: The repository staff member responsible for the event.

Type:

TextField

event_note

Event Note [CAAIS, Section 5.1.4]. Definition: Additional information related to the event not otherwise recorded.

Type:

TextField

exception DoesNotExist
exception MultipleObjectsReturned
class caais.models.GeneralNote(*args, **kwargs)

General Note [CAAIS, Section 6.1]

Definition: Additional information relating to the accession process or material that is not otherwise captured.

metadata

Link to Metadata object. Access instances of this model with metadata.general_notes

Type:

ForeignKey

general_note

The text content of CAAIS, Section 6.1.

Type:

TextField

exception DoesNotExist
exception MultipleObjectsReturned
class caais.models.CreationOrRevisionType(*args, **kwargs)

Creation or Revision Type [CAAIS, Section 7.2.1]

Definition: A term characterizing the nature of the action applied to the accession record.

Inherits AbstractTerm

name

The name of the creation or revision type

Type:

CharField

description

A description of the creation or revision type

Type:

TextField

exception DoesNotExist
exception MultipleObjectsReturned
class caais.models.DateOfCreationOrRevision(*args, **kwargs)

Date of Creation or Revision [CAAIS, Section 7.2]

Definition: Date(s) on which the accession record was created or revised.

metadata

Link to Metadata object. Access instances of this model with metadata.dates_of_creation_or_revision

Type:

ForeignKey

creation_or_revision_type

See CreationOrRevisionType [CAAIS, Section 7.2.1]

Type:

ForeignKey

creation_or_revision_date

Creation or Revision Date [CAAIS, Section 7.2.2]. Definition: The date on which the action was applied to the accession record. Time is automatically set to the current time when a new DateOfCreationOrRevision is created.

Type:

DateTimeField

creation_or_revision_agent

Creation or Revision Agent [CAAIS, Section 7.2.3]. Definition: The repository staff member responsible for the action applied to the accession record.

Type:

CharField

creation_or_revision_note

Creation or Revision Note [CAAIS, Section 7.2.4]. Definition: Additional information describing the action performed on the accession record.

Type:

TextField

exception DoesNotExist
exception MultipleObjectsReturned