[IMP] report_csv: add encoding option

This commit is contained in:
Aungkokolin1997
2023-01-18 08:49:07 +06:30
committed by Aungkokolin1997
parent 7fcaee191e
commit 5d89b44e47
10 changed files with 127 additions and 18 deletions

View File

@@ -11,6 +11,14 @@ class ReportAction(models.Model):
report_type = fields.Selection(
selection_add=[("csv", "csv")], ondelete={"csv": "set default"}
)
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):
@@ -19,7 +27,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