[PATCH eac] Add new `agent_type` attribute for Activity entity

Frank Bessou frank.bessou at logilab.fr
Wed Aug 28 10:58:18 CEST 2019



On 28/08/2019 10:15, Guillaume Vandevelde wrote:
> # HG changeset patch
> # User Guillaume Vandevelde <gvandevelde at logilab.fr>
> # Date 1563887776 -7200
> #      Tue Jul 23 15:16:16 2019 +0200
> # Node ID 999d2390ec6fefc19205dae04cfd7d9f2002319b
> # Parent  67ecf498201c1998cb49e179a8b965731c54f167
> # Available At http://hg.logilab.org/review/cubes/eac
> #              hg pull http://hg.logilab.org/review/cubes/eac -r 999d2390ec6f
> Add new `agent_type` attribute for Activity entity

Activity is not an EAC tag ? I couldn't find it on 
https://eac.staatsbibliothek-berlin.de/schema/taglibrary/cpfTagLibrary2018_EN.pdf
> 
> diff -r 67ecf498201c -r 999d2390ec6f cubicweb_eac/dataimport.py
> --- a/cubicweb_eac/dataimport.py	Tue Jul 23 17:31:41 2019 +0200
> +++ b/cubicweb_eac/dataimport.py	Tue Jul 23 15:16:16 2019 +0200
> @@ -1067,9 +1067,8 @@
>                       values['start'] = set([event_date])
>                       values['end'] = set([event_date])
>           values.update(self.parse_tag_description(elem, 'eac:eventDescription'))
> -        agent = self._elem_find(elem, 'eac:agent')
> -        if agent is not None and agent.text:
> -            values['agent'] = set([text_type(agent.text)])
> +        values.update(self.values_from_xpaths(elem, (('agent', 'eac:agent'),
> +                                                     ('agent_type', 'eac:agentType'))))
>           yield ExtEntity('Activity', self._gen_extid(), values)
>   
>       @relate_to_record_through('Convention', 'convention_of')
> diff -r 67ecf498201c -r 999d2390ec6f cubicweb_eac/migration/0.9.0_Any.py
> --- a/cubicweb_eac/migration/0.9.0_Any.py	Tue Jul 23 17:31:41 2019 +0200
> +++ b/cubicweb_eac/migration/0.9.0_Any.py	Tue Jul 23 15:16:16 2019 +0200
> @@ -51,3 +51,5 @@
>       add_attribute(etype, 'items')
>       
>   add_relation_type('place_entry_relation')
> +
> +add_attribute('Activity', 'agent_type')
> diff -r 67ecf498201c -r 999d2390ec6f cubicweb_eac/schema.py
> --- a/cubicweb_eac/schema.py	Tue Jul 23 17:31:41 2019 +0200
> +++ b/cubicweb_eac/schema.py	Tue Jul 23 15:16:16 2019 +0200
> @@ -47,6 +47,8 @@
>   
>   Activity.add_relation(String(description=_('the agent responsible for this activity'),
>                                indexed=True, fulltextindexed=True), name='agent')
> +Activity.add_relation(String(description=_('the type of the agent linked to the activity'),
> +                             indexed=True, fulltextindexed=True), name='agent_type')

Shouldn't there be a vocabulary constraint for this attribute ?

>   
>   
>   class AuthorityRecord(EntityType):
> diff -r 67ecf498201c -r 999d2390ec6f test/test_dataimport.py
> --- a/test/test_dataimport.py	Tue Jul 23 17:31:41 2019 +0200
> +++ b/test/test_dataimport.py	Tue Jul 23 15:16:16 2019 +0200
> @@ -120,6 +120,7 @@
>                ),
>               ('Activity', _gen_extid(),
>                {'type': set([u'create']),
> +              'agent_type': [u'human'],
>                 'generated': set(['FRAD033_EAC_00001']),
>                 'start': set([datetime.datetime(2013, 4, 24, 5, 34, 41)]),
>                 'end': set([datetime.datetime(2013, 4, 24, 5, 34, 41)]),
> @@ -130,6 +131,7 @@
>               ('Activity', _gen_extid(),
>                {'generated': set(['FRAD033_EAC_00001']),
>                 'type': set([u'modify']),
> +              'agent_type': [u'human'],
>                 'start': set([datetime.datetime(2015, 1, 15, 7, 16, 33)]),
>                 'end': set([datetime.datetime(2015, 1, 15, 7, 16, 33)]),
>                 'agent': set([u'Delphine Jamet'])
> 

-- 
Frank Bessou
Logilab         https://www.logilab.fr



More information about the saem-devel mailing list