src/pyams_content/shared/form/handler.py
changeset 558 d9c6b1d7fefa
parent 170 26aefef3d0aa
child 1240 921ff38f1aae
equal deleted inserted replaced
557:a78ade534b97 558:d9c6b1d7fefa
    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"""