[Erp5-report] r18427 - in /erp5/trunk/bt5/erp5_ods_style: SkinTemplateItem/portal_skins/erp...

nobody at svn.erp5.org nobody at svn.erp5.org
Wed Dec 19 17:12:25 CET 2007


Author: jerome
Date: Wed Dec 19 17:12:24 2007
New Revision: 18427

URL: http://svn.erp5.org?rev=18427&view=rev
Log:
Make a macro for field value rendering code, for now only used in listbox macro, but could also be used for standard fields

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
    erp5/trunk/bt5/erp5_ods_style/SkinTemplateItem/portal_skins/erp5_ods_style/listbox_ods_macro.xml
    erp5/trunk/bt5/erp5_ods_style/SkinTemplateItem/portal_skins/erp5_ods_style/report_view.xml
    erp5/trunk/bt5/erp5_ods_style/bt/revision

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=18427&r1=18426&r2=18427&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_ods_style/SkinTemplateItem/portal_skins/erp5_ods_style/field_ods_macro.xml (original)
+++ erp5/trunk/bt5/erp5_ods_style/SkinTemplateItem/portal_skins/erp5_ods_style/field_ods_macro.xml Wed Dec 19 17:12:24 2007
@@ -52,20 +52,99 @@
 \n
 <office:body metal:define-macro="form_layout">\n
   <office:spreadsheet>\n
-    <tal:block metal:define-macro="field">\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 tal:condition="python: field.meta_type == \'MatrixBox\' or (field.meta_type == \'ProxyField\' and field.getRecursiveTemplateField().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
-\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="listbox python:field;" >\n
           <tal:block metal:use-macro="here/listbox_ods_macro/macros/listbox" />\n
         </tal:block>\n
       </tal:block>\n
     </tal:block>\n
+\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
+    <tal:block metal:define-macro="cell_value">\n
+      <tal:block  tal:define="is_list python:same_type(value, []) or same_type(value, ());\n
+                              is_float python: isinstance(value, (int, long, float));">\n
+\n
+\n
+        <tal:block tal:condition="python: is_list">\n
+          <table:table-cell tal:define="field python: editable_fields.get(column_id, None)"\n
+                            tal:attributes="table:style-name python:is_float and \'figure\' or \'text\'">\n
+            <text:p tal:condition="python: field is None" \n
+                    tal:content="python: value">\n
+            </text:p>\n
+            <text:p tal:condition="python: field is not None"\n
+                    tal:content="python: field.render_pdf(value)">\n
+            </text:p>\n
+          </table:table-cell>\n
+        </tal:block>\n
+        <tal:block tal:condition="python: value is not None and not is_list">\n
+          <tal:block tal:condition="is_float">\n
+           <table:table-cell tal:define="field python: editable_fields.get(column_id, None)"\n
+                             tal:attributes="office:value value;\n
+                                             table:style-name string:${style_prefix}figure"\n
+                             office:value-type="float"\n
+                             table:style-name="figure">\n
+            <text:p tal:condition="python: field is None"\n
+                    tal:content="python: value"/>\n
+            <text:p tal:condition="python: field is not None"\n
+                    tal:content="python: field.render_pdf(value)">\n
+            </text:p>\n
+           </table:table-cell>\n
+          </tal:block>\n
+          <tal:block tal:condition="not: is_float">\n
+            <tal:block tal:condition="python: isinstance(value, DateTime)">\n
+             <table:table-cell tal:define="field python: editable_fields.get(column_id, None);"\n
+                               tal:attributes="office:date-value python: value.strftime(\'%Y-%m-%dT%H:%M:%S\');\n
+                                               table:style-name string:${style_prefix}date"\n
+                               table:style-name="date"\n
+                               office:value-type="date">\n
+\n
+              <text:p tal:condition="python: field is None"\n
+                      tal:content="python: value"/>\n
+              <text:p tal:condition="python: field is not None"\n
+                      tal:content="python: field.render_pdf(value)">\n
+              </text:p>\n
+             </table:table-cell>\n
+            </tal:block>\n
+            <tal:block tal:condition="python:not isinstance(value, DateTime)">\n
+             <table:table-cell tal:define="field python: editable_fields.get(column_id, None)"\n
+                               tal:attributes="table:style-name string:${style_prefix}text"\n
+                               table:style-name="text">\n
+              <text:p tal:condition="python: field is None"\n
+                      tal:content="python: value"/>\n
+              <text:p tal:condition="python: field is not None"\n
+                      tal:content="python: field.render_pdf(value)">\n
+              </text:p>\n
+             </table:table-cell>\n
+            </tal:block>\n
+          </tal:block>\n
+        </tal:block>\n
+        <tal:block tal:condition="python: value is None">\n
+          <table:table-cell office:value-type=\'string\'\n
+                            tal:attributes="table:style-name string:${style_prefix}text"\n
+                            table:style-name=\'text\'\n
+                            table:number-columns-spanned=\'1\'>\n
+            <text:p tal:content="python: \'\'">\n
+            </text:p>\n
+          </table:table-cell>\n
+        </tal:block>\n
+\n
+      </tal:block>\n
+    </tal:block>\n
+\n
   </office:spreadsheet>\n
 </office:body>\n
 </tal:block>\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=18427&r1=18426&r2=18427&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_ods_style/SkinTemplateItem/portal_skins/erp5_ods_style/form_view.xml (original)
