Commit 22c493ba authored by Sylvain Thénault's avatar Sylvain Thénault
Browse files

Turn content's type information from string to concept

using SEDA 1 document type.

Related to #15524427
parent 8a899bb52c8b
......@@ -58,6 +58,9 @@ LCSV_FILES = (
(u"SEDA : Codes de restriction d'accès",
'seda_rule', 'SEDASeqAccessRuleRule',
'access_control.csv'),
(u"SEDA : Types d'objets-données",
'seda_type_to', (),
'document_type_code.csv'),
# other schemes
(u'Types MIME',
'seda_mime_type_to', (),
......
......@@ -280,8 +280,8 @@ class SEDADescription(SEDAAnyEntity):
class SEDAType(SEDAAnyEntity):
__regid__ = 'SEDAType'
fetch_attrs, cw_fetch_order = fetch_config(['user_cardinality', 'type', 'user_annotation'])
value_attr = 'type'
fetch_attrs, cw_fetch_order = fetch_config(['user_cardinality'])
value_attr = None
class SEDADocumentType(SEDAAnyEntity):
__regid__ = 'SEDADocumentType'
......
......@@ -1729,7 +1729,7 @@ msgstr ""
msgid "SEDAType"
msgstr ""
msgctxt "inlined:SEDAContent.seda_type.object"
msgctxt "inlined:SEDAContent.seda_type_from.object"
msgid "SEDAType"
msgstr ""
......@@ -3473,7 +3473,7 @@ msgstr ""
msgid "add a SEDAType"
msgstr ""
msgctxt "inlined:SEDAContent.seda_type.object"
msgctxt "inlined:SEDAContent.seda_type_from.object"
msgid "add a SEDAType"
msgstr ""
......@@ -7208,18 +7208,18 @@ msgctxt "Agent"
msgid "seda_transferring_agency_object"
msgstr ""
msgid "seda_type"
msgid "seda_type_from"
msgstr ""
msgctxt "SEDAType"
msgid "seda_type"
msgid "seda_type_from"
msgstr ""
msgid "seda_type_object"
msgid "seda_type_from_object"
msgstr ""
msgctxt "SEDAContent"
msgid "seda_type_object"
msgid "seda_type_from_object"
msgstr ""
msgid "seda_type_relationship"
......@@ -7236,6 +7236,20 @@ msgctxt "Concept"
msgid "seda_type_relationship_object"
msgstr ""
msgid "seda_type_to"
msgstr ""
msgctxt "SEDAType"
msgid "seda_type_to"
msgstr ""
msgid "seda_type_to_object"
msgstr ""
msgctxt "Concept"
msgid "seda_type_to_object"
msgstr ""
msgid "seda_unit"
msgstr ""
......@@ -7447,10 +7461,6 @@ msgctxt "SEDATransferringAgencyArchiveUnitIdentifier"
msgid "transferring_agency_archive_unit_identifier"
msgstr ""
msgctxt "SEDAType"
msgid "type"
msgstr ""
#, python-brace-format
msgid "unit: {0}"
msgstr ""
......
......@@ -1732,7 +1732,7 @@ msgstr ""
msgid "SEDAType"
msgstr "type d'information"
msgctxt "inlined:SEDAContent.seda_type.object"
msgctxt "inlined:SEDAContent.seda_type_from.object"
msgid "SEDAType"
msgstr ""
......@@ -3476,7 +3476,7 @@ msgstr ""
msgid "add a SEDAType"
msgstr "type d'information"
msgctxt "inlined:SEDAContent.seda_type.object"
msgctxt "inlined:SEDAContent.seda_type_from.object"
msgid "add a SEDAType"
msgstr ""
......@@ -7216,18 +7216,18 @@ msgctxt "Agent"
msgid "seda_transferring_agency_object"
msgstr ""
msgid "seda_type"
msgid "seda_type_from"
msgstr ""
msgctxt "SEDAType"
msgid "seda_type"
msgid "seda_type_from"
msgstr ""
msgid "seda_type_object"
msgstr "type d'information"
msgid "seda_type_from_object"
msgstr "type OAIS"
msgctxt "SEDAContent"
msgid "seda_type_object"
msgid "seda_type_from_object"
msgstr ""
msgid "seda_type_relationship"
......@@ -7244,6 +7244,20 @@ msgctxt "Concept"
msgid "seda_type_relationship_object"
msgstr ""
msgid "seda_type_to"
msgstr ""
msgctxt "SEDAType"
msgid "seda_type_to"
msgstr "valeur"
msgid "seda_type_to_object"
msgstr ""
msgctxt "Concept"
msgid "seda_type_to_object"
msgstr ""
msgid "seda_unit"
msgstr "unité"
......@@ -7457,10 +7471,6 @@ msgctxt "SEDATransferringAgencyArchiveUnitIdentifier"
msgid "transferring_agency_archive_unit_identifier"
msgstr ""
msgctxt "SEDAType"
msgid "type"
msgstr "valeur"
#, python-brace-format
msgid "unit: {0}"
msgstr "unité : {0}"
......
#;$id;Valeur;label;définition
type;url;string;string;string
lang;;seda;fr;fr
url;skos:Concept;skos:prefLabel;skos:prefLabel;skos:definition
;;CDO;Contenu de données;Objet numérique ou physique qui est l'objet principal de la pérennisation. ISO 14721:2003(Space data and information transfer systems -- Open archival information system --Reference model)
;;RI;Information de représentation;Information qui traduit un contenu de données en des concepts plus explicites. Par exemple, la définition du code ASCII décrit comment une séquence de bits (un contenu de données) est convertie en caractères. L'information de représentation peut être de structure ou sémantique. ISO 14721:2003 (Space data and information transfer systems -- Open archival information system -- Reference model
;;RISTR;Information de structure;Information de représentation qui explique la façon dont d'autres informations sont organisées. Elle établit par exemple une correspondance entre les trains de bits et les types de données courants sur ordinateurs (tels que caractères, nombres, pixels ou agrégats de ces types tels que chaînes de caractères et tableaux). ISO 14721:2003 (Space data and information transfer systems -- Open archival information system -- Reference model)
;;RISEM;Information sémantique;Information de représentation qui complète l'information de structure pour donner par exemple la signification particulière associée à chacun des éléments de la structure, les opérations réalisables sur chaque type de données, leurs corrélations... ISO 14721:2003 (Space data and information systemstransfe -- Open archival information system -- Reference model)
;;PDI;Information de pérennisation;Information nécessaire à une bonne conservation du contenu d'information, et qui peut être décomposée en informations de provenance, d'identification, d'intégrité et de contexte. ISO 14721:2003 (Space data and information transfer systems -- Open archival information system -- Reference model)
;;PDIPRO;Information de provenance;Information de pérennisation qui documente l'historique du contenu d'information. Cette information renseigne sur l'origine ou la source du contenu d'information, sur toute modification intervenue depuis sa création et sur ceux qui en ont eu la responsabilité. Exemple : nom du principal responsable de l'enregistrement des données, informations relatives au stockage, à la manipulation et à la migration des données. ISO 14721:2003 (Space data and information transfer systems -- Open archival information system -- Reference model)
;;PDIREF;Information d'identification;Information de pérennisation qui identifie, et si nécessaire décrit, le ou les mécanismes d'attribution des identificateurs au contenu d'information. Elle inclut aussi les identificateurs qui permettent à un système externe de se référer sans équivoque à un contenu d'information particulier. ISO 14721:2003 (Space data and information transfer systems -- Open archival information system -- Reference model)
;;PDIFIX;Information d'intégrité;Information de pérennisation qui décrit les mécanismes et des clés d'authentification garantissant que le contenu d'information n'a pas subi de modification sans que celle-ci ait été tracée. Par exemple, le code CRC (contrôl de redondance cyclique) pour un fichier. ISO 14721:2003 (Space data and information transfer systems -- Open archival information system -- Reference model)
;;PDICTX;Information de contexte;Information de pérennisation qui décrit les liens entre un contenu d'information et son environnement. Elle inclut entre autres les raisons de la création de ce contenu d'information et son rapport avec d'autres Objets-contenu d'information. ISO 14721:2003 (Space data and information transfer systems -- Open archival information system -- Reference model)
......@@ -935,11 +935,10 @@ class content_description(RelationDefinition):
annotable=True)
class SEDAType(EntityType):
u""""""
type = String()
class content_type(RelationDefinition):
name = 'seda_type'
class content_type_from(RelationDefinition):
name = 'seda_type_from'
subject = 'SEDAType'
object = 'SEDAContent'
cardinality = '1?'
......@@ -947,6 +946,15 @@ class content_type(RelationDefinition):
inlined = True
constraints = []
class type_type_to(RelationDefinition):
name = 'seda_type_to'
subject = 'SEDAType'
object = 'Concept'
cardinality = '?*'
composite = fulltext_container = None
inlined = True
constraints = [RQLConstraint('O in_scheme CS, CS scheme_relation_type CR, CR name "seda_type_to"')]
@seda_profile_element(cardinalities=['0..1', '1'], default_cardinality='0..1',
annotable=True)
class SEDADocumentType(EntityType):
......
......@@ -25,7 +25,7 @@ class ConcepSchemeImportTC(CubicWebTC):
def test_import_seda_schemes(self):
with self.admin_access.client_cnx() as cnx:
dataimport.import_seda_schemes(cnx, lcsv_import=dataimport.lcsv_check)
self.assertEqual(len(cnx.find('ConceptScheme')), 14)
self.assertEqual(len(cnx.find('ConceptScheme')), 15)
if __name__ == '__main__':
......
......@@ -62,7 +62,7 @@ content_ordered_fields = [
('seda_title', 'object'),
('seda_description', 'object'),
('seda_version', 'object'),
('seda_type', 'object'),
('seda_type_from', 'object'),
('seda_document_type', 'object'),
('seda_status', 'object'),
('seda_language_from', 'object'),
......
......@@ -279,8 +279,10 @@ abaa.tag_subject_of(('*', 'seda_transferring_agency_archive_unit_identifier', '*
abaa.tag_object_of(('*', 'seda_transferring_agency_archive_unit_identifier', '*'), False)
abaa.tag_subject_of(('*', 'seda_description', '*'), False)
abaa.tag_object_of(('*', 'seda_description', '*'), False)
abaa.tag_subject_of(('*', 'seda_type', '*'), False)
abaa.tag_object_of(('*', 'seda_type', '*'), False)
abaa.tag_subject_of(('*', 'seda_type_from', '*'), False)
abaa.tag_object_of(('*', 'seda_type_from', '*'), False)
abaa.tag_object_of(('*', 'seda_type_to', '*'), False)
abaa.tag_subject_of(('*', 'seda_type_to', '*'), False)
abaa.tag_subject_of(('*', 'seda_document_type', '*'), False)
abaa.tag_object_of(('*', 'seda_document_type', '*'), False)
abaa.tag_subject_of(('*', 'seda_language_from', '*'), False)
......@@ -547,7 +549,6 @@ affk.tag_subject_of(('*', 'archival_agency_archive_unit_identifier', '*'), {'wid
affk.tag_subject_of(('*', 'originating_agency_archive_unit_identifier', '*'), {'widget': fw.TextInput({'size': 80})})
affk.tag_subject_of(('*', 'transferring_agency_archive_unit_identifier', '*'), {'widget': fw.TextInput({'size': 80})})
affk.tag_subject_of(('*', 'description', '*'), {'widget': fw.TextInput({'size': 80})})
affk.tag_subject_of(('*', 'type', '*'), {'widget': fw.TextInput({'size': 80})})
affk.tag_subject_of(('*', 'document_type', '*'), {'widget': fw.TextInput({'size': 80})})
affk.tag_subject_of(('*', 'status', '*'), {'widget': fw.TextInput({'size': 80})})
affk.tag_subject_of(('*', 'version', '*'), {'widget': fw.TextInput({'size': 80})})
......@@ -694,8 +695,10 @@ afs.tag_subject_of(('*', 'seda_transferring_agency_archive_unit_identifier', '*'
afs.tag_object_of(('*', 'seda_transferring_agency_archive_unit_identifier', '*'), 'main', 'inlined')
afs.tag_subject_of(('*', 'seda_description', '*'), 'main', 'hidden')
afs.tag_object_of(('*', 'seda_description', '*'), 'main', 'inlined')
afs.tag_subject_of(('*', 'seda_type', '*'), 'main', 'hidden')
afs.tag_object_of(('*', 'seda_type', '*'), 'main', 'inlined')
afs.tag_subject_of(('*', 'seda_type_from', '*'), 'main', 'hidden')
afs.tag_object_of(('*', 'seda_type_from', '*'), 'main', 'inlined')
afs.tag_object_of(('*', 'seda_type_to', '*'), 'main', 'hidden')
afs.tag_subject_of(('*', 'seda_type_to', '*'), 'main', 'attributes')
afs.tag_subject_of(('*', 'seda_document_type', '*'), 'main', 'hidden')
afs.tag_object_of(('*', 'seda_document_type', '*'), 'main', 'inlined')
afs.tag_subject_of(('*', 'seda_language_from', '*'), 'main', 'hidden')
......@@ -980,6 +983,7 @@ pvs.tag_object_of(('*', 'seda_restriction_value', '*'), 'hidden')
pvs.tag_subject_of(('*', 'seda_restriction_end_date', '*'), 'hidden')
pvs.tag_object_of(('*', 'seda_restriction_end_date', '*'), 'hidden')
pvs.tag_object_of(('*', 'seda_description_level', '*'), 'hidden')
pvs.tag_object_of(('*', 'seda_type_to', '*'), 'hidden')
pvs.tag_object_of(('*', 'seda_language_to', '*'), 'hidden')
pvs.tag_object_of(('*', 'seda_description_language_to', '*'), 'hidden')
pvs.tag_subject_of(('*', 'seda_gps_version_id', '*'), 'hidden')
......@@ -1172,8 +1176,8 @@ rec.tag_subject_of(('*', 'transferring_agency_archive_unit_identifier', '*'), {'
rec.tag_object_of(('*', 'seda_transferring_agency_archive_unit_identifier', '*'), {'novalue_label': _('<unauthorized>')})
rec.tag_subject_of(('*', 'description', '*'), {'novalue_label': _('<no value specified>')})
rec.tag_object_of(('*', 'seda_description', '*'), {'novalue_label': _('<unauthorized>')})
rec.tag_subject_of(('*', 'type', '*'), {'novalue_label': _('<no value specified>')})
rec.tag_object_of(('*', 'seda_type', '*'), {'novalue_label': _('<unauthorized>')})
rec.tag_object_of(('*', 'seda_type_from', '*'), {'novalue_label': _('<unauthorized>')})
rec.tag_subject_of(('*', 'seda_type_to', '*'), {'novalue_label': _('<no value specified>')})
rec.tag_subject_of(('*', 'document_type', '*'), {'novalue_label': _('<no value specified>')})
rec.tag_object_of(('*', 'seda_document_type', '*'), {'novalue_label': _('<unauthorized>')})
rec.tag_object_of(('*', 'seda_language_from', '*'), {'novalue_label': _('<unauthorized>')})
......@@ -1334,8 +1338,6 @@ affk.set_fields_order('SEDATransferringAgencyArchiveUnitIdentifier', ['user_card
pvds.set_fields_order('SEDATransferringAgencyArchiveUnitIdentifier', ['user_cardinality', 'transferring_agency_archive_unit_identifier', 'user_annotation'])
affk.set_fields_order('SEDADescription', ['user_cardinality', 'description', 'user_annotation'])
pvds.set_fields_order('SEDADescription', ['user_cardinality', 'description', 'user_annotation'])
affk.set_fields_order('SEDAType', ['user_cardinality', 'type', 'user_annotation'])
pvds.set_fields_order('SEDAType', ['user_cardinality', 'type', 'user_annotation'])
affk.set_fields_order('SEDADocumentType', ['user_cardinality', 'document_type', 'user_annotation'])
pvds.set_fields_order('SEDADocumentType', ['user_cardinality', 'document_type', 'user_annotation'])
affk.set_fields_order('SEDAStatus', ['user_cardinality', 'status', 'user_annotation'])
......
......@@ -146,6 +146,7 @@ XSD2YAMS = {
'FormatId': 'Concept',
'Rule': 'Concept',
'RefNonRuleId': 'Concept',
'Type': 'Concept',
'RelationshipCodeListVersion': 'ConceptScheme',
'AuthorizationReasonCodeListVersion': 'ConceptScheme',
......
......@@ -99,6 +99,8 @@ RDEF_CONSTRAINTS = {
'O in_scheme CS, CS scheme_relation_type CR, CR name "seda_event_type_to"'),
'seda_keyword_type_to': (
'O in_scheme CS, CS scheme_relation_type CR, CR name "seda_keyword_type_to"'),
'seda_type_to': (
'O in_scheme CS, CS scheme_relation_type CR, CR name "seda_type_to"'),
# - scheme defined according to the relation type and the subject type
'seda_algorithm': ( # XXX still there because of signature
'O in_scheme CS, CS scheme_relation_type CR, CR name "seda_algorithm", '
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment