← Back to team overview

openerp-dev-web team mailing list archive

[Merge] lp:~openerp-dev/openobject-server/trunk-bug-516966-ysa into lp:openobject-server

 

Yogesh(Open ERP) has proposed merging lp:~openerp-dev/openobject-server/trunk-bug-516966-ysa into lp:openobject-server.

Requested reviews:
  Naresh(OpenERP) (nch-openerp)
Related bugs:
  Bug #516966 in OpenERP Server: "report_sxw: wrong pageCount and pageNumber when attachments are not kept"
  https://bugs.launchpad.net/openobject-server/+bug/516966

For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-server/trunk-bug-516966-ysa/+merge/62127

fix problem of <pageCount/> tag in rml file.
-- 
https://code.launchpad.net/~openerp-dev/openobject-server/trunk-bug-516966-ysa/+merge/62127
Your team OpenERP R&D Team is subscribed to branch lp:~openerp-dev/openobject-server/trunk-bug-516966-ysa.
=== modified file 'openerp/report/render/rml2pdf/trml2pdf.py'
--- openerp/report/render/rml2pdf/trml2pdf.py	2011-05-06 09:39:20 +0000
+++ openerp/report/render/rml2pdf/trml2pdf.py	2011-05-24 13:33:29 +0000
@@ -118,7 +118,7 @@
     def draw(self):
         self.canv.beginForm("pageCount")
         self.canv.setFont("Helvetica", utils.unit_get(str(8)))
-        self.canv.drawString(0, 0, str(self.canv.getPageNumber()))
+        self.canv.drawString(0, 0, str(self.canv._pageCount))
         self.canv.endForm()
 
 class PageReset(platypus.Flowable):

=== modified file 'openerp/report/report_sxw.py'
--- openerp/report/report_sxw.py	2011-05-09 08:46:41 +0000
+++ openerp/report/report_sxw.py	2011-05-24 13:33:29 +0000
@@ -445,9 +445,9 @@
             context={}
         pool = pooler.get_pool(cr.dbname)
         attach = report_xml.attachment
+        results = []
         if attach:
             objs = self.getObjects(cr, uid, ids, context)
-            results = []
             for obj in objs:
                 aname = eval(attach, {'object':obj, 'time':time})
                 result = False
@@ -478,18 +478,23 @@
                         #TODO: should probably raise a proper osv_except instead, shouldn't we? see LP bug #325632
                         logging.getLogger('report').error('Could not create saved report attachment', exc_info=True)
                 results.append(result)
-            if results:
-                if results[0][1]=='pdf':
-                    from pyPdf import PdfFileWriter, PdfFileReader
-                    output = PdfFileWriter()
-                    for r in results:
-                        reader = PdfFileReader(cStringIO.StringIO(r[0]))
-                        for page in range(reader.getNumPages()):
-                            output.addPage(reader.getPage(page))
-                    s = cStringIO.StringIO()
-                    output.write(s)
-                    return s.getvalue(), results[0][1]
-        return self.create_single_pdf(cr, uid, ids, data, report_xml, context)
+        else:
+            for id in ids:
+                result = self.create_single_pdf(cr, uid, [id], data, report_xml, context)
+                if not result:
+                    return False
+                results.append(result)
+        if results:
+            if results[0][1]=='pdf':
+                from pyPdf import PdfFileWriter, PdfFileReader
+                output = PdfFileWriter()
+                for r in results:
+                    reader = PdfFileReader(cStringIO.StringIO(r[0]))
+                    for page in range(reader.getNumPages()):
+                        output.addPage(reader.getPage(page))
+                s = cStringIO.StringIO()
+                output.write(s)
+                return s.getvalue(), results[0][1]
 
     def create_single_pdf(self, cr, uid, ids, data, report_xml, context=None):
         if not context: