equal
deleted
inserted
replaced
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 |