14 |
14 |
15 |
15 |
16 # import standard library |
16 # import standard library |
17 |
17 |
18 # import interfaces |
18 # import interfaces |
19 from pyams_content.component.association.interfaces import IAssociationItem, IAssociationTarget |
19 from pyams_content.component.association.interfaces import IAssociationItem, IAssociationContainerTarget |
20 from pyams_form.interfaces.form import IFormContextPermissionChecker |
20 from pyams_form.interfaces.form import IFormContextPermissionChecker |
21 from zope.lifecycleevent.interfaces import IObjectAddedEvent, IObjectModifiedEvent, IObjectRemovedEvent |
21 from zope.lifecycleevent.interfaces import IObjectAddedEvent, IObjectModifiedEvent, IObjectRemovedEvent |
22 |
22 |
23 # import packages |
23 # import packages |
24 from persistent import Persistent |
24 from persistent import Persistent |
50 class AssociationItemPermissionChecker(ContextAdapter): |
50 class AssociationItemPermissionChecker(ContextAdapter): |
51 """Association item permission checker""" |
51 """Association item permission checker""" |
52 |
52 |
53 @property |
53 @property |
54 def edit_permission(self): |
54 def edit_permission(self): |
55 content = get_parent(self.context, IAssociationTarget) |
55 content = get_parent(self.context, IAssociationContainerTarget) |
56 return IFormContextPermissionChecker(content).edit_permission |
56 return IFormContextPermissionChecker(content).edit_permission |
57 |
57 |
58 |
58 |
59 @subscriber(IObjectAddedEvent, context_selector=IAssociationItem) |
59 @subscriber(IObjectAddedEvent, context_selector=IAssociationItem) |
60 def handle_added_association(event): |
60 def handle_added_association(event): |
61 """Handle added association item""" |
61 """Handle added association item""" |
62 content = get_parent(event.object, IAssociationTarget) |
62 content = get_parent(event.object, IAssociationContainerTarget) |
63 if content is not None: |
63 if content is not None: |
64 get_current_registry().notify(ObjectModifiedEvent(content)) |
64 get_current_registry().notify(ObjectModifiedEvent(content)) |
65 |
65 |
66 |
66 |
67 @subscriber(IObjectModifiedEvent, context_selector=IAssociationItem) |
67 @subscriber(IObjectModifiedEvent, context_selector=IAssociationItem) |
68 def handle_modified_association(event): |
68 def handle_modified_association(event): |
69 """Handle modified association item""" |
69 """Handle modified association item""" |
70 content = get_parent(event.object, IAssociationTarget) |
70 content = get_parent(event.object, IAssociationContainerTarget) |
71 if content is not None: |
71 if content is not None: |
72 get_current_registry().notify(ObjectModifiedEvent(content)) |
72 get_current_registry().notify(ObjectModifiedEvent(content)) |
73 |
73 |
74 |
74 |
75 @subscriber(IObjectRemovedEvent, context_selector=IAssociationItem) |
75 @subscriber(IObjectRemovedEvent, context_selector=IAssociationItem) |
76 def handle_removed_association(event): |
76 def handle_removed_association(event): |
77 """Handle removed association item""" |
77 """Handle removed association item""" |
78 content = get_parent(event.object, IAssociationTarget) |
78 content = get_parent(event.object, IAssociationContainerTarget) |
79 if content is not None: |
79 if content is not None: |
80 get_current_registry().notify(ObjectModifiedEvent(content)) |
80 get_current_registry().notify(ObjectModifiedEvent(content)) |