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 |