minor fixes

- URL field for reports
- set reStructuredText renderer in DocTests
- import type and predicate interfaces correctly (backport from bbmaster branch)
This commit is contained in:
Helmut Merz 2011-12-03 17:09:27 +01:00
parent f01df3662c
commit 2c7e2f0e5b
3 changed files with 18 additions and 4 deletions

View file

@ -21,6 +21,7 @@ Field definitions for reports.
"""
from cybertools.composer.report.field import Field
from loops.common import baseObject
from loops import util
@ -39,7 +40,8 @@ class UrlField(Field):
def getDisplayValue(self, row):
nv = row.parent.context.view.nodeView
return dict(title=self.getValue(row), url=nv.getUrlForTarget(row.context))
return dict(title=self.getValue(row),
url=nv.getUrlForTarget(baseObject(row.context)))
class TargetField(Field):

9
external/element.py vendored
View file

@ -90,10 +90,12 @@ class ConceptElement(Element):
type = loader.concepts[self['type']]
kw = dict((k, v) for k, v in self.items()
if k not in self.posArgs)
# use IInstance adapter (name='editor') for unmarshalling values
#self.object = loader.addConcept(self['name'], self['title'], type, **kw)
self.object = loader.addConcept(self['name'], self['title'], type)
formState = self.getInstance().applyTemplate(data=kw, ignoreValidation=True)
# simple hack for resolving interface definition:
pi = self.get('predicateInterface')
if pi is not None:
adapted(self.object).predicateInterface = resolve(pi)
def getInstance(self, omit=['title']):
adObject = adapted(self.object)
@ -126,6 +128,9 @@ class TypeElement(ConceptElement):
loader.typeConcept, **kw)
instance = self.getInstance(omit=['title', 'typeInterface'])
formState = instance.applyTemplate(data=kw, ignoreValidation=True)
if ti:
# overwrite type interface, might have been ignored in addConcept
adapted(self.object).typeInterface = kw['typeInterface']
class ChildElement(Element):

View file

@ -14,6 +14,8 @@ from zope.app.catalog.text import TextIndex
from zope.app.container.interfaces import IObjectRemovedEvent
from zope.app.principalannotation import PrincipalAnnotationUtility
from zope.app.principalannotation.interfaces import IPrincipalAnnotationUtility
from zope.app.renderer.rest import IReStructuredTextSource,\
ReStructuredTextToHTMLRenderer, ReStructuredTextSourceFactory
from zope.app.security.principalregistry import principalRegistry
from zope.app.security.interfaces import IAuthentication
from zope.app.securitypolicy.zopepolicy import ZopeSecurityPolicy
@ -122,8 +124,13 @@ class TestSite(object):
component.provideUtility(principalRegistry, IAuthentication)
component.provideAdapter(session.ClientId)
component.provideAdapter(session.Session)
component.provideUtility(session.RAMSessionDataContainer(), ISessionDataContainer)
component.provideUtility(session.RAMSessionDataContainer(),
ISessionDataContainer)
component.provideUtility(ClientIdManager())
component.provideUtility(ReStructuredTextSourceFactory,
name='zope.source.rest')
component.provideAdapter(ReStructuredTextToHTMLRenderer,
(IReStructuredTextSource, IBrowserRequest), Interface)
component.provideAdapter(LoopsType)
component.provideAdapter(ConceptType)