diff --git a/addons/mass_mailing/controllers/main.py b/addons/mass_mailing/controllers/main.py index 325ac1447d67b..3e97435940eda 100644 --- a/addons/mass_mailing/controllers/main.py +++ b/addons/mass_mailing/controllers/main.py @@ -37,7 +37,8 @@ def mailing(self, mailing_id, email=None, res_id=None, **post): elif 'email' in model._fields: email_fname = 'email' if email_fname: - record_ids = model.search(cr, SUPERUSER_ID, [('id', '=', res_id), (email_fname, 'ilike', email)], context=context) + ctx = dict(context or {}, active_test=False) + record_ids = model.search(cr, SUPERUSER_ID, [('id', '=', res_id), (email_fname, 'ilike', email)], context=ctx) if 'opt_out' in model._fields: model.write(cr, SUPERUSER_ID, record_ids, {'opt_out': True}, context=context) return 'OK' diff --git a/addons/report/models/report.py b/addons/report/models/report.py index 2ee6f15f241e6..31181f7bc4059 100644 --- a/addons/report/models/report.py +++ b/addons/report/models/report.py @@ -563,19 +563,23 @@ def _merge_pdf(self, documents): """ writer = PdfFileWriter() streams = [] # We have to close the streams *after* PdfFilWriter's call to write() - for document in documents: - pdfreport = file(document, 'rb') - streams.append(pdfreport) - reader = PdfFileReader(pdfreport) - for page in range(0, reader.getNumPages()): - writer.addPage(reader.getPage(page)) - - merged_file_fd, merged_file_path = tempfile.mkstemp(suffix='.html', prefix='report.merged.tmp.') - with closing(os.fdopen(merged_file_fd, 'w')) as merged_file: - writer.write(merged_file) - - for stream in streams: - stream.close() + try: + for document in documents: + pdfreport = file(document, 'rb') + streams.append(pdfreport) + reader = PdfFileReader(pdfreport) + for page in range(0, reader.getNumPages()): + writer.addPage(reader.getPage(page)) + + merged_file_fd, merged_file_path = tempfile.mkstemp(suffix='.pdf', prefix='report.merged.tmp.') + with closing(os.fdopen(merged_file_fd, 'w')) as merged_file: + writer.write(merged_file) + finally: + for stream in streams: + try: + stream.close() + except Exception: + pass return merged_file_path