[Erp5-report] r31211 fabien - /erp5/trunk/products/ERP5OOo/FormPrintout.py

nobody at svn.erp5.org nobody at svn.erp5.org
Thu Dec 10 10:46:14 CET 2009


Author: fabien
Date: Thu Dec 10 10:46:11 2009
New Revision: 31211

URL: http://svn.erp5.org?rev=31211&view=rev
Log:
small optimisation :
- remove unused _renderField method
- improve ODGStrategy._replaceXmlByForm

Modified:
    erp5/trunk/products/ERP5OOo/FormPrintout.py

Modified: erp5/trunk/products/ERP5OOo/FormPrintout.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/FormPrintout.py?rev=31211&r1=31210&r2=31211&view=diff
==============================================================================
--- erp5/trunk/products/ERP5OOo/FormPrintout.py [utf8] (original)
+++ erp5/trunk/products/ERP5OOo/FormPrintout.py [utf8] Thu Dec 10 10:46:11 2009
@@ -871,11 +871,6 @@
     self._replaceNodeViaPointReference(element_tree, field)
     self._replaceNodeViaFormName(element_tree, field)
 
-  def _renderField(self, field):
-    # XXX It looks ugly to use render_pdf to extract text. Probably
-    # it should be renamed to render_text.
-    return field.render_pdf(field.get_value('default'))
-
   def _replaceNodeViaPointReference(self, element_tree, field, iteration_index=0):
     """Replace text node via an ODF point reference.
 
@@ -952,17 +947,15 @@
 class ODGStrategy(ODFStrategy):
   """ODGStrategy create a ODG Document from a form and a ODG template"""
 
-  def _replaceXmlByForm(self, element_tree, form, here, extra_context, ooo_builder, iteration_index=0):
+  def _replaceXmlByForm(self, element_tree, form, here, extra_context,
+                        ooo_builder, iteration_index=0):
 
     field_list = form.get_fields(include_disabled=1)
-    REQUEST = here.REQUEST
     for (count, field) in enumerate(field_list):
       text_xpath = '//draw:frame[@draw:name="%s"]/*' % field.id
       node_list = element_tree.xpath(text_xpath, namespaces=element_tree.nsmap)
-      if not node_list:
-        continue
-
-      new_node = field.widget.render_odg(field, as_string=False)#XXXrender_odg should be called on field, not on widget
-      for node in node_list:
-        parent_node = node.getparent().replace(node, new_node)
-
+      for target_node in node_list:
+        attr_dict = {}
+        attr_dict.update(target_node.attrib)
+        new_node = field.render_odt(attr_dict=attr_dict)
+        parent_node = target_node.getparent().replace(target_node, new_node)




More information about the Erp5-report mailing list