+++ erp5/trunk/bt5/erp5_ods_style/SkinTemplateItem/portal_skins/erp5_ods_style/form_view.xml Wed Dec 19 17:12:24 2007
@@ -141,7 +141,7 @@
         </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/field" />\n
+            <tal:block metal:use-macro="here/field_ods_macro/macros/bottom_group_field" />\n
           </tal:block>\n
         </tal:block>\n
       </tal:block>\n

Modified: erp5/trunk/bt5/erp5_ods_style/SkinTemplateItem/portal_skins/erp5_ods_style/listbox_ods_macro.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_ods_style/SkinTemplateItem/portal_skins/erp5_ods_style/listbox_ods_macro.xml?rev=18427&r1=18426&r2=18427&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_ods_style/SkinTemplateItem/portal_skins/erp5_ods_style/listbox_ods_macro.xml (original)
+++ erp5/trunk/bt5/erp5_ods_style/SkinTemplateItem/portal_skins/erp5_ods_style/listbox_ods_macro.xml Wed Dec 19 17:12:24 2007
@@ -48,8 +48,7 @@
 <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\'\n
           xmlns:i18n=\'http://xml.zope.org/namespaces/i18n\'\n
           xmlns:metal=\'http://xml.zope.org/namespaces/metal\'\n
-          tal:attributes=\'dummy python:request.RESPONSE.setHeader("Content-Type", "text/html;;\n
-          charset=utf-8")\'\n
+          tal:attributes=\'dummy python:request.RESPONSE.setHeader("Content-Type", "text/html;; charset=utf-8")\'\n
           office:version=\'1.0\' metal:define-macro="master">\n
   <tal:block metal:use-macro="here/style_macros/macros/style_macro"/>\n
   <office:scripts/>\n
@@ -79,20 +78,24 @@
             </tal:block>\n
           </tal:block>\n
           <tal:block tal:repeat="listboxline python: listboxline_list">\n
-            <tal:block metal:define-slot="for_form_list" tal:condition="listboxline/isTitleLine | is_report_tree_mode">\n
+            <tal:block metal:define-slot="for_form_list"\n
+                       tal:condition="listboxline/isTitleLine | is_report_tree_mode">\n
               <tal:block metal:define-slot="list_header">\n
                 <table:table-row table:style-name=\'ro4\'>\n
                   <tal:block tal:condition="python: is_report_tree_mode">\n
-                    <table:table-cell table:style-name=\'report-column-title\' table:number-columns-spanned=\'1\' office:value-type=\'string\'>\n
+                    <table:table-cell table:style-name=\'report-column-title\'\n
+                                      table:number-columns-spanned=\'1\'\n
+                                      office:value-type=\'string\'>\n
                       <tal:block tal:condition="listboxline/getSectionName">\n
