prepare for using cybertools.composer.schema instead of zope.formlib
git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@1996 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
parent
a049b73f0e
commit
d131771839
3 changed files with 16 additions and 4 deletions
|
@ -710,11 +710,15 @@ The new technique uses the ``fields`` and ``data`` attributes...
|
||||||
|
|
||||||
>>> for f in view.fields:
|
>>> for f in view.fields:
|
||||||
... print f.name, f.fieldType, f.required, f.vocabulary
|
... print f.name, f.fieldType, f.required, f.vocabulary
|
||||||
title text True None
|
title textline True None
|
||||||
description textarea False None
|
description textarea False None
|
||||||
data textarea False None
|
data textarea False None
|
||||||
contentType dropdown True <...SimpleVocabulary object...>
|
contentType dropdown True <...SimpleVocabulary object...>
|
||||||
linkUrl text False None
|
linkUrl textline False None
|
||||||
|
|
||||||
|
>>> view.data
|
||||||
|
{'linkUrl': None, 'contentType': u'', 'data': '', 'description': '',
|
||||||
|
'title': u'Test Note'}
|
||||||
|
|
||||||
The object is changed via a FormController adapter created for
|
The object is changed via a FormController adapter created for
|
||||||
a NodeView.
|
a NodeView.
|
||||||
|
|
|
@ -40,8 +40,10 @@ from zope.security.proxy import isinstance, removeSecurityProxy
|
||||||
|
|
||||||
from cybertools.ajax import innerHtml
|
from cybertools.ajax import innerHtml
|
||||||
from cybertools.browser.form import FormController
|
from cybertools.browser.form import FormController
|
||||||
|
from cybertools.composer.interfaces import IInstance
|
||||||
from cybertools.composer.schema.util import getSchemaFromInterface
|
from cybertools.composer.schema.util import getSchemaFromInterface
|
||||||
from cybertools.typology.interfaces import IType, ITypeManager
|
from cybertools.typology.interfaces import IType, ITypeManager
|
||||||
|
from loops.common import adapted
|
||||||
from loops.concept import ResourceRelation
|
from loops.concept import ResourceRelation
|
||||||
from loops.interfaces import IConcept, IResourceManager, IDocument
|
from loops.interfaces import IConcept, IResourceManager, IDocument
|
||||||
from loops.interfaces import IFile, IExternalFile, INote, ITextDocument
|
from loops.interfaces import IFile, IExternalFile, INote, ITextDocument
|
||||||
|
@ -107,13 +109,13 @@ class ObjectForm(NodeView):
|
||||||
data = instance.applyTemplate(mode='edit')
|
data = instance.applyTemplate(mode='edit')
|
||||||
for k, v in data.items():
|
for k, v in data.items():
|
||||||
#overwrite data with values from request.form
|
#overwrite data with values from request.form
|
||||||
if k in form:
|
if k in self.request.form:
|
||||||
data[k] = form[k]
|
data[k] = form[k]
|
||||||
return data
|
return data
|
||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
def instance(self):
|
def instance(self):
|
||||||
return IInstance(self.context)
|
return IInstance(adapted(self.context))
|
||||||
|
|
||||||
# zope.formlib support
|
# zope.formlib support
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,8 @@ from zope.app.security.interfaces import IAuthentication
|
||||||
from zope.dublincore.annotatableadapter import ZDCAnnotatableAdapter
|
from zope.dublincore.annotatableadapter import ZDCAnnotatableAdapter
|
||||||
from zope.dublincore.interfaces import IZopeDublinCore
|
from zope.dublincore.interfaces import IZopeDublinCore
|
||||||
|
|
||||||
|
from cybertools.composer.schema.field import FieldInstance, NumberFieldInstance
|
||||||
|
from cybertools.composer.schema.instance import Instance, Editor
|
||||||
from cybertools.relation.tests import IntIdsStub
|
from cybertools.relation.tests import IntIdsStub
|
||||||
from cybertools.relation.registry import RelationRegistry
|
from cybertools.relation.registry import RelationRegistry
|
||||||
from cybertools.relation.interfaces import IRelation, IRelationRegistry
|
from cybertools.relation.interfaces import IRelation, IRelationRegistry
|
||||||
|
@ -60,6 +62,10 @@ class TestSite(object):
|
||||||
component.provideAdapter(TypeConcept)
|
component.provideAdapter(TypeConcept)
|
||||||
component.provideAdapter(FileAdapter, provides=IFile)
|
component.provideAdapter(FileAdapter, provides=IFile)
|
||||||
component.provideAdapter(NameChooser)
|
component.provideAdapter(NameChooser)
|
||||||
|
component.provideAdapter(Instance)
|
||||||
|
component.provideAdapter(Editor, name='editor')
|
||||||
|
component.provideAdapter(FieldInstance)
|
||||||
|
component.provideAdapter(NumberFieldInstance, name='number')
|
||||||
|
|
||||||
component.getSiteManager().registerHandler(invalidateRelations,
|
component.getSiteManager().registerHandler(invalidateRelations,
|
||||||
(ILoopsObject, IObjectRemovedEvent))
|
(ILoopsObject, IObjectRemovedEvent))
|
||||||
|
|
Loading…
Add table
Reference in a new issue