src/pyams_content/component/links/interfaces/__init__.py
changeset 168 0d80c3c49bab
parent 140 67bad9f880ee
child 209 c3eaa11eab63
equal deleted inserted replaced
167:9830acb98590 168:0d80c3c49bab
    12 
    12 
    13 __docformat__ = 'restructuredtext'
    13 __docformat__ = 'restructuredtext'
    14 
    14 
    15 
    15 
    16 # import standard library
    16 # import standard library
    17 import re
       
    18 
    17 
    19 # import interfaces
    18 # import interfaces
    20 from pyams_content.component.association.interfaces import IAssociationTarget, IAssociationItem
    19 from pyams_content.component.association.interfaces import IAssociationTarget, IAssociationItem
    21 
    20 
    22 # import packages
    21 # import packages
    23 from pyams_i18n.schema import I18nTextLineField, I18nTextField
    22 from pyams_i18n.schema import I18nTextLineField, I18nTextField
    24 from pyams_sequence.schema import InternalReference, InternalReferencesList
    23 from pyams_sequence.schema import InternalReference, InternalReferencesList
       
    24 from pyams_utils.schema import MailAddressField
    25 from zope.interface import Interface
    25 from zope.interface import Interface
    26 from zope.schema import Choice, TextLine
    26 from zope.schema import Choice, TextLine
    27 
    27 
    28 from pyams_content import _
    28 from pyams_content import _
    29 
    29 
    67                       description=_("Language used in this remote resource"),
    67                       description=_("Language used in this remote resource"),
    68                       vocabulary='PyAMS base languages',
    68                       vocabulary='PyAMS base languages',
    69                       required=False)
    69                       required=False)
    70 
    70 
    71 
    71 
    72 EMAIL_REGEX = re.compile("[^@]+@[^@]+\.[^@]+")
       
    73 
       
    74 
       
    75 class IMailtoLink(IBaseLink):
    72 class IMailtoLink(IBaseLink):
    76     """Mailto link interface"""
    73     """Mailto link interface"""
    77 
    74 
    78     address = TextLine(title=_("Target address"),
    75     address = MailAddressField(title=_("Target address"),
    79                        description=_("Target email address"),
    76                                description=_("Target email address"),
    80                        constraint=EMAIL_REGEX.match,
    77                                required=True)
    81                        required=True)
       
    82 
    78 
    83     address_name = TextLine(title=_("Address name"),
    79     address_name = TextLine(title=_("Address name"),
    84                             description=_("Address as displayed in address book"),
    80                             description=_("Address as displayed in address book"),
    85                             required=True)
    81                             required=True)
    86 
    82