[IMP] report_csv: add encoding option

This commit is contained in:
Aungkokolin1997
2023-01-18 08:49:07 +06:30
committed by Aungkokolin1997
parent aed350de74
commit 9bf1b70609
10 changed files with 126 additions and 17 deletions

View File

@@ -9,6 +9,14 @@ class ReportAction(models.Model):
_inherit = "ir.actions.report"
report_type = fields.Selection(selection_add=[("csv", "csv")])
encoding = fields.Char(
help="Encoding to be applied to the generated CSV file. e.g. cp932"
)
encode_error_handling = fields.Selection(
selection=[("ignore", "Ignore"), ("replace", "Replace")],
help="If nothing is selected, CSV export will fail with an error message when "
"there is a character that fail to be encoded.",
)
@api.model
def render_csv(self, docids, data):
@@ -17,7 +25,11 @@ class ReportAction(models.Model):
if report_model is None:
raise UserError(_("%s model was not found" % report_model_name))
return report_model.with_context(
{"active_model": self.model}
{
"active_model": self.model,
"encoding": self.encoding,
"encode_error_handling": self.encode_error_handling,
}
).create_csv_report(docids, data)
@api.model