more on composer.schema: use for loops password change
git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@2089 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
parent
31bddf189d
commit
f5b4675a3d
6 changed files with 27 additions and 9 deletions
|
@ -166,5 +166,5 @@ Macros / renderers
|
|||
|
||||
>>> fieldRenderers = form.fieldRenderers
|
||||
>>> sorted(fieldRenderers.keys())
|
||||
[u'field', u'field_spacer', u'fields', u'input_dropdown', u'input_fileupload',
|
||||
u'input_password', u'input_textarea', u'input_textline']
|
||||
[u'field', u'field_spacer', u'fields', u'form', u'input_dropdown',
|
||||
u'input_fileupload', u'input_password', u'input_textarea', u'input_textline']
|
||||
|
|
|
@ -48,13 +48,11 @@ class Form(object):
|
|||
self.context = context
|
||||
self.request = request
|
||||
|
||||
@Lazy
|
||||
def schemaMacros(self):
|
||||
return schema_macros.macros
|
||||
|
||||
# proof-of-concept - get a dictionary of renderers (macros) via adaptatation
|
||||
@Lazy
|
||||
def fieldRenderers(self):
|
||||
""" proof-of-concept - get a dictionary of renderers (macros) via
|
||||
adaptatation.
|
||||
"""
|
||||
return IRenderers(self)
|
||||
|
||||
@Lazy
|
||||
|
|
|
@ -3,10 +3,28 @@
|
|||
<body>
|
||||
|
||||
|
||||
<metal:form define-macro="form">
|
||||
<h1 i18n:translate=""
|
||||
tal:content="view/label | default">Edit</h1>
|
||||
<div>
|
||||
<form method="post">
|
||||
<input type="hidden" name="action" value="update" />
|
||||
<br />
|
||||
<metal:fields use-macro="view/fieldRenderers/fields" />
|
||||
<br />
|
||||
<input type="submit" name="submit" value="Save"
|
||||
i18n:attributes="value"
|
||||
tal:attributes="value view/label_submit | string:Save" />
|
||||
</form>
|
||||
</div>
|
||||
</metal:form>
|
||||
|
||||
|
||||
<metal:fields define-macro="fields">
|
||||
<tal:define define="manageMode manageMode|view/manageMode|nothing;
|
||||
fields view/fields;
|
||||
data view/data">
|
||||
data view/data;
|
||||
state view/formState">
|
||||
<table style="width: 100%">
|
||||
<tal:fields repeat="field fields">
|
||||
<tal:field define="name field/name;
|
||||
|
|
|
@ -39,6 +39,7 @@ class SchemaFactory(object):
|
|||
|
||||
fieldMapping = {
|
||||
schema.TextLine: ('textline',),
|
||||
schema.Password: ('password',),
|
||||
schema.ASCII: ('textline',),
|
||||
schema.Text: ('textarea',),
|
||||
schema.Date: ('date',),
|
||||
|
|
|
@ -121,7 +121,7 @@ class FieldInstance(object):
|
|||
if not value and self.context.required:
|
||||
self.setError('required_missing')
|
||||
|
||||
def setError(self, errorName):
|
||||
def setError(self, errorName, formErrors=formErrors):
|
||||
error = formErrors[errorName]
|
||||
self.errors.append(error)
|
||||
self.severity = max(error.severity, self.severity)
|
||||
|
|
|
@ -82,6 +82,7 @@ class FieldType(SimpleTerm):
|
|||
|
||||
fieldTypes = SimpleVocabulary((
|
||||
FieldType('textline', 'textline', u'Textline'),
|
||||
FieldType('password', 'password', u'Password'),
|
||||
FieldType('textarea', 'textarea', u'Textarea'),
|
||||
FieldType('number', 'number', u'Number',
|
||||
inputRenderer='input_textline', instanceName='number'),
|
||||
|
|
Loading…
Add table
Reference in a new issue