add 'cssClass' property for controlling display of report fields; remove 'td' tags from field renderers for more flexibility
This commit is contained in:
parent
460520be20
commit
17ccce90ce
5 changed files with 44 additions and 25 deletions
|
@ -77,6 +77,7 @@ from loops.versioning.interfaces import IVersionable
|
|||
concept_macros = ViewPageTemplateFile('concept_macros.pt')
|
||||
conceptMacrosTemplate = concept_macros
|
||||
resource_macros = ViewPageTemplateFile('resource_macros.pt')
|
||||
form_macros = ViewPageTemplateFile('form_macros.pt')
|
||||
|
||||
|
||||
class NameField(schema.ASCIILine):
|
||||
|
@ -161,7 +162,10 @@ class BaseView(GenericView, I18NView):
|
|||
@Lazy
|
||||
def resource_macros(self):
|
||||
return self.controller.getTemplateMacros('resource', resource_macros)
|
||||
#return resource_macros.macros
|
||||
|
||||
@Lazy
|
||||
def form_macros(self):
|
||||
return self.controller.getTemplateMacros('form', form_macros)
|
||||
|
||||
def breadcrumbs(self):
|
||||
return []
|
||||
|
|
|
@ -468,6 +468,7 @@ class NodeView(BaseView):
|
|||
|
||||
def getViewForTarget(self, obj, setup=True):
|
||||
if obj is not None:
|
||||
obj = baseObject(obj)
|
||||
basicView = component.getMultiAdapter((obj, self.request))
|
||||
if obj == self.targetObject:
|
||||
basicView._viewName = self.context.viewName
|
||||
|
|
|
@ -162,8 +162,8 @@ class AdapterBase(object):
|
|||
def uid(self):
|
||||
return util.getUidForObject(self.context)
|
||||
|
||||
def getChildren(self):
|
||||
for c in self.context.getChildren():
|
||||
def getChildren(self, predicates=None):
|
||||
for c in self.context.getChildren(predicates):
|
||||
yield adapted(c, self.languageInfo)
|
||||
|
||||
def getLongTitle(self):
|
||||
|
|
|
@ -20,50 +20,63 @@
|
|||
<tr>
|
||||
<th tal:repeat="col results/displayedColumns"
|
||||
tal:content="col/title"
|
||||
tal:attributes="class col/cssClass"
|
||||
i18n:translate="" />
|
||||
</tr>
|
||||
<tr tal:repeat="row results">
|
||||
<tal:column repeat="col results/displayedColumns">
|
||||
<metal:column use-macro="python:view.getColumnRenderer(col.renderer)" />
|
||||
</tal:column>
|
||||
<td tal:repeat="col results/displayedColumns">
|
||||
<metal:column use-macro="python:view.getColumnRenderer(col)" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr tal:define="row nocall:results/totals"
|
||||
tal:condition="nocall:row">
|
||||
<tal:column repeat="col results/displayedColumns">
|
||||
<metal:column use-macro="python:view.getColumnRenderer(col.renderer)" />
|
||||
</tal:column>
|
||||
<td tal:repeat="col results/displayedColumns"
|
||||
tal:attributes="class col/cssClass">
|
||||
<metal:column use-macro="python:view.getColumnRenderer(col)" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
|
||||
<metal:standard define-macro="standard">
|
||||
<td tal:content="structure python:col.getDisplayValue(row)" />
|
||||
<tal:column content="structure python:col.getDisplayValue(row)" />
|
||||
</metal:standard>
|
||||
|
||||
|
||||
<metal:right define-macro="center">
|
||||
<td style="text-align: center"
|
||||
tal:content="python:col.getDisplayValue(row)" />
|
||||
<tal:column content="python:col.getDisplayValue(row)" />
|
||||
</metal:right>
|
||||
|
||||
|
||||
<metal:right define-macro="right">
|
||||
<td style="text-align: right"
|
||||
tal:content="python:col.getDisplayValue(row)" />
|
||||
<tal:column content="python:col.getDisplayValue(row)" />
|
||||
</metal:right>
|
||||
|
||||
|
||||
<metal:target define-macro="target">
|
||||
<td tal:define="value python:col.getDisplayValue(row)">
|
||||
<tal:column define="value python:col.getDisplayValue(row)">
|
||||
<a tal:omit-tag="python:not getattr(item, 'showLinks', True) or not value['url']"
|
||||
tal:attributes="href value/url"
|
||||
tal:content="value/title" /></td>
|
||||
tal:content="value/title" />
|
||||
</tal:column>
|
||||
</metal:target>
|
||||
|
||||
|
||||
<metal:standard define-macro="multiline">
|
||||
<tal:column define="values python:col.getDisplayValues(row)">
|
||||
<tal:values repeat="value values">
|
||||
<span tal:replace="value" />
|
||||
<span tal:condition="python: repeat['value'].index() < len(values)">
|
||||
<br/>
|
||||
</span>
|
||||
</tal:values>
|
||||
</tal:column>
|
||||
</metal:standard>
|
||||
|
||||
|
||||
<div metal:define-macro="subreport">
|
||||
<td>
|
||||
<tal:column>
|
||||
<table class="subreport"
|
||||
tal:define="results python:col.getValue(row)">
|
||||
<tr>
|
||||
|
@ -72,18 +85,18 @@
|
|||
i18n:translate="" />
|
||||
</tr>
|
||||
<tr tal:repeat="row results">
|
||||
<tal:column repeat="col results/displayedColumns">
|
||||
<metal:column use-macro="python:view.getColumnRenderer(col.renderer)" />
|
||||
</tal:column>
|
||||
<td tal:repeat="col results/displayedColumns">
|
||||
<metal:column use-macro="python:view.getColumnRenderer(col)" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr tal:define="row nocall:results/totals"
|
||||
tal:condition="nocall:row">
|
||||
<tal:column repeat="col results/displayedColumns">
|
||||
<metal:column use-macro="python:view.getColumnRenderer(col.renderer)" />
|
||||
</tal:column>
|
||||
<td tal:repeat="col results/displayedColumns">
|
||||
<metal:column use-macro="python:view.getColumnRenderer(col)" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tal:column>
|
||||
</div>
|
||||
|
||||
|
||||
|
|
|
@ -56,7 +56,7 @@ class DecimalField(Field):
|
|||
|
||||
format = 'decimal'
|
||||
pattern = u'#,##0.00;-#,##0.00'
|
||||
renderer = 'right'
|
||||
cssClass = 'number'
|
||||
|
||||
def getDisplayValue(self, row):
|
||||
value = self.getRawValue(row)
|
||||
|
@ -76,6 +76,7 @@ class DecimalField(Field):
|
|||
class DateField(Field):
|
||||
|
||||
format = ('date', 'short')
|
||||
cssClass = 'center'
|
||||
|
||||
def getDisplayValue(self, row):
|
||||
value = self.getRawValue(row)
|
||||
|
|
Loading…
Add table
Reference in a new issue