-                        <text:p  tal:content="listboxline/getSectionName"/>\n
+                        <text:p tal:content="listboxline/getSectionName"/>\n
                       </tal:block>\n
                     </table:table-cell>\n
                   </tal:block>\n
 \n
                   <tal:block tal:condition="listboxline/isTitleLine">\n
                     <tal:block tal:repeat="column_item listboxline/getColumnItemList">\n
-                      <tal:block tal:define="column_property python: column_item[1]; column_id python: column_item[0]">\n
+                      <tal:block tal:define="column_property python: column_item[1];\n
+                                             column_id python: column_item[0]">\n
                         <table:table-cell table:number-rows-spanned=\'1\' \n
                                           table:style-name=\'report-column-title\'\n
                                           table:number-columns-spanned=\'1\'\n
@@ -112,95 +115,31 @@
                 <tal:block tal:condition="python: listboxline.isDataLine() or listboxline.isSummaryLine()">\n
                   <tal:block tal:repeat="column_item listboxline/getColumnItemList">\n
                     <tal:block tal:define="column_property python: column_item[1];\n
+                                           value column_property;\n
                                            column_id python: column_item[0];\n
-                                           is_list python:same_type(column_property, []) or same_type(column_property, ());\n
-                                           is_float python: isinstance(column_property, (int, long, float));">\n
-                      <tal:block tal:condition="python: is_list">\n
-                        <table:table-cell tal:define="field python: editable_fields.get(column_id, None)"\n
-                                          tal:attributes="table:style-name python:is_float and \'report-stat2-sans-bold\' or \'report-content-heading2\'">\n
-                          <text:p tal:condition="python: field is None" tal:content="python: column_property">\n
-                          </text:p>\n
-                          <text:p tal:condition="python: field is not None"\n
-                                  tal:content="python: field.render_pdf(column_property)">\n
-                          </text:p>\n
-                        </table:table-cell>\n
-                      </tal:block>\n
-                      <tal:block tal:condition="python: column_property is not None and not is_list">\n
-                        <tal:block tal:condition="is_float">\n
-                         <table:table-cell tal:define="field python: editable_fields.get(column_id, None)"\n
-                                           tal:attributes="office:value column_property"\n
-                                           office:value-type="float"\n
-                                           table:style-name="figure">\n
-                          <text:p tal:condition="python: field is None"\n
-                                  tal:content="python: column_property"/>\n
-                          <text:p tal:condition="python: field is not None"\n
-                                  tal:content="python: field.render_pdf(column_property)">\n
-                          </text:p>\n
-                         </table:table-cell>\n
-                        </tal:block>\n
-                        <tal:block tal:condition="not: is_float">\n
-                          <tal:block tal:condition="python: isinstance(column_property, DateTime)">\n
-                           <table:table-cell tal:define="field python: editable_fields.get(column_id, None);"\n
-                                             tal:attributes="office:date-value python: column_property.strftime(\'%Y-%m-%dT%H:%M:%S\')"\n
-                                             table:style-name="date"\n
-                                             office:value-type="date">\n
-\n
-                            <text:p tal:condition="python: field is None"\n
-                                    tal:content="python: column_property"/>\n
-                            <text:p tal:condition="python: field is not None"\n
-                                    tal:content="python: field.render_pdf(column_property)">\n
-                            </text:p>\n
-                           </table:table-cell>\n
-                          </tal:block>\n
-                          <tal:block tal:condition="python:not isinstance(column_property, DateTime)">\n
-                           <table:table-cell tal:define="field python: editable_fields.get(column_id, None)"\n
-                                             table:style-name="report-content-heading2">\n
-                            <text:p tal:condition="python: field is None"\n
-                                    tal:content="python: column_property"/>\n
-                            <text:p tal:condition="python: field is not None"\n
-                                    tal:content="python: field.render_pdf(column_property)">\n
-                            </text:p>\n
-                           </table:table-cell>\n
-                          </tal:block>\n
-                        </tal:block>\n
-                      </tal:block>\n
-                      <tal:block tal:condition="python: column_property is None">\n
-                        <table:table-cell office:value-type=\'string\' table:style-name=\'report-content-heading2\' table:number-columns-spanned=\'1\'>\n
-                          <text:p tal:content="python: \'\'">\n
-                          </text:p>\n
-                        </table:table-cell>\n
-                      </tal:block>\n
+                                           style_prefix string:;\n
+                                           field python: editable_fields.get(column_id, None);">\n
+                      <tal:block metal:use-macro="here/field_ods_macro/macros/cell_value"/>\n
                     </tal:block>\n
                   </tal:block>\n
                 </tal:block>\n
