Browse Source

[MIG] Use safe_eval wrapped time module. Fix deprecation warnings.

Co-authored-by: Alexis de Lattre <alexis.delattre@akretion.com>
14.0-report-py3o-pr-506
Elmeri Niemelä 4 years ago
committed by default
parent
commit
6421d11e2d
  1. 3
      report_py3o/controllers/main.py
  2. 5
      report_py3o/models/ir_actions_report.py
  3. 2
      report_py3o/models/py3o_report.py
  4. 4
      report_py3o/tests/test_report_py3o.py

3
report_py3o/controllers/main.py

@ -3,7 +3,8 @@
import json import json
import mimetypes import mimetypes
from werkzeug import exceptions, url_decode
from werkzeug import exceptions
from werkzeug.urls import url_decode
from odoo.http import request, route from odoo.http import request, route
from odoo.tools import html_escape from odoo.tools import html_escape

5
report_py3o/models/ir_actions_report.py

@ -2,12 +2,11 @@
# Copyright 2018 ACSONE SA/NV # Copyright 2018 ACSONE SA/NV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
import logging import logging
import time
from odoo import _, api, fields, models from odoo import _, api, fields, models
from odoo.exceptions import ValidationError from odoo.exceptions import ValidationError
from odoo.tools.misc import find_in_path from odoo.tools.misc import find_in_path
from odoo.tools.safe_eval import safe_eval
from odoo.tools.safe_eval import safe_eval, time
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@ -180,7 +179,7 @@ class IrActionsReport(models.Model):
report = self.get_from_report_name(self.report_name, self.report_type) report = self.get_from_report_name(self.report_name, self.report_type)
if report.print_report_name and not len(res_ids) > 1: if report.print_report_name and not len(res_ids) > 1:
obj = self.env[self.model].browse(res_ids) obj = self.env[self.model].browse(res_ids)
return safe_eval(report.print_report_name, {"object": obj,})
return safe_eval(report.print_report_name, {"object": obj, "time": time})
return "{}.{}".format(self.name, self.py3o_filetype) return "{}.{}".format(self.name, self.py3o_filetype)
def _get_attachments(self, res_ids): def _get_attachments(self, res_ids):

2
report_py3o/models/py3o_report.py

@ -279,7 +279,7 @@ class Py3oReport(models.TransientModel):
self.ensure_one() self.ensure_one()
attachment = existing_reports_attachment.get(model_instance.id) attachment = existing_reports_attachment.get(model_instance.id)
if attachment and self.ir_actions_report_id.attachment_use: if attachment and self.ir_actions_report_id.attachment_use:
content = base64.decodestring(attachment.datas)
content = base64.b64decode(attachment.datas)
report_file = tempfile.mktemp("." + self.ir_actions_report_id.py3o_filetype) report_file = tempfile.mktemp("." + self.ir_actions_report_id.py3o_filetype)
with open(report_file, "wb") as f: with open(report_file, "wb") as f:
f.write(content) f.write(content)

4
report_py3o/tests/test_report_py3o.py

@ -57,7 +57,7 @@ class TestReportPy3o(TransactionCase):
with self.assertRaises(ValidationError) as e: with self.assertRaises(ValidationError) as e:
self.report.py3o_filetype = False self.report.py3o_filetype = False
self.assertEqual( self.assertEqual(
e.exception.name, "Field 'Output Format' is required for Py3O report"
e.exception.args[0], "Field 'Output Format' is required for Py3O report"
) )
def _render_patched(self, result_text="test result", call_count=1): def _render_patched(self, result_text="test result", call_count=1):
@ -121,7 +121,7 @@ class TestReportPy3o(TransactionCase):
# put a new content into tha attachement and check that the next # put a new content into tha attachement and check that the next
# time we ask the report we received the saved attachment not a newly # time we ask the report we received the saved attachment not a newly
# generated document # generated document
created_attachement.datas = base64.encodestring(b"new content")
created_attachement.datas = base64.b64encode(b"new content")
res = self.report._render(self.env.user.ids) res = self.report._render(self.env.user.ids)
self.assertEqual((b"new content", self.report.py3o_filetype), res) self.assertEqual((b"new content", self.report.py3o_filetype), res)

Loading…
Cancel
Save