src/pyams_content/component/links/interfaces/__init__.py
changeset 53 4acef7070de7
parent 0 7c0001cacf8e
child 88 758d0cb86132
equal deleted inserted replaced
52:d9400e3ca85d 53:4acef7070de7
    12 
    12 
    13 __docformat__ = 'restructuredtext'
    13 __docformat__ = 'restructuredtext'
    14 
    14 
    15 
    15 
    16 # import standard library
    16 # import standard library
       
    17 import re
    17 
    18 
    18 # import interfaces
    19 # import interfaces
    19 from zope.annotation.interfaces import IAttributeAnnotatable
    20 from zope.annotation.interfaces import IAttributeAnnotatable
    20 from zope.container.interfaces import IContainer
    21 from zope.container.interfaces import IContainer
    21 
    22 
    22 # import packages
    23 # import packages
    23 from pyams_i18n.schema import I18nTextLineField, I18nTextField
    24 from pyams_i18n.schema import I18nTextLineField, I18nTextField
    24 from pyams_sequence.schema import InternalReference
    25 from pyams_sequence.schema import InternalReference
    25 from pyams_utils.schema import PersistentList
    26 from pyams_utils.schema import PersistentList
    26 from zope.container.constraints import containers, contains
    27 from zope.container.constraints import containers, contains
    27 from zope.interface import Interface, Attribute
    28 from zope.interface import Interface
    28 from zope.schema import Choice, TextLine
    29 from zope.schema import Choice, TextLine
    29 
    30 
    30 from pyams_content import _
    31 from pyams_content import _
    31 
    32 
    32 
    33 
    78                       description=_("Language used in this remote resource"),
    79                       description=_("Language used in this remote resource"),
    79                       vocabulary='PyAMS base languages',
    80                       vocabulary='PyAMS base languages',
    80                       required=False)
    81                       required=False)
    81 
    82 
    82 
    83 
       
    84 EMAIL_REGEX = re.compile("[^@]+@[^@]+\.[^@]+")
       
    85 
       
    86 
       
    87 class IMailtoLink(IBaseLink):
       
    88     """Mailto link interface"""
       
    89 
       
    90     address = TextLine(title=_("Target address"),
       
    91                        description=_("Target email address"),
       
    92                        constraint=EMAIL_REGEX.match,
       
    93                        required=True)
       
    94 
       
    95 
    83 class ILinkContainer(IContainer):
    96 class ILinkContainer(IContainer):
    84     """Links container"""
    97     """Links container"""
    85 
    98 
    86     contains(IBaseLink)
    99     contains(IBaseLink)
    87 
   100