[IMP] report_csv: black, isort

This commit is contained in:
kongrattapong
2020-02-21 17:16:12 +07:00
committed by ferran-73
parent f7e3563ac3
commit f9d2d2178a
6 changed files with 88 additions and 102 deletions

View File

@@ -1,22 +1,22 @@
# Copyright 2019 Creu Blanca
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
import logging
from io import StringIO
from odoo import models
import logging
_logger = logging.getLogger(__name__)
try:
import csv
except ImportError:
_logger.debug('Can not import csvwriter`.')
_logger.debug("Can not import csvwriter`.")
class ReportCSVAbstract(models.AbstractModel):
_name = 'report.report_csv.abstract'
_description = 'Abstract Model for CSV reports'
_name = "report.report_csv.abstract"
_description = "Abstract Model for CSV reports"
def _get_objs_for_report(self, docids, data):
"""
@@ -34,11 +34,11 @@ class ReportCSVAbstract(models.AbstractModel):
"""
if docids:
ids = docids
elif data and 'context' in data:
ids = data["context"].get('active_ids', [])
elif data and "context" in data:
ids = data["context"].get("active_ids", [])
else:
ids = self.env.context.get('active_ids', [])
return self.env[self.env.context.get('active_model')].browse(ids)
ids = self.env.context.get("active_ids", [])
return self.env[self.env.context.get("active_model")].browse(ids)
def create_csv_report(self, docids, data):
objs = self._get_objs_for_report(docids, data)
@@ -46,7 +46,7 @@ class ReportCSVAbstract(models.AbstractModel):
file = csv.DictWriter(file_data, **self.csv_report_options())
self.generate_csv_report(file, data, objs)
file_data.seek(0)
return file_data.read(), 'csv'
return file_data.read(), "csv"
def csv_report_options(self):
"""
@@ -55,7 +55,7 @@ class ReportCSVAbstract(models.AbstractModel):
Valid parameters include 'delimiter', 'quotechar', 'escapechar',
'doublequote', 'skipinitialspace', 'lineterminator', 'quoting'.
"""
return {'fieldnames': []}
return {"fieldnames": []}
def generate_csv_report(self, file, data, objs):
raise NotImplementedError()

View File

@@ -1,25 +1,23 @@
# Copyright 2019 Creu Blanca
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
import csv
from odoo import models
class PartnerCSV(models.AbstractModel):
_name = 'report.report_csv.partner_csv'
_inherit = 'report.report_csv.abstract'
_name = "report.report_csv.partner_csv"
_inherit = "report.report_csv.abstract"
def generate_csv_report(self, writer, data, partners):
writer.writeheader()
for obj in partners:
writer.writerow({
'name': obj.name,
'email': obj.email,
})
writer.writerow({"name": obj.name, "email": obj.email})
def csv_report_options(self):
res = super().csv_report_options()
res['fieldnames'].append('name')
res['fieldnames'].append('email')
res['delimiter'] = ';'
res['quoting'] = csv.QUOTE_ALL
res["fieldnames"].append("name")
res["fieldnames"].append("email")
res["delimiter"] = ";"
res["quoting"] = csv.QUOTE_ALL
return res