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
|
>>> fieldRenderers = form.fieldRenderers
|
||||||
>>> sorted(fieldRenderers.keys())
|
>>> sorted(fieldRenderers.keys())
|
||||||
[u'field', u'field_spacer', u'fields', u'input_dropdown', u'input_fileupload',
|
[u'field', u'field_spacer', u'fields', u'form', u'input_dropdown',
|
||||||
u'input_password', u'input_textarea', u'input_textline']
|
u'input_fileupload', u'input_password', u'input_textarea', u'input_textline']
|
||||||
|
|
|
@ -48,13 +48,11 @@ class Form(object):
|
||||||
self.context = context
|
self.context = context
|
||||||
self.request = request
|
self.request = request
|
||||||
|
|
||||||
@Lazy
|
|
||||||
def schemaMacros(self):
|
|
||||||
return schema_macros.macros
|
|
||||||
|
|
||||||
# proof-of-concept - get a dictionary of renderers (macros) via adaptatation
|
|
||||||
@Lazy
|
@Lazy
|
||||||
def fieldRenderers(self):
|
def fieldRenderers(self):
|
||||||
|
""" proof-of-concept - get a dictionary of renderers (macros) via
|
||||||
|
adaptatation.
|
||||||
|
"""
|
||||||
return IRenderers(self)
|
return IRenderers(self)
|
||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
|
|
|
@ -3,10 +3,28 @@
|
||||||
<body>
|
<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">
|
<metal:fields define-macro="fields">
|
||||||
<tal:define define="manageMode manageMode|view/manageMode|nothing;
|
<tal:define define="manageMode manageMode|view/manageMode|nothing;
|
||||||
fields view/fields;
|
fields view/fields;
|
||||||
data view/data">
|
data view/data;
|
||||||
|
state view/formState">
|
||||||
<table style="width: 100%">
|
<table style="width: 100%">
|
||||||
<tal:fields repeat="field fields">
|
<tal:fields repeat="field fields">
|
||||||
<tal:field define="name field/name;
|
<tal:field define="name field/name;
|
||||||
|
|
|
@ -39,6 +39,7 @@ class SchemaFactory(object):
|
||||||
|
|
||||||
fieldMapping = {
|
fieldMapping = {
|
||||||
schema.TextLine: ('textline',),
|
schema.TextLine: ('textline',),
|
||||||
|
schema.Password: ('password',),
|
||||||
schema.ASCII: ('textline',),
|
schema.ASCII: ('textline',),
|
||||||
schema.Text: ('textarea',),
|
schema.Text: ('textarea',),
|
||||||
schema.Date: ('date',),
|
schema.Date: ('date',),
|
||||||
|
|
|
@ -121,7 +121,7 @@ class FieldInstance(object):
|
||||||
if not value and self.context.required:
|
if not value and self.context.required:
|
||||||
self.setError('required_missing')
|
self.setError('required_missing')
|
||||||
|
|
||||||
def setError(self, errorName):
|
def setError(self, errorName, formErrors=formErrors):
|
||||||
error = formErrors[errorName]
|
error = formErrors[errorName]
|
||||||
self.errors.append(error)
|
self.errors.append(error)
|
||||||
self.severity = max(error.severity, self.severity)
|
self.severity = max(error.severity, self.severity)
|
||||||
|
|
|
@ -82,6 +82,7 @@ class FieldType(SimpleTerm):
|
||||||
|
|
||||||
fieldTypes = SimpleVocabulary((
|
fieldTypes = SimpleVocabulary((
|
||||||
FieldType('textline', 'textline', u'Textline'),
|
FieldType('textline', 'textline', u'Textline'),
|
||||||
|
FieldType('password', 'password', u'Password'),
|
||||||
FieldType('textarea', 'textarea', u'Textarea'),
|
FieldType('textarea', 'textarea', u'Textarea'),
|
||||||
FieldType('number', 'number', u'Number',
|
FieldType('number', 'number', u'Number',
|
||||||
inputRenderer='input_textline', instanceName='number'),
|
inputRenderer='input_textline', instanceName='number'),
|
||||||
|
|
Loading…
Add table
Reference in a new issue