diff --git a/report_csv/__manifest__.py b/report_csv/__manifest__.py
index 76e7bc8a0..6adf30c28 100644
--- a/report_csv/__manifest__.py
+++ b/report_csv/__manifest__.py
@@ -4,11 +4,10 @@
"name": "Base report csv",
"summary": "Base module to create csv report",
"author": "Creu Blanca, Odoo Community Association (OCA)",
- "website": "https://github.com/oca/reporting-engine",
+ "website": "https://github.com/OCA/reporting-engine",
"category": "Reporting",
- "version": "13.0.1.0.1",
+ "version": "14.0.1.0.0",
"license": "AGPL-3",
- "external_dependencies": {"python": ["csv"]},
"depends": ["base", "web"],
"data": ["views/webclient_templates.xml"],
"demo": ["demo/report.xml"],
diff --git a/report_csv/controllers/main.py b/report_csv/controllers/main.py
index 700a75a56..f6bae5979 100644
--- a/report_csv/controllers/main.py
+++ b/report_csv/controllers/main.py
@@ -2,7 +2,6 @@
# License AGPL-3.0 or later (https://www.gnuorg/licenses/agpl.html).
import json
-import time
from odoo.http import content_disposition, request, route
from odoo.tools.safe_eval import safe_eval
@@ -28,14 +27,14 @@ class ReportController(report.ReportController):
if data["context"].get("lang"):
del data["context"]["lang"]
context.update(data["context"])
- csv = report.with_context(context).render_csv(docids, data=data)[0]
+ csv = report.with_context(context)._render_csv(docids, data=data)[0]
filename = "{}.{}".format(report.name, "csv")
if docids:
obj = request.env[report.model].browse(docids)
if report.print_report_name and not len(obj) > 1:
report_name = safe_eval(
report.print_report_name,
- {"object": obj, "time": time, "multi": False},
+ {"object": obj},
)
filename = "{}.{}".format(report_name, "csv")
# When we print multiple records we still allow a custom
@@ -43,7 +42,7 @@ class ReportController(report.ReportController):
elif report.print_report_name and len(obj) > 1:
report_name = safe_eval(
report.print_report_name,
- {"objects": obj, "time": time, "multi": True},
+ {"object": obj},
)
filename = "{}.{}".format(report_name, "csv")
csvhttpheaders = [
diff --git a/report_csv/demo/report.xml b/report_csv/demo/report.xml
index 72c741dec..1bab560ac 100644
--- a/report_csv/demo/report.xml
+++ b/report_csv/demo/report.xml
@@ -4,13 +4,11 @@
Copyright 2019 Creu Blanca
License AGPL-3.0 or later (https://www.gnuorg/licenses/agpl.html).
-->
-
+
+ Print to CSV
+ res.partner
+ csv
+ report_csv.partner_csv
+ res_partner
+
diff --git a/report_csv/models/ir_report.py b/report_csv/models/ir_report.py
index 9865cff75..97e8f3a8e 100644
--- a/report_csv/models/ir_report.py
+++ b/report_csv/models/ir_report.py
@@ -8,10 +8,12 @@ from odoo.exceptions import UserError
class ReportAction(models.Model):
_inherit = "ir.actions.report"
- report_type = fields.Selection(selection_add=[("csv", "csv")])
+ report_type = fields.Selection(
+ selection_add=[("csv", "csv")], ondelete={"csv": "set default"}
+ )
@api.model
- def render_csv(self, docids, data):
+ def _render_csv(self, docids, data):
report_model_name = "report.%s" % self.report_name
report_model = self.env.get(report_model_name)
if report_model is None:
diff --git a/report_csv/tests/test_report.py b/report_csv/tests/test_report.py
index 32239262f..cfaccc4ea 100644
--- a/report_csv/tests/test_report.py
+++ b/report_csv/tests/test_report.py
@@ -25,10 +25,9 @@ class TestReport(common.TransactionCase):
def test_report(self):
# Test if not res:
- self.env["ir.actions.report"]._get_report_from_name("TEST")
report = self.report
self.assertEqual(report.report_type, "csv")
- rep = report.render(self.docs.ids, {})
+ rep = report._render(self.docs.ids, {})
str_io = StringIO(rep[0])
dict_report = list(csv.DictReader(str_io, delimiter=";", quoting=csv.QUOTE_ALL))
self.assertEqual(self.docs.name, dict(dict_report[0])["name"])
@@ -39,20 +38,20 @@ class TestReport(common.TransactionCase):
objs = self.csv_report._get_objs_for_report(
False, {"context": {"active_ids": self.docs.ids}}
)
- self.assertEquals(objs, self.docs)
+ self.assertEqual(objs, self.docs)
# Typical call from within code not to report_action
objs = self.csv_report.with_context(
active_ids=self.docs.ids
)._get_objs_for_report(False, False)
- self.assertEquals(objs, self.docs)
+ self.assertEqual(objs, self.docs)
# Typical call from WebUI
objs = self.csv_report._get_objs_for_report(
self.docs.ids, {"data": [self.report_name, self.report.report_type]}
)
- self.assertEquals(objs, self.docs)
+ self.assertEqual(objs, self.docs)
# Typical call from render
objs = self.csv_report._get_objs_for_report(self.docs.ids, {})
- self.assertEquals(objs, self.docs)
+ self.assertEqual(objs, self.docs)
diff --git a/setup/report_csv/odoo/addons/report_csv b/setup/report_csv/odoo/addons/report_csv
new file mode 120000
index 000000000..bdfab6f25
--- /dev/null
+++ b/setup/report_csv/odoo/addons/report_csv
@@ -0,0 +1 @@
+../../../../report_csv
\ No newline at end of file
diff --git a/setup/report_csv/setup.py b/setup/report_csv/setup.py
new file mode 100644
index 000000000..28c57bb64
--- /dev/null
+++ b/setup/report_csv/setup.py
@@ -0,0 +1,6 @@
+import setuptools
+
+setuptools.setup(
+ setup_requires=['setuptools-odoo'],
+ odoo_addon=True,
+)