new report field RelationField
This commit is contained in:
		
							parent
							
								
									335c52e3cb
								
							
						
					
					
						commit
						2426e580ff
					
				
					 1 changed files with 16 additions and 9 deletions
				
			
		|  | @ -41,30 +41,37 @@ class UrlField(Field): | |||
|     renderer = 'target' | ||||
| 
 | ||||
|     def getDisplayValue(self, row): | ||||
|         nv = row.parent.context.view.nodeView | ||||
|         if row.context is None:     # probably a totals row | ||||
|             return dict(title=u'', url=u'') | ||||
|         nv = row.parent.context.view.nodeView | ||||
|         return dict(title=self.getValue(row), | ||||
|                     url=nv.getUrlForTarget(baseObject(row.context))) | ||||
| 
 | ||||
| 
 | ||||
| class TargetField(Field): | ||||
| class RelationField(Field): | ||||
| 
 | ||||
|     renderer = 'target' | ||||
| 
 | ||||
|     def getValue(self, row): | ||||
|         return self.getRawValue(row) | ||||
| 
 | ||||
|     def getDisplayValue(self, row): | ||||
|         value = self.getValue(row) | ||||
|         if value is None: | ||||
|             return dict(title=u'', url=u'') | ||||
|         nv = row.parent.context.view.nodeView | ||||
|         return dict(title=value.title, | ||||
|                     url=nv.getUrlForTarget(baseObject(value))) | ||||
| 
 | ||||
| 
 | ||||
| class TargetField(RelationField): | ||||
| 
 | ||||
|     def getValue(self, row): | ||||
|         value = self.getRawValue(row) | ||||
|         if value is None: | ||||
|             return None | ||||
|         return util.getObjectForUid(value) | ||||
| 
 | ||||
|     def getDisplayValue(self, row): | ||||
|         value = self.getValue(row) | ||||
|         if value is None: | ||||
|             return dict(title=u'', url=u'') | ||||
|         view = row.parent.context.view | ||||
|         return dict(title=value.title, url=view.getUrlForTarget(value)) | ||||
| 
 | ||||
| 
 | ||||
| # sub-report stuff | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue