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')
|
concept_macros = ViewPageTemplateFile('concept_macros.pt')
|
||||||
conceptMacrosTemplate = concept_macros
|
conceptMacrosTemplate = concept_macros
|
||||||
resource_macros = ViewPageTemplateFile('resource_macros.pt')
|
resource_macros = ViewPageTemplateFile('resource_macros.pt')
|
||||||
|
form_macros = ViewPageTemplateFile('form_macros.pt')
|
||||||
|
|
||||||
|
|
||||||
class NameField(schema.ASCIILine):
|
class NameField(schema.ASCIILine):
|
||||||
|
@ -161,7 +162,10 @@ class BaseView(GenericView, I18NView):
|
||||||
@Lazy
|
@Lazy
|
||||||
def resource_macros(self):
|
def resource_macros(self):
|
||||||
return self.controller.getTemplateMacros('resource', resource_macros)
|
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):
|
def breadcrumbs(self):
|
||||||
return []
|
return []
|
||||||
|
|
|
@ -468,6 +468,7 @@ class NodeView(BaseView):
|
||||||
|
|
||||||
def getViewForTarget(self, obj, setup=True):
|
def getViewForTarget(self, obj, setup=True):
|
||||||
if obj is not None:
|
if obj is not None:
|
||||||
|
obj = baseObject(obj)
|
||||||
basicView = component.getMultiAdapter((obj, self.request))
|
basicView = component.getMultiAdapter((obj, self.request))
|
||||||
if obj == self.targetObject:
|
if obj == self.targetObject:
|
||||||
basicView._viewName = self.context.viewName
|
basicView._viewName = self.context.viewName
|
||||||
|
|
|
@ -162,8 +162,8 @@ class AdapterBase(object):
|
||||||
def uid(self):
|
def uid(self):
|
||||||
return util.getUidForObject(self.context)
|
return util.getUidForObject(self.context)
|
||||||
|
|
||||||
def getChildren(self):
|
def getChildren(self, predicates=None):
|
||||||
for c in self.context.getChildren():
|
for c in self.context.getChildren(predicates):
|
||||||
yield adapted(c, self.languageInfo)
|
yield adapted(c, self.languageInfo)
|
||||||
|
|
||||||
def getLongTitle(self):
|
def getLongTitle(self):
|
||||||
|
|
|
@ -20,50 +20,63 @@
|
||||||
<tr>
|
<tr>
|
||||||
<th tal:repeat="col results/displayedColumns"
|
<th tal:repeat="col results/displayedColumns"
|
||||||
tal:content="col/title"
|
tal:content="col/title"
|
||||||
|
tal:attributes="class col/cssClass"
|
||||||
i18n:translate="" />
|
i18n:translate="" />
|
||||||
</tr>
|
</tr>
|
||||||
<tr tal:repeat="row results">
|
<tr tal:repeat="row results">
|
||||||
<tal:column repeat="col results/displayedColumns">
|
<td tal:repeat="col results/displayedColumns">
|
||||||
<metal:column use-macro="python:view.getColumnRenderer(col.renderer)" />
|
<metal:column use-macro="python:view.getColumnRenderer(col)" />
|
||||||
</tal:column>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr tal:define="row nocall:results/totals"
|
<tr tal:define="row nocall:results/totals"
|
||||||
tal:condition="nocall:row">
|
tal:condition="nocall:row">
|
||||||
<tal:column repeat="col results/displayedColumns">
|
<td tal:repeat="col results/displayedColumns"
|
||||||
<metal:column use-macro="python:view.getColumnRenderer(col.renderer)" />
|
tal:attributes="class col/cssClass">
|
||||||
</tal:column>
|
<metal:column use-macro="python:view.getColumnRenderer(col)" />
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<metal:standard define-macro="standard">
|
<metal:standard define-macro="standard">
|
||||||
<td tal:content="structure python:col.getDisplayValue(row)" />
|
<tal:column content="structure python:col.getDisplayValue(row)" />
|
||||||
</metal:standard>
|
</metal:standard>
|
||||||
|
|
||||||
|
|
||||||
<metal:right define-macro="center">
|
<metal:right define-macro="center">
|
||||||
<td style="text-align: center"
|
<tal:column content="python:col.getDisplayValue(row)" />
|
||||||
tal:content="python:col.getDisplayValue(row)" />
|
|
||||||
</metal:right>
|
</metal:right>
|
||||||
|
|
||||||
|
|
||||||
<metal:right define-macro="right">
|
<metal:right define-macro="right">
|
||||||
<td style="text-align: right"
|
<tal:column content="python:col.getDisplayValue(row)" />
|
||||||
tal:content="python:col.getDisplayValue(row)" />
|
|
||||||
</metal:right>
|
</metal:right>
|
||||||
|
|
||||||
|
|
||||||
<metal:target define-macro="target">
|
<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']"
|
<a tal:omit-tag="python:not getattr(item, 'showLinks', True) or not value['url']"
|
||||||
tal:attributes="href value/url"
|
tal:attributes="href value/url"
|
||||||
tal:content="value/title" /></td>
|
tal:content="value/title" />
|
||||||
|
</tal:column>
|
||||||
</metal:target>
|
</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">
|
<div metal:define-macro="subreport">
|
||||||
<td>
|
<tal:column>
|
||||||
<table class="subreport"
|
<table class="subreport"
|
||||||
tal:define="results python:col.getValue(row)">
|
tal:define="results python:col.getValue(row)">
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -72,18 +85,18 @@
|
||||||
i18n:translate="" />
|
i18n:translate="" />
|
||||||
</tr>
|
</tr>
|
||||||
<tr tal:repeat="row results">
|
<tr tal:repeat="row results">
|
||||||
<tal:column repeat="col results/displayedColumns">
|
<td tal:repeat="col results/displayedColumns">
|
||||||
<metal:column use-macro="python:view.getColumnRenderer(col.renderer)" />
|
<metal:column use-macro="python:view.getColumnRenderer(col)" />
|
||||||
</tal:column>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr tal:define="row nocall:results/totals"
|
<tr tal:define="row nocall:results/totals"
|
||||||
tal:condition="nocall:row">
|
tal:condition="nocall:row">
|
||||||
<tal:column repeat="col results/displayedColumns">
|
<td tal:repeat="col results/displayedColumns">
|
||||||
<metal:column use-macro="python:view.getColumnRenderer(col.renderer)" />
|
<metal:column use-macro="python:view.getColumnRenderer(col)" />
|
||||||
</tal:column>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</td>
|
</tal:column>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -56,7 +56,7 @@ class DecimalField(Field):
|
||||||
|
|
||||||
format = 'decimal'
|
format = 'decimal'
|
||||||
pattern = u'#,##0.00;-#,##0.00'
|
pattern = u'#,##0.00;-#,##0.00'
|
||||||
renderer = 'right'
|
cssClass = 'number'
|
||||||
|
|
||||||
def getDisplayValue(self, row):
|
def getDisplayValue(self, row):
|
||||||
value = self.getRawValue(row)
|
value = self.getRawValue(row)
|
||||||
|
@ -76,6 +76,7 @@ class DecimalField(Field):
|
||||||
class DateField(Field):
|
class DateField(Field):
|
||||||
|
|
||||||
format = ('date', 'short')
|
format = ('date', 'short')
|
||||||
|
cssClass = 'center'
|
||||||
|
|
||||||
def getDisplayValue(self, row):
|
def getDisplayValue(self, row):
|
||||||
value = self.getRawValue(row)
|
value = self.getRawValue(row)
|
||||||
|
|
Loading…
Add table
Reference in a new issue