[Erp5-report] r34320 daniele - /erp5/trunk/bt5/erp5_ods_style/SkinTemplateItem/portal_skins...
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed Apr 7 12:10:43 CEST 2010
Author: daniele
Date: Wed Apr 7 12:10:42 2010
New Revision: 34320
URL: http://svn.erp5.org?rev=34320&view=rev
Log:
Add the display of listbox and matrix with their title into all group (left, right, center, bottom)
Modified:
erp5/trunk/bt5/erp5_ods_style/SkinTemplateItem/portal_skins/erp5_ods_style/field_ods_macro.xml
erp5/trunk/bt5/erp5_ods_style/SkinTemplateItem/portal_skins/erp5_ods_style/form_view.xml
Modified: erp5/trunk/bt5/erp5_ods_style/SkinTemplateItem/portal_skins/erp5_ods_style/field_ods_macro.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_ods_style/SkinTemplateItem/portal_skins/erp5_ods_style/field_ods_macro.xml?rev=34320&r1=34319&r2=34320&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_ods_style/SkinTemplateItem/portal_skins/erp5_ods_style/field_ods_macro.xml [utf8] (original)
+++ erp5/trunk/bt5/erp5_ods_style/SkinTemplateItem/portal_skins/erp5_ods_style/field_ods_macro.xml [utf8] Wed Apr 7 12:10:42 2010
@@ -40,38 +40,98 @@
<value> <string encoding="cdata"><![CDATA[
<tal:block xmlns:draw=\'urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\' xmlns:office=\'urn:oasis:names:tc:opendocument:xmlns:office:1.0\' xmlns:text=\'urn:oasis:names:tc:opendocument:xmlns:text:1.0\' xmlns:ooo=\'http://openoffice.org/2004/office\' xmlns:number=\'urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\' xmlns:dc=\'http://purl.org/dc/elements/1.1/\' xmlns:meta=\'urn:oasis:names:tc:opendocument:xmlns:meta:1.0\' xmlns:table=\'urn:oasis:names:tc:opendocument:xmlns:table:1.0\' xmlns:dr3d=\'urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0\' xmlns:fo=\'urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\' xmlns:style=\'urn:oasis:names:tc:opendocument:xmlns:style:1.0\' xmlns:xforms=\'http://www.w3.org/2002/xforms\' xmlns:form=\'urn:oasis:names:tc:opendocument:xmlns:form:1.0\' xmlns:script=\'urn:oasis:names:tc:opendocument:xmlns:script:1.0\' xmlns:ooow=\'http://openoffice.org/2004/writer\' xmlns:svg=\'urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\' xmlns:chart=\'urn:oasis:names:tc:opendocument:xmlns:chart:1.0\' xmlns:dom=\'http://www.w3.org/2001/xml-events\' xmlns:xlink=\'http://www.w3.org/1999/xlink\' xmlns:xsd=\'http://www.w3.org/2001/XMLSchema\' xmlns:xsi=\'http://www.w3.org/2001/XMLSchema-instance\' xmlns:oooc=\'http://openoffice.org/2004/calc\' xmlns:math=\'http://www.w3.org/1998/Math/MathML\' xmlns:tal=\'http://xml.zope.org/namespaces/tal\' xmlns:i18n=\'http://xml.zope.org/namespaces/i18n\' xmlns:metal=\'http://xml.zope.org/namespaces/metal\' office:version=\'1.0\' metal:define-macro="master" tal:attributes=\'dummy python:request.RESPONSE.setHeader("Content-Type", "text/html;; charset=utf-8")\'>\n
-\n
<tal:block metal:use-macro="here/style_macros/macros/style_macro"/>\n
<office:scripts/>\n
-\n
<office:body metal:define-macro="form_layout">\n
<office:spreadsheet>\n
\n
-\n
- <!-- Render the field in the bottom group. `field` must be defined.\n
- The field in the bottom group, can be ListBoxField, MatrixBoxField or a ProxyField to one of thoses.\n
- -->\n
- <tal:block metal:define-macro="bottom_group_field"\n
+ <tal:block metal:define-macro="field_render" \n
tal:define="field_meta_type python: field.meta_type == \'ProxyField\' and field.getRecursiveTemplateField().meta_type or field.meta_type">\n
+ <tal:block tal:condition="python: field_meta_type in (\'MatrixBox\', \'ListBox\')">\n
+ <!-- for Listbox and Matrix add a new line -->\n
+ <table:table-row>\n
+ <table:table-cell table:style-name=\'Default\'/>\n
+ </table:table-row>\n
+ <!-- for Listbox and Matrix, the title is added -->\n
+ <table:table-row table:style-name=\'ro2\'>\n
+ <!-- field title -->\n
+ <table:table-cell table:number-rows-spanned=\'1\'\n
+ table:style-name=\'report-column-title\'\n
+ table:number-columns-spanned=\'1\'\n
+ office:value-type=\'string\'>\n
+ <text:p tal:content="python:here.Localizer.erp5_ui.gettext(field.get_value(\'title\')).encode(\'utf-8\')">\n
+ </text:p>\n
+ </table:table-cell>\n
+ </table:table-row>\n
+ </tal:block>\n
+ <!-- Add values -->\n
<tal:block tal:condition="python: field_meta_type == \'MatrixBox\'">\n
<tal:block tal:define="matrixbox python:field;">\n
<tal:block metal:use-macro="here/matrixbox_ods_macro/macros/matrixbox" />\n
</tal:block>\n
</tal:block>\n
<tal:block tal:condition="python: field_meta_type == \'ListBox\'">\n
- <tal:block tal:define="listbox python:field;" >\n
+ <tal:block tal:define="listbox python:field;">\n
<tal:block metal:use-macro="here/listbox_ods_macro/macros/listbox" />\n
</tal:block>\n
</tal:block>\n
- <tal:block tal:condition="python: field_meta_type not in (\'ListBox\', \'MatrixBox\', \'OOoChart\')">\n
- <tal:block tal:define="warning_log python: context.log(\'field_ods_macro ignored field:%s\' % field)"/>\n
- <table:table-row table:style-name="ro2">\n
- <table:table-cell/>\n
- </table:table-row>\n
+ <!-- Add the title and the value for standard fields -->\n
+ <tal:block tal:condition="python: field_meta_type not in (\'MatrixBox\', \'ListBox\')">\n
+ <tal:block tal:define="field python:field;">\n
+ <tal:block metal:use-macro="here/field_ods_macro/macros/standard_field_value" />\n
+ </tal:block>\n
</tal:block>\n
</tal:block>\n
\n
-\n
+ <!-- Render a value for the field which is not a Listbox / MatrixBox -->\n
+ <tal:block metal:define-macro="standard_field_value">\n
+ <table:table-row table:style-name=\'ro2\'>\n
+ <tal:block tal:condition="python:group != \'bottom\'">\n
+ <!-- field title -->\n
+ <table:table-cell table:number-rows-spanned=\'1\'\n
+ table:style-name=\'report-column-title\'\n
+ table:number-columns-spanned=\'1\'\n
+ office:value-type=\'string\'>\n
+ <text:p tal:content="python:here.Localizer.erp5_ui.gettext(field.get_value(\'title\')).encode(\'utf-8\')">\n
+ </text:p>\n
+ </table:table-cell>\n
+ </tal:block>\n
+\n
+ <!-- field value -->\n
+ <tal:block tal:define="item_list python:field.has_value(\'items\') and field.get_value(\'items\') or None"\n
+ tal:condition="python: field.get_value(\'title\')">\n
+ <!-- if the group bottom there isn\'t a title -->\n
+ <table:table-cell table:number-rows-spanned=\'1\'\n
+ table:style-name=\'report-content-heading2-with-lines\'\n
+ tal:attributes="table:number-columns-spanned python:group == \'bottom\' and column_len or column_len-1"\n
+ office:value-type=\'string\'\n
+ tal:define="value python: field.get_value(\'default\')">\n
+ <tal:block tal:condition="python: same_type(value, []) or same_type(value, ())">\n
+ <tal:block tal:repeat="item value">\n
+ <text:p tal:condition="not:item_list" tal:content="item"></text:p>\n
+ <text:p tal:condition="item_list" tal:content="python: [i[0] for i in item_list if i[1] == item][0]"></text:p>\n
+ </tal:block>\n
+ </tal:block>\n
+ <tal:block tal:condition="python: (not (same_type(value, []) or same_type(value, ()))) and value is not None">\n
+ <text:p tal:condition="not: item_list" tal:content="value">\n
+ </text:p>\n
+ <tal:block tal:condition="python: value != \'\'">\n
+ <tal:block tal:condition="item_list">\n
+ <tal:block tal:define="displayed_value_list python: [str(i[0]).replace(\'&\', \'\') for i in item_list if i[1] == value]">\n
+ <text:p tal:condition="displayed_value_list" tal:content="python: displayed_value_list[0]" />\n
+ <text:p tal:condition="not: displayed_value_list" tal:content="python: value" />\n
+ </tal:block>\n
+ </tal:block>\n
+ </tal:block>\n
+ <tal:block tal:condition="python: value is None">\n
+ <text:p table:style="Default" tal:content="python: \' \'" />\n
+ </tal:block>\n
+ </tal:block>\n
+ </table:table-cell>\n
+ </tal:block>\n
+ </table:table-row>\n
+ </tal:block>\n
+ \n
<!-- Render a value for a field in a Listbox / MatrixBox. `value` must be defined,\n
`field` is optional and is only defined when we have an editable field for this column or cell.\n
-->\n
Modified: erp5/trunk/bt5/erp5_ods_style/SkinTemplateItem/portal_skins/erp5_ods_style/form_view.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_ods_style/SkinTemplateItem/portal_skins/erp5_ods_style/form_view.xml?rev=34320&r1=34319&r2=34320&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_ods_style/SkinTemplateItem/portal_skins/erp5_ods_style/form_view.xml [utf8] (original)
+++ erp5/trunk/bt5/erp5_ods_style/SkinTemplateItem/portal_skins/erp5_ods_style/form_view.xml [utf8] Wed Apr 7 12:10:42 2010
@@ -61,145 +61,79 @@
table:style-name=\'co2\'\n
table:default-cell-style-name=\'report-column-title\'/>\n
\n
+ <!-- macro form_layout -->\n
<tal:block metal:define-macro="form_layout">\n
-\n
- <!-- if we have other fields to display, calculate max column len, which will be used later to make standard fields (ie. not listbox) using covered cells -->\n
- <tal:block tal:condition="python: len(form.get_fields()) > 1">\n
- <tal:block tal:condition="report_item | nothing">\n
- <tal:block tal:define="global column_len python: report_item.selection_columns and len(report_item.selection_columns) or 0;"/>\n
- </tal:block>\n
- <tal:block>\n
- <tal:block tal:condition="not: column_len | nothing"\n
- tal:define="field_list python:form.get_fields_in_group(\'bottom\')"> \n
- <tal:block tal:define="global column_len python: 5"/>\n
- <!-- This default is used for the ERP5 Report itself, which often does not contain a listbox directly -->\n
- <tal:block tal:condition=\'field_list\'>\n
- <tal:block tal:define="field python:field_list[0]">\n
- <tal:block tal:condition="python:field.meta_type == \'ListBox\' or (field.meta_type == \'ProxyField\' and field.getRecursiveTemplateField().meta_type == \'ListBox\')">\n
- <tal:block tal:define="column_list python: field.get_value(\'columns\');\n
- global column_len python: len(column_list)" />\n
+ <tal:block tal:define="global group_list python:form.get_groups()"/>\n
+ <!-- Use the user preferences -->\n
+ <tal:block tal:repeat="group python: [g for g in group_list if g not in (\'hidden\', )]">\n
+ <tal:block tal:define="field_list python: form.get_fields_in_group(group)">\n
+ <tal:block tal:condition="python: field_list not in [None, []]">\n
+ <tal:block tal:repeat="field field_list">\n
+ <tal:block tal:condition="python:field.meta_type != \'HiddenStringField\'\n
+ and field.meta_type == \'OOoChart\' or (field.meta_type == \'ProxyField\' and field.getRecursiveTemplateField().meta_type == \'OOoChart\')">\n
+ <table:table-row table:style-name=\'ro2\'>\n
+ <table:table-cell table:number-rows-spanned=\'1\'\n
+ table:style-name=\'report-column-title\'\n
+ table:number-columns-spanned=\'1\'\n
+ office:value-type=\'string\'>\n
+ <text:p tal:content="python:here.Localizer.erp5_ui.gettext(field.get_value (\'title\')).encode(\'utf-8\')">\n
+ </text:p>\n
+ </table:table-cell>\n
+ <tal:block tal:define="display python: field.get_value(\'image_display\') "\n
+ tal:condition="display">\n
+ <tal:block tal:define="preferred_method_height_id python: \'getPreferred%sImageHeight\' % (display.capitalize());\n
+ preferred_method_width_id python: \'getPreferred%sImageWidth\'\n
+ % (display.capitalize());\n
+ " >\n
+ <tal:block tal:define="global height python:\'%scm\' % (int((getattr(here.portal_preferences, preferred_method_height_id)())) * 0.020) ;\n
+ global width python: \'%scm\' % (int((getattr(here.portal_preferences, preferred_method_width_id)())) * 0.020 );"/>\n
+ </tal:block>\n
+ </tal:block>\n
+ <table:table-cell>\n
+ <draw:frame draw:z-index="0" draw:style-name="gr1" svg:x="0.2cm" svg:y="0.2cm" svg:width="7.996cm" svg:height="6.999cm"\n
+ tal:attributes="svg:height python:height;\n
+ svg:width python:width">\n
+ <tal:block tal:replace="structure python: field.render_odf(render_prefix=render_prefix)"/>\n
+ </draw:frame>\n
+ </table:table-cell>\n
+ </table:table-row>\n
+ </tal:block>\n
+ </tal:block>\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
- </tal:block>\n
- </tal:block>\n
- </tal:block>\n
\n
- <tal:block tal:define="dummy python: request.set(\'here\', here)">\n
- <tal:block tal:repeat="group python: [g for g in form.get_groups() if g not in (\'bottom\', \'hidden\')]">\n
- <tal:block tal:define="field_list python: form.get_fields_in_group(group)">\n
- <tal:block tal:condition="python: field_list not in [None, []]">\n
- <tal:block tal:repeat="field field_list">\n
- <tal:block tal:condition="python:field.meta_type != \'HiddenStringField\' and field.meta_type != \'OOoChart\'">\n
- <table:table-row table:style-name=\'ro2\'>\n
-\n
- <!-- field title -->\n
- <table:table-cell table:number-rows-spanned=\'1\'\n
- table:style-name=\'report-column-title\'\n
- table:number-columns-spanned=\'1\'\n
- office:value-type=\'string\'>\n
- <text:p tal:content="python:here.Localizer.erp5_ui.gettext(field.get_value (\'title\')).encode(\'utf-8\')">\n
- </text:p>\n
- </table:table-cell>\n
-\n
- <!-- field value -->\n
- <tal:block tal:define="item_list python:field.has_value(\'items\') and field.get_value(\'items\') or None"\n
- tal:condition="python: field.get_value(\'title\')">\n
- <table:table-cell table:number-rows-spanned=\'1\'\n
- table:style-name=\'report-content-heading2-with-lines\'\n
- tal:attributes="table:number-columns-spanned python: column_len-1"\n
- office:value-type=\'string\'\n
- tal:define="value python: field.get_value(\'default\')">\n
-\n
- <tal:block tal:condition="python: same_type(value, []) or same_type(value, ())">\n
- <tal:block tal:repeat="item value">\n
- <text:p tal:condition="not:item_list" tal:content="item"></text:p>\n
- <text:p tal:condition="item_list" tal:content="python: [i[0] for i in item_list if i[1] == item][0]"\n
- tal:on-error="item"></text:p>\n
- </tal:block>\n
- </tal:block>\n
-\n
- <tal:block tal:condition="python: (not (same_type(value, []) or same_type(value, ()))) and value is not None">\n
- <text:p tal:condition="not: item_list"\n
- tal:content="value">\n
- </text:p>\n
- <tal:block tal:condition="python: value != \'\'">\n
- <tal:block tal:condition="item_list">\n
- <tal:block tal:define="displayed_value_list python: [str(i[0]).replace(\'&\', \'\') for i in item_list if i[1] == value]">\n
- <text:p tal:condition="displayed_value_list"\n
- tal:content="python: displayed_value_list[0]" />\n
- <text:p tal:condition="not: displayed_value_list"\n
- tal:content="python: value" />\n
- </tal:block>\n
- </tal:block>\n
- </tal:block>\n
- <tal:block tal:condition="python: value is None">\n
- <text:p table:style="Default" tal:content="python: \' \'" />\n
- </tal:block>\n
- </tal:block>\n
- </table:table-cell>\n
- </tal:block>\n
- </table:table-row>\n
+ <!-- Calculating by group the max length of columns to merge -->\n
+ <tal:block tal:repeat="group python: [g for g in group_list if g not in (\'hidden\', )]">\n
+ <!-- if we have other fields to display, calculate max column len, which will be used \n
+ later to make standard fields (ie. not listbox) using covered cells -->\n
+ <tal:block tal:define="global field_list python: form.get_fields_in_group(group)"/>\n
+ <tal:block tal:condition="python:len(field_list) > 0">\n
+ <tal:block tal:define="global column_len python: 5"/>\n
+ <tal:block tal:condition="report_item | nothing">\n
+ <tal:block tal:define="global column_len python: report_item.selection_columns and len(report_item.selection_columns) or 0;"/>\n
+ </tal:block>\n
+ <tal:block tal:condition="python: column_len < 6">\n
+ <tal:block tal:repeat="field python:field_list">\n
+ <tal:block tal:condition="python:field.meta_type == \'ListBox\' or (field.meta_type == \'ProxyField\' and field.getRecursiveTemplateField().meta_type == \'ListBox\')">\n
+ <tal:block tal:define="column_list python: field.get_value(\'columns\');\n
+ global column_len python: max(column_len, len(column_list))" />\n
</tal:block>\n
</tal:block>\n
-\n
- <table:table-row>\n
- <table:table-cell table:style-name=\'Default\'/>\n
- </table:table-row>\n
-\n
+ </tal:block>\n
+ <!-- Display field -->\n
+ <tal:block tal:repeat="field python:field_list">\n
+ <tal:block metal:use-macro="form/field_ods_macro/macros/field_render" />\n
</tal:block>\n
</tal:block>\n
- </tal:block>\n
- <tal:block tal:define="field_list python:form.get_fields_in_group(\'bottom\')">\n
- <tal:block tal:repeat="field field_list">\n
- <tal:block metal:use-macro="here/field_ods_macro/macros/bottom_group_field" />\n
- </tal:block>\n
+ <table:table-row>\n
+ <table:table-cell table:style-name=\'Default\'/>\n
+ </table:table-row>\n
</tal:block>\n
</tal:block>\n
- </tal:block>\n
-\n
- <tal:block tal:repeat="group python: [g for g in form.get_groups() if g not in (\'hidden\', )]">\n
- <tal:block tal:define="field_list python: form.get_fields_in_group(group)">\n
- <tal:block tal:condition="python: field_list not in [None, []]">\n
-\n
- <tal:block tal:repeat="field field_list">\n
- <tal:block tal:condition="python:field.meta_type != \'HiddenStringField\'\n
- and field.meta_type == \'OOoChart\' or (field.meta_type == \'ProxyField\' and field.getRecursiveTemplateField().meta_type == \'OOoChart\')">\n
- <table:table-row table:style-name=\'ro2\'>\n
-\n
- <table:table-cell table:number-rows-spanned=\'1\'\n
- table:style-name=\'report-column-title\'\n
- table:number-columns-spanned=\'1\'\n
- office:value-type=\'string\'>\n
- <text:p tal:content="python:here.Localizer.erp5_ui.gettext(field.get_value (\'title\')).encode(\'utf-8\')">\n
- </text:p>\n
- </table:table-cell>\n
- <tal:block tal:define="display python: field.get_value(\'image_display\') "\n
- tal:condition="display">\n
- <tal:block tal:define="preferred_method_height_id python: \'getPreferred%sImageHeight\' % (display.capitalize());\n
- preferred_method_width_id python: \'getPreferred%sImageWidth\'\n
- % (display.capitalize());\n
- " >\n
- <tal:block tal:define="global height python:\'%scm\' % (int((getattr(here.portal_preferences, preferred_method_height_id)())) * 0.020) ;\n
- global width python: \'%scm\' % (int((getattr(here.portal_preferences, preferred_method_width_id)())) * 0.020 );"/>\n
- </tal:block>\n
- </tal:block>\n
- <table:table-cell>\n
- <draw:frame draw:z-index="0" draw:style-name="gr1" svg:x="0.2cm" svg:y="0.2cm" svg:width="7.996cm" svg:height="6.999cm"\n
- tal:attributes="svg:height python:height;\n
- svg:width python:width">\n
- <tal:block tal:replace="structure python: field.render_odf(render_prefix=render_prefix)"/>\n
- </draw:frame>\n
- </table:table-cell>\n
- </table:table-row>\n
- </tal:block>\n
- </tal:block>\n
- </tal:block>\n
- </tal:block>\n
- </tal:block>\n
- </table:table>\n
-</office:spreadsheet>\n
-</office:body>\n
+ </table:table>\n
+ </office:spreadsheet>\n
+ </office:body>\n
</office:document-content>\n
More information about the Erp5-report
mailing list