openerp-dev-web team mailing list archive
-
openerp-dev-web team
-
Mailing list archive
-
Message #07336
[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: