define an email standard field
git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@2392 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
parent
b3eaf1e58f
commit
74e1a6301e
4 changed files with 26 additions and 3 deletions
|
@ -46,6 +46,20 @@ correct conversion of input data to context attributes.
|
|||
>>> srv.title, srv.description, srv.capacity
|
||||
(u'Service', u'', u'30')
|
||||
|
||||
Field types
|
||||
-----------
|
||||
|
||||
>>> from cybertools.composer.schema.interfaces import fieldTypes
|
||||
>>> sorted(t.token for t in fieldTypes)
|
||||
['checkbox', 'date', 'display', 'dropdown', 'email', 'fileupload', 'html',
|
||||
'number', 'password', 'spacer', 'textarea', 'textline']
|
||||
|
||||
>>> from zope.schema.vocabulary import SimpleVocabulary
|
||||
>>> textFieldTypes = SimpleVocabulary([t for t in fieldTypes if t.token in
|
||||
... ('textline', 'textarea',)])
|
||||
>>> sorted(t.token for t in textFieldTypes)
|
||||
['textarea', 'textline']
|
||||
|
||||
|
||||
Creating a schema from an interface
|
||||
===================================
|
||||
|
|
|
@ -32,6 +32,10 @@ from cybertools.composer.schema.interfaces import ISchemaFactory
|
|||
from cybertools.composer.schema.schema import Schema
|
||||
|
||||
|
||||
class Email(schema.TextLine):
|
||||
pass
|
||||
|
||||
|
||||
class SchemaFactory(object):
|
||||
""" Creates a cybertools.composer schema from an
|
||||
interface (a zope.schema schema).
|
||||
|
@ -52,6 +56,7 @@ class SchemaFactory(object):
|
|||
schema.Bool: ('checkbox',),
|
||||
schema.Choice: ('dropdown',),
|
||||
schema.Bytes: ('fileupload',),
|
||||
Email: ('email',),
|
||||
}
|
||||
|
||||
def __init__(self, context):
|
||||
|
|
|
@ -90,7 +90,8 @@ fieldTypes = SimpleVocabulary((
|
|||
inputRenderer='input_textline', instanceName='number'),
|
||||
FieldType('date', 'date', u'Date', instanceName='date'),
|
||||
FieldType('email', 'email', u'E-Mail Address',
|
||||
inputRenderer='input_textline', instanceName='email'),
|
||||
displayRenderer='display_email', inputRenderer='input_textline',
|
||||
instanceName='email'),
|
||||
FieldType('fileupload', 'fileupload', u'File upload',
|
||||
instanceName='fileupload'),
|
||||
FieldType('checkbox', 'checkbox', u'Checkbox', instanceName='boolean'),
|
||||
|
@ -172,6 +173,9 @@ class IField(IComponent):
|
|||
fieldRenderer = Attribute('Name of a renderer (i.e. a ZPT macro or '
|
||||
'an adapter) that is responsible for rendering '
|
||||
'(presenting) the field as a whole.')
|
||||
displayRenderer = Attribute('Name of a renderer (i.e. a ZPT macro or '
|
||||
'an adapter) that is responsible for displaying '
|
||||
'field data.')
|
||||
inputRenderer = Attribute('Name of a renderer (i.e. a ZPT macro or '
|
||||
'an adapter) that is responsible for rendering '
|
||||
'(presenting) the part of the field that allows '
|
||||
|
|
|
@ -27,6 +27,7 @@ from zope.schema.vocabulary import SimpleVocabulary, SimpleTerm
|
|||
from zope.interface import Interface, Attribute
|
||||
from zope.i18nmessageid import MessageFactory
|
||||
|
||||
from cybertools.composer.schema.factory import Email
|
||||
from cybertools.util.jeep import Jeep, Term
|
||||
|
||||
_ = MessageFactory('zope')
|
||||
|
@ -53,8 +54,7 @@ class IPerson(Interface):
|
|||
lastName = schema.TextLine(
|
||||
title=_(u'Last name'),
|
||||
description=_(u'The last name or surname'),)
|
||||
email = schema.TextLine(
|
||||
title=_(u'E-Mail address'),
|
||||
email = Email(title=_(u'E-Mail address'),
|
||||
description=_(u'The standard email address of the person'),)
|
||||
phoneNumbers = SimpleList(
|
||||
value_type=schema.TextLine(),
|
||||
|
|
Loading…
Add table
Reference in a new issue