+\n
                 <tal:block tal:condition="python: listboxline.isStatLine() or listboxline.isSummaryLine()">\n
                   <tal:block tal:repeat="column_item python: listboxline.getColumnItemList()">\n
                     <tal:block tal:define="column_property python: column_item[1];\n
-                                           column_id python: column_item[0]">\n
-                      <tal:block tal:condition="python: column_property is not None">\n
-                        <!-- TODO: use a macro for field value rendering -->\n
-                        <table:table-cell table:style-name="report-stat2-sans-bold-with-lines"\n
-                                          table:number-columns-spanned=\'1\'\n
-                                          tal:define="field python: editable_fields.get(column_id, None)"> \n
-                          <text:p tal:condition="python: field is None"\n
-                                  tal:content="python: column_property">\n
-                          </text:p>\n
-                          <text:p tal:condition="python: field is not None"\n
-                                  tal:content="python:field.render_pdf(column_property)">\n
-                          </text:p>\n
-                        </table:table-cell>\n
-                      </tal:block>\n
-                      <tal:block tal:condition="python: column_property is None">\n
-                        <table:table-cell table:style-name="report-stat2-sans-bold-with-lines"\n
-                                          table:number-columns-spanned=\'1\' >\n
-                        </table:table-cell>\n
-                      </tal:block>\n
+                                           value column_property;\n
+                                           column_id python: column_item[0];\n
+                                           style_prefix string:stat-;\n
+                                           field python: editable_fields.get(column_id, None);">\n
+                      <tal:block metal:use-macro="here/field_ods_macro/macros/cell_value"/>\n
                     </tal:block>\n
                   </tal:block>\n
                 </tal:block>\n
               </table:table-row>\n
             </tal:block>\n
           </tal:block>\n
+\n
+          \n
           <table:table-row metal:define-slot="table_bottom_line">\n
             <tal:block tal:repeat="listboxline python: listboxline_list">\n
               <tal:block tal:condition="listboxline/isTitleLine">\n

Modified: erp5/trunk/bt5/erp5_ods_style/SkinTemplateItem/portal_skins/erp5_ods_style/report_view.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_ods_style/SkinTemplateItem/portal_skins/erp5_ods_style/report_view.xml?rev=18427&r1=18426&r2=18427&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_ods_style/SkinTemplateItem/portal_skins/erp5_ods_style/report_view.xml (original)
+++ erp5/trunk/bt5/erp5_ods_style/SkinTemplateItem/portal_skins/erp5_ods_style/report_view.xml Wed Dec 19 17:12:24 2007
@@ -62,7 +62,7 @@
                              global column_len python:5">\n
                              <!-- TODO: calculate column_len based on the first listbox (or selection_column if exists)-->\n
 \n
-      <tal:block tal:define="portal_object here/portal_url/getPortalObject"> \n
+      <tal:block tal:define="portal_object here/portal_url/getPortalObject">\n
         <tal:block tal:condition="not: sheet_per_reportsection">\n
           <table:table tal:attributes="table:name python:here.getProperty(\'title\')">\n
           <!-- at least one table-column element is required for ODF to validate -->\n

Modified: erp5/trunk/bt5/erp5_ods_style/bt/revision
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_ods_style/bt/revision?rev=18427&r1=18426&r2=18427&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_ods_style/bt/revision (original)
+++ erp5/trunk/bt5/erp5_ods_style/bt/revision Wed Dec 19 17:12:24 2007
@@ -1,1 +1,1 @@
-106
+108




More information about the Erp5-report mailing list