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:
		
							parent
							
								
									f01df3662c
								
							
						
					
					
						commit
						2c7e2f0e5b
					
				
					 3 changed files with 18 additions and 4 deletions
				
			
		|  | @ -21,6 +21,7 @@ Field definitions for reports. | ||||||
| """ | """ | ||||||
| 
 | 
 | ||||||
| from cybertools.composer.report.field import Field | from cybertools.composer.report.field import Field | ||||||
|  | from loops.common import baseObject | ||||||
| from loops import util | from loops import util | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @ -39,7 +40,8 @@ class UrlField(Field): | ||||||
| 
 | 
 | ||||||
|     def getDisplayValue(self, row): |     def getDisplayValue(self, row): | ||||||
|         nv = row.parent.context.view.nodeView |         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): | class TargetField(Field): | ||||||
|  |  | ||||||
							
								
								
									
										9
									
								
								external/element.py
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								external/element.py
									
										
									
									
										vendored
									
									
								
							|  | @ -90,10 +90,12 @@ class ConceptElement(Element): | ||||||
|         type = loader.concepts[self['type']] |         type = loader.concepts[self['type']] | ||||||
|         kw = dict((k, v) for k, v in self.items() |         kw = dict((k, v) for k, v in self.items() | ||||||
|                          if k not in self.posArgs) |                          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) |         self.object = loader.addConcept(self['name'], self['title'], type) | ||||||
|         formState = self.getInstance().applyTemplate(data=kw, ignoreValidation=True) |         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']): |     def getInstance(self, omit=['title']): | ||||||
|         adObject = adapted(self.object) |         adObject = adapted(self.object) | ||||||
|  | @ -126,6 +128,9 @@ class TypeElement(ConceptElement): | ||||||
|                             loader.typeConcept, **kw) |                             loader.typeConcept, **kw) | ||||||
|         instance = self.getInstance(omit=['title', 'typeInterface']) |         instance = self.getInstance(omit=['title', 'typeInterface']) | ||||||
|         formState = instance.applyTemplate(data=kw, ignoreValidation=True) |         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): | class ChildElement(Element): | ||||||
|  |  | ||||||
|  | @ -14,6 +14,8 @@ from zope.app.catalog.text import TextIndex | ||||||
| from zope.app.container.interfaces import IObjectRemovedEvent | from zope.app.container.interfaces import IObjectRemovedEvent | ||||||
| from zope.app.principalannotation import PrincipalAnnotationUtility | from zope.app.principalannotation import PrincipalAnnotationUtility | ||||||
| from zope.app.principalannotation.interfaces import IPrincipalAnnotationUtility | 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.principalregistry import principalRegistry | ||||||
| from zope.app.security.interfaces import IAuthentication | from zope.app.security.interfaces import IAuthentication | ||||||
| from zope.app.securitypolicy.zopepolicy import ZopeSecurityPolicy | from zope.app.securitypolicy.zopepolicy import ZopeSecurityPolicy | ||||||
|  | @ -122,8 +124,13 @@ class TestSite(object): | ||||||
|         component.provideUtility(principalRegistry, IAuthentication) |         component.provideUtility(principalRegistry, IAuthentication) | ||||||
|         component.provideAdapter(session.ClientId) |         component.provideAdapter(session.ClientId) | ||||||
|         component.provideAdapter(session.Session) |         component.provideAdapter(session.Session) | ||||||
|         component.provideUtility(session.RAMSessionDataContainer(), ISessionDataContainer) |         component.provideUtility(session.RAMSessionDataContainer(), | ||||||
|  |                                  ISessionDataContainer) | ||||||
|         component.provideUtility(ClientIdManager()) |         component.provideUtility(ClientIdManager()) | ||||||
|  |         component.provideUtility(ReStructuredTextSourceFactory, | ||||||
|  |                                  name='zope.source.rest') | ||||||
|  |         component.provideAdapter(ReStructuredTextToHTMLRenderer, | ||||||
|  |                                  (IReStructuredTextSource, IBrowserRequest), Interface) | ||||||
| 
 | 
 | ||||||
|         component.provideAdapter(LoopsType) |         component.provideAdapter(LoopsType) | ||||||
|         component.provideAdapter(ConceptType) |         component.provideAdapter(ConceptType) | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue