if not re.match(regex, value):
raise ValidationError(u'%s is not a valid collection code' % value)
- code = CharField(_('code'), unique=True, required=True, validators=[is_valid_collection_code])
- old_code = CharField(_('old code'), unique=True, null=True)
+ # General informations
reference = CharField(_('reference'), unique=True, null=True)
title = CharField(_('title'), required=True)
alt_title = CharField(_('original title / translation'))
- physical_format = WeakForeignKey('PhysicalFormat', related_name="collections",
- verbose_name=_('archive format'))
-
- physical_items_num = IntegerField(_('number of components (medium / piece)'))
- publishing_status = WeakForeignKey('PublishingStatus', related_name="collections",
- verbose_name=_('secondary edition'))
creator = CharField(_('depositor / contributor'))
- booklet_author = CharField(_('author of published notice'))
- booklet_description = TextField(_('related documentation'))
+ recording_context = WeakForeignKey('RecordingContext', related_name="collections",
+ verbose_name=_('recording context'))
+ recorded_from_year = IntegerField(_('recording year (from)'))
+ recorded_to_year = IntegerField(_('recording year (until)'))
+ year_published = IntegerField(_('year published'))
+
+ # Geographic and cultural informations
+ ## See "countries" and "ethnic_groups" methods below
+
+ # Legal notices
collector = CharField(_('recordist'))
- collector_is_creator = BooleanField(_('recordist identical to depositor'))
publisher = WeakForeignKey('Publisher', related_name="collections",
verbose_name=_('publisher / status'))
- is_published = BooleanField(_('published'))
- year_published = IntegerField(_('year published'))
publisher_collection = WeakForeignKey('PublisherCollection', related_name="collections",
verbose_name=_('publisher collection'))
publisher_serial = CharField(_('publisher serial number'))
+ booklet_author = CharField(_('author of published notice'))
external_references = TextField(_('bibliographic references'))
+ doctype_code = IntegerField(_('document type'))
+ public_access = CharField(_('public access'), choices=PUBLIC_ACCESS_CHOICES,
+ max_length=16, default="metadata")
+ legal_rights = WeakForeignKey('LegalRight', related_name="collections",
+ verbose_name=_('legal rights'))
+
+ # Archiving data
acquisition_mode = WeakForeignKey('AcquisitionMode', related_name="collections",
verbose_name=_('mode of acquisition'))
- comment = TextField(_('comment'))
+ cnrs_contributor = CharField(_('CNRS depositor'))
metadata_author = WeakForeignKey('MetadataAuthor', related_name="collections",
verbose_name=_('record author'))
+ booklet_description = TextField(_('related documentation'))
+ publishing_status = WeakForeignKey('PublishingStatus', related_name="collections",
+ verbose_name=_('secondary edition'))
+ alt_ids = CharField(_('copies'))
+ comment = TextField(_('comment'))
metadata_writer = WeakForeignKey('MetadataWriter', related_name="collections",
verbose_name=_('record writer'))
- legal_rights = WeakForeignKey('LegalRight', related_name="collections",
- verbose_name=_('legal rights'))
- alt_ids = CharField(_('copies'))
- recorded_from_year = IntegerField(_('recording year (from)'))
- recorded_to_year = IntegerField(_('recording year (until)'))
- recording_context = WeakForeignKey('RecordingContext', related_name="collections",
- verbose_name=_('recording context'))
- approx_duration = DurationField(_('approximative duration'))
- doctype_code = IntegerField(_('document type'))
travail = CharField(_('archiver notes'))
- state = TextField(_('status'))
- cnrs_contributor = CharField(_('CNRS depositor'))
items_done = CharField(_('items finished'))
- a_informer_07_03 = CharField(_('a_informer_07_03'))
+ collector_is_creator = BooleanField(_('recordist identical to depositor'))
+ is_published = BooleanField(_('published'))
+
+ # Technical data
+ code = CharField(_('code'), unique=True, required=True, validators=[is_valid_collection_code])
+ old_code = CharField(_('old code'), unique=True, null=True)
+ approx_duration = DurationField(_('approximative duration'))
+ physical_items_num = IntegerField(_('number of components (medium / piece)'))
+ physical_format = WeakForeignKey('PhysicalFormat', related_name="collections",
+ verbose_name=_('archive format'))
ad_conversion = WeakForeignKey('AdConversion', related_name='collections',
verbose_name=_('digitization'))
- public_access = CharField(_('public access'), choices=PUBLIC_ACCESS_CHOICES,
- max_length=16, default="metadata")
-
+ state = TextField(_('status'))
+ a_informer_07_03 = CharField(_('a_informer_07_03'))
+
+ # All
objects = MediaCollectionManager()
def __unicode__(self):
-# if self.title:
-# return self.title
-
return self.code
@property
"Describe an item"
element_type = 'item'
PUBLIC_ACCESS_CHOICES = (('none', 'none'), ('metadata', 'metadata'), ('full', 'full'))
-
- collection = ForeignKey('MediaCollection', related_name="items",
- verbose_name=_('collection'))
+
+ # Main Informations
title = CharField(_('title'))
- track = CharField(_('item number'))
- old_code = CharField(_('old code'), unique=True, null=True)
- code = CharField(_('code'), unique=True, null=True)
- approx_duration = DurationField(_('approximative duration'))
+ alt_title = CharField(_('original title / translation'))
+ collector = CharField(_('recordist'))
+ collection = ForeignKey('MediaCollection', related_name="items",
+ verbose_name=_('collection'))
recorded_from_date = DateField(_('recording date (from)'))
recorded_to_date = DateField(_('recording date (until)'))
+
+ # Geographic and cultural informations
location = WeakForeignKey('Location', verbose_name=_('location'))
location_comment = CharField(_('location details'))
+ cultural_area = CharField(_('cultural area'))
ethnic_group = WeakForeignKey('EthnicGroup', related_name="items",
verbose_name=_('population / social group'))
- alt_title = CharField(_('original title / translation'))
- author = CharField(_('author / compositor'))
+ context_comment = TextField(_('comments'))
+ moda_execut = CharField(_('moda_execut'))
+
+ # Musical informations
vernacular_style = WeakForeignKey('VernacularStyle', related_name="items",
verbose_name=_('vernacular style'))
- external_references = TextField(_('published reference'))
- moda_execut = CharField(_('moda_execut'))
- copied_from_item = WeakForeignKey('self', related_name="copies", verbose_name=_('copy of'))
- collector = CharField(_('recordist'))
- collector_from_collection = BooleanField(_('recordist as in collection'))
- cultural_area = CharField(_('cultural area'))
generic_style = WeakForeignKey('GenericStyle', related_name="items",
verbose_name=_('generic style'))
+ author = CharField(_('author / compositor'))
+
+ # General informations
+ comment = TextField(_('remarks'))
collector_selection = CharField(_('recordist selection'))
+ collector_from_collection = BooleanField(_('recordist as in collection'))
+
+ # Archiving data
+ code = CharField(_('code'), unique=True, null=True)
+ old_code = CharField(_('old code'), unique=True, null=True)
+ track = CharField(_('item number'))
creator_reference = CharField(_('reference'))
- context_comment = TextField(_('comments'))
- comment = TextField(_('remarks'))
- file = FileField(_('file'), upload_to='items/%Y/%m/%d', db_column="filename")
+ external_references = TextField(_('published reference'))
+ copied_from_item = WeakForeignKey('self', related_name="copies", verbose_name=_('copy of'))
public_access = CharField(_('public access'), choices=PUBLIC_ACCESS_CHOICES, max_length=16, default="metadata")
-
+ file = FileField(_('file'), upload_to='items/%Y/%m/%d', db_column="filename")
+
+ # Technical data
+ approx_duration = DurationField(_('approximative duration'))
+
+ # All
objects = MediaItemManager()
def keywords(self):