equal
deleted
inserted
replaced
15 |
15 |
16 # import standard library |
16 # import standard library |
17 |
17 |
18 # import interfaces |
18 # import interfaces |
19 from pyams_content.shared.form.interfaces import IFormHandler, IMailtoHandlerTarget, IMailtoHandlerInfo |
19 from pyams_content.shared.form.interfaces import IFormHandler, IMailtoHandlerTarget, IMailtoHandlerInfo |
20 from zope.annotation.interfaces import IAnnotations |
|
21 |
20 |
22 # import packages |
21 # import packages |
23 from persistent import Persistent |
22 from persistent import Persistent |
24 from pyams_utils.adapter import adapter_config |
23 from pyams_utils.adapter import adapter_config, get_annotation_adapter |
25 from pyams_utils.registry import utility_config |
24 from pyams_utils.registry import utility_config |
26 from pyams_utils.request import check_request |
25 from pyams_utils.request import check_request |
27 from pyams_utils.vocabulary import vocabulary_config |
26 from pyams_utils.vocabulary import vocabulary_config |
28 from zope.componentvocabulary.vocabulary import UtilityTerm, UtilityVocabulary |
27 from zope.componentvocabulary.vocabulary import UtilityTerm, UtilityVocabulary |
29 from zope.interface import implementer |
28 from zope.interface import implementer |
69 |
68 |
70 |
69 |
71 @adapter_config(context=IMailtoHandlerTarget, provides=IMailtoHandlerInfo) |
70 @adapter_config(context=IMailtoHandlerTarget, provides=IMailtoHandlerInfo) |
72 def mailto_form_handler_factory(context): |
71 def mailto_form_handler_factory(context): |
73 """Mailto form handler factory""" |
72 """Mailto form handler factory""" |
74 annotations = IAnnotations(context) |
73 return get_annotation_adapter(context, MAILTO_HANDLER_ANNOTATIONS_KEY, MailtoFormHandlerInfo) |
75 info = annotations.get(MAILTO_HANDLER_ANNOTATIONS_KEY) |
|
76 if info is None: |
|
77 info = annotations[MAILTO_HANDLER_ANNOTATIONS_KEY] = MailtoFormHandlerInfo() |
|
78 return info |
|
79 |
74 |
80 |
75 |
81 @utility_config(name='mailto', provides=IFormHandler) |
76 @utility_config(name='mailto', provides=IFormHandler) |
82 class MailtoFormHandler(object): |
77 class MailtoFormHandler(object): |
83 """Mailto form handler""" |
78 """Mailto form handler""" |