work in progress: use cybertools.composer.schema for form rendering

git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@2061 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
helmutm 2007-09-19 15:46:29 +00:00
parent 5473d625c9
commit effa162a32
3 changed files with 18 additions and 2 deletions

View file

@ -41,6 +41,7 @@ from zope.security.proxy import isinstance, removeSecurityProxy
from cybertools.ajax import innerHtml
from cybertools.browser.form import FormController
from cybertools.composer.interfaces import IInstance
from cybertools.composer.schema.browser.common import schema_macros, schema_edit_macros
from cybertools.composer.schema.util import getSchemaFromInterface
from cybertools.typology.interfaces import IType, ITypeManager
from loops.common import adapted
@ -92,7 +93,13 @@ class ObjectForm(NodeView):
# cybertools.composer.schema support
#template = ViewPageTemplateFile('templates/form_macros.pt')
@property
def schemaMacros(self):
return schema_macros.macros
@property
def schemaEditMacros(self):
return schema_edit_macros.macros
@Lazy
def schema(self):
@ -325,7 +332,7 @@ class EditObject(FormController):
else:
adapted = obj
for k in form.keys():
# TODO: use self.view.form_fields
# TODO: use self.view.form_fields or better: IInstance(adapted)
if k.startswith(self.prefix):
fn = k[len(self.prefix):]
if fn in ('action', 'type', 'data.used') or fn.endswith('-empty-marker'):

View file

@ -17,6 +17,7 @@
<tbody><tr><td colspan="5">
<div id="form.fields">
<metal:fields use-macro="view/template/macros/fields" />
<!--<metal:fields use-macro="view/schemaMacros/fields" />-->
</div>
</td></tr></tbody>

View file

@ -393,6 +393,14 @@
</class>
<adapter factory="cybertools.composer.schema.instance.Instance" />
<adapter factory="cybertools.composer.schema.instance.Editor"
name="editor" />
<adapter factory="cybertools.composer.schema.field.FieldInstance" />
<adapter factory="cybertools.composer.schema.field.NumberFieldInstance"
name="number" />
<adapter factory="loops.setup.SetupManager" />
<adapter factory="loops.external.NodesLoader" />
<adapter factory="loops.external.NodesExporter" />