src/pyams_thesaurus/term.py
changeset 105 348fa0e1dcf6
parent 97 20b1cbc4081d
equal deleted inserted replaced
104:93b34bba2a4a 105:348fa0e1dcf6
    22     IObjectRemovedEvent
    22     IObjectRemovedEvent
    23 from zope.schema.fieldproperty import FieldProperty
    23 from zope.schema.fieldproperty import FieldProperty
    24 from zope.traversing.interfaces import ITraversable
    24 from zope.traversing.interfaces import ITraversable
    25 
    25 
    26 from pyams_catalog.utils import index_object, reindex_object, unindex_object
    26 from pyams_catalog.utils import index_object, reindex_object, unindex_object
       
    27 from pyams_form.interfaces.form import IFormContextPermissionChecker
       
    28 from pyams_thesaurus.interfaces import MANAGE_THESAURUS_CONTENT_PERMISSION
    27 from pyams_thesaurus.interfaces.extension import IThesaurusTermExtension
    29 from pyams_thesaurus.interfaces.extension import IThesaurusTermExtension
    28 from pyams_thesaurus.interfaces.term import IThesaurusLoaderTerm, IThesaurusTerm, IThesaurusTermsContainer, \
    30 from pyams_thesaurus.interfaces.term import IThesaurusLoaderTerm, IThesaurusTerm, IThesaurusTermsContainer, \
    29     STATUS_PUBLISHED
    31     STATUS_PUBLISHED
    30 from pyams_thesaurus.interfaces.thesaurus import IThesaurus, IThesaurusExtract
    32 from pyams_thesaurus.interfaces.thesaurus import IThesaurus, IThesaurusExtract
    31 from pyams_utils.adapter import ContextAdapter, adapter_config
    33 from pyams_utils.adapter import ContextAdapter, adapter_config
    32 from pyams_utils.interfaces.tree import INode
    34 from pyams_utils.interfaces.tree import INode
    33 from pyams_utils.registry import query_utility
    35 from pyams_utils.registry import query_utility
    34 from pyams_utils.timezone import tztime
    36 from pyams_utils.timezone import tztime
    35 from pyams_utils.traversing import get_parent
    37 from pyams_utils.traversing import get_parent
    36 from pyams_utils.unicode import translate_string
    38 from pyams_utils.unicode import translate_string
    37 
       
    38 
    39 
    39 REVERSE_LINK_ATTRIBUTES = {'generic': 'specifics',
    40 REVERSE_LINK_ATTRIBUTES = {'generic': 'specifics',
    40                            'usage': 'used_for'}
    41                            'usage': 'used_for'}
    41 
    42 
    42 REVERSE_LIST_ATTRIBUTES = {'specifics': 'generic',
    43 REVERSE_LIST_ATTRIBUTES = {'specifics': 'generic',
   411             specifics = list(filter(lambda x: filter_value in (x.extracts or ()), specifics))
   412             specifics = list(filter(lambda x: filter_value in (x.extracts or ()), specifics))
   412         return len(specifics) > 0
   413         return len(specifics) > 0
   413 
   414 
   414     def get_children(self, filter_value=None):
   415     def get_children(self, filter_value=None):
   415         return self.context.specifics
   416         return self.context.specifics
       
   417 
       
   418 
       
   419 @adapter_config(context=IThesaurusTerm, provides=IFormContextPermissionChecker)
       
   420 class ThesaurusTermFormPermissionChecker(ContextAdapter):
       
   421     """Thesaurus term form permission checker"""
       
   422 
       
   423     @property
       
   424     def edit_permission(self):
       
   425         return MANAGE_THESAURUS_CONTENT_PERMISSION