Compare commits
2 Commits
c2061984d1
...
18.0
| Author | SHA1 | Date | |
|---|---|---|---|
| 16d6d58613 | |||
| e9dfb6bbb0 |
@@ -90,8 +90,7 @@ class CarboneReportController(ReportController):
|
|||||||
carbone_report = request.env["ir.actions.report"]._get_report_from_name(reportname)
|
carbone_report = request.env["ir.actions.report"]._get_report_from_name(reportname)
|
||||||
self.check_carbone_report(carbone_report)
|
self.check_carbone_report(carbone_report)
|
||||||
|
|
||||||
report_content, extension = request.env["ir.actions.report"]._render_carbone(carbone_report, docids)
|
report_content, extension, filename = request.env["ir.actions.report"]._render_carbone(carbone_report, docids)
|
||||||
filename = f"{carbone_report.report_name}.{extension}"
|
|
||||||
headers = _get_headers(extension, report_content, filename)
|
headers = _get_headers(extension, report_content, filename)
|
||||||
return request.make_response(report_content, headers)
|
return request.make_response(report_content, headers)
|
||||||
|
|
||||||
|
|||||||
@@ -541,6 +541,12 @@ class IrActionsReportCarbone(models.Model):
|
|||||||
|
|
||||||
csdk = carbone_sdk.CarboneSDK(access_token)
|
csdk = carbone_sdk.CarboneSDK(access_token)
|
||||||
csdk._api_headers.update({"User-Agent": self.get_default_user_agent()})
|
csdk._api_headers.update({"User-Agent": self.get_default_user_agent()})
|
||||||
|
api_url = (
|
||||||
|
self.env["ir.config_parameter"]
|
||||||
|
.sudo()
|
||||||
|
.get_param("report-engine.carbone_studio_url")
|
||||||
|
)
|
||||||
|
csdk.set_api_url(api_url)
|
||||||
return csdk
|
return csdk
|
||||||
|
|
||||||
def _get_json_data(self, export_json_instance, field_names, record, model, lang_codes):
|
def _get_json_data(self, export_json_instance, field_names, record, model, lang_codes):
|
||||||
@@ -645,7 +651,7 @@ class IrActionsReportCarbone(models.Model):
|
|||||||
else:
|
else:
|
||||||
_logger.info("The PDF documents %r are now saved in the database", attachment_names)
|
_logger.info("The PDF documents %r are now saved in the database", attachment_names)
|
||||||
|
|
||||||
def _render_carbone(self, report_ref, docids: str | list, data=None) -> tuple[bytes, str]:
|
def _render_carbone(self, report_ref, docids: str | list, data=None) -> tuple[bytes, str, str | bool]:
|
||||||
context = dict(self.env.context)
|
context = dict(self.env.context)
|
||||||
|
|
||||||
report_sudo = self._get_report(report_ref)
|
report_sudo = self._get_report(report_ref)
|
||||||
@@ -670,13 +676,14 @@ class IrActionsReportCarbone(models.Model):
|
|||||||
streams_to_dl = list(stream_to_ids.keys())
|
streams_to_dl = list(stream_to_ids.keys())
|
||||||
|
|
||||||
if not context.get("from_ir_report_controller") or len(streams_to_dl) == 1:
|
if not context.get("from_ir_report_controller") or len(streams_to_dl) == 1:
|
||||||
pdf_content = streams_to_dl[0].getvalue()
|
stream = streams_to_dl[0]
|
||||||
# stream_to_ids[streams_to_dl[0]] contains [record_id, filename, extension]
|
pdf_content = stream.getvalue()
|
||||||
extension = stream_to_ids[streams_to_dl[0]][2]
|
filename = stream_to_ids[stream][1]
|
||||||
return pdf_content, extension
|
extension = stream_to_ids[stream][2]
|
||||||
|
return pdf_content, extension, filename
|
||||||
|
|
||||||
zip_content = _build_zip_from_data(stream_to_ids)
|
zip_content = _build_zip_from_data(stream_to_ids)
|
||||||
return zip_content, "zip"
|
return zip_content, "zip", f"{report_sudo.name}.zip"
|
||||||
|
|
||||||
def _retrieve_carbone_filename(self, records, output_file_extension: str) -> str:
|
def _retrieve_carbone_filename(self, records, output_file_extension: str) -> str:
|
||||||
self.ensure_one()
|
self.ensure_one()
|
||||||
@@ -852,6 +859,9 @@ class IrActionsReportCarbone(models.Model):
|
|||||||
}
|
}
|
||||||
res = self.call_carbone_endpoint(endpoint, params, raise_error)
|
res = self.call_carbone_endpoint(endpoint, params, raise_error)
|
||||||
|
|
||||||
|
if not isinstance(res, dict):
|
||||||
|
return False
|
||||||
|
|
||||||
data_list = res.get("data")
|
data_list = res.get("data")
|
||||||
if not data_list:
|
if not data_list:
|
||||||
return False
|
return False
|
||||||
|
|||||||
Reference in New Issue
Block a user