Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[18.0][MIG] report_xlsx_helper module #11

Merged
merged 70 commits into from
Jan 23, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
f9e8ea0
rename module
luc-demeyer Apr 12, 2018
2eab797
xlsx formats
luc-demeyer Aug 5, 2018
b31f428
improved error handling
luc-demeyer Aug 9, 2018
30ca058
autodetect boolean type
luc-demeyer Aug 10, 2018
46a64b4
pylint: disable=old-api7-method-defined
luc-demeyer Aug 10, 2018
1435cc7
pylint: disable=old-api7-method-defined
luc-demeyer Aug 10, 2018
e19e6e7
pylint W8112(eval-referenced)
luc-demeyer Aug 10, 2018
8059b5e
pylint eval-used
luc-demeyer Aug 10, 2018
fcddf21
add unit test
luc-demeyer Aug 12, 2018
e16e9d1
[UPD] Update report_xlsx_helper.pot
oca-travis Aug 14, 2018
2fc4c9c
[11.0][MIG] report_xlsx_helper: Migration to 11.0
luc-demeyer Sep 24, 2018
83bee78
add todo
luc-demeyer Sep 26, 2018
5d6d3a8
[UPD] Update report_xlsx_helper.pot
oca-travis Oct 1, 2018
3c75ae9
[UPD] README.rst
OCA-git-bot Oct 2, 2018
b1541c6
[10.0][FIX]fix _render for cell formats
luc-demeyer Nov 4, 2018
b9babf3
[MIG] : Migration to 12.0
luc-demeyer Apr 21, 2019
82f2a33
[UPD] README.rst
OCA-git-bot Jun 3, 2019
28bd925
[UPD] Update report_xlsx_helper.pot
oca-travis Jun 3, 2019
a31e3c5
[UPD] README.rst
OCA-git-bot Jul 31, 2019
782a6a9
date to datetime conversion when autotyping
luc-demeyer Aug 7, 2019
855c3f9
greenify
luc-demeyer Aug 8, 2019
1339f13
increase test coverage
luc-demeyer Aug 10, 2019
87fe021
[UPD] Update report_xlsx_helper.pot
oca-travis Oct 1, 2019
299baaf
report_xlsx_helper 12.0.1.1.0
OCA-git-bot Oct 1, 2019
5bdd836
FIX error message when cellvalue's type is not recognized
ivantodorovich Sep 6, 2019
b9b70f2
report_xlsx_helper 12.0.1.1.1
OCA-git-bot Oct 10, 2019
524db1b
[IMP] report_xlsx_helper: black, isort
kongrattapong Jan 9, 2020
6dfb1aa
[MIG] report_xlsx_helper: Migration to 13.0
kongrattapong Jan 9, 2020
ceb3c63
[UPD] Update report_xlsx_helper.pot
oca-travis Feb 19, 2020
476bdaa
[UPD] README.rst
OCA-git-bot Feb 19, 2020
d0c0321
report_xlsx_helper 13.0.1.0.1
OCA-git-bot Feb 19, 2020
7bf9b77
[12.0][ENH] report_xlsx_helper : dynamic function _write_line
Saran440 Jan 22, 2020
a91638b
greenify
luc-demeyer Feb 20, 2020
b114c4c
[UPD] README.rst
OCA-git-bot Feb 21, 2020
7a68d04
report_xlsx_helper 13.0.1.1.0
OCA-git-bot Feb 21, 2020
7a829d7
[14.0][MIG] report_xlsx_helper
Saran440 Nov 19, 2020
2da632b
[IMP] format xlsx to global files
Saran440 Nov 19, 2020
a27905e
[UPD] Update report_xlsx_helper.pot
oca-travis Dec 2, 2020
8e4d3c9
[FIX] report_xlsx_helper: force Libreoffice to recompute formulas
StefanRijnhart Feb 9, 2021
70fde51
Added translation using Weblate (Spanish)
anasuarez1 Mar 16, 2021
087aacc
Translated using Weblate (Spanish)
anasuarez1 Mar 16, 2021
8f0794f
report_xlsx_helper 14.0.1.0.1
OCA-git-bot Nov 8, 2021
c3e88f1
[IMP] report_xlsx_helper: black, isort, prettier
Jan 19, 2022
6623b1d
[MIG] report_xlsx_helper: Migration to 15.0
Jan 19, 2022
4a8c165
[UPD] Update report_xlsx_helper.pot
Feb 20, 2022
0e561d0
[UPD] README.rst
OCA-git-bot Feb 20, 2022
7f1563e
[FIX]report_xlsx_helper: Development status mature
manuelregidor Apr 13, 2022
a267f7c
[UPD] README.rst
OCA-git-bot Apr 13, 2022
03a3aee
report_xlsx_helper 15.0.1.0.1
OCA-git-bot Apr 13, 2022
1c44840
Added translation using Weblate (Catalan)
jabelchi Jun 15, 2022
bea87e2
Translated using Weblate (Catalan)
jabelchi Jun 15, 2022
8eeba2f
[MIG] report_xlsx_helper: Migration to 16.0
RodrigoBM Oct 6, 2022
b1da2c7
[UPD] Update report_xlsx_helper.pot
Dec 5, 2022
eaa4a12
[UPD] README.rst
OCA-git-bot Dec 5, 2022
2a89bee
Update translation files
weblate Dec 5, 2022
244d1a6
Translated using Weblate (Spanish)
Ivorra78 Jul 18, 2023
ef9f64b
Translated using Weblate (Spanish)
Ivorra78 Aug 23, 2023
f03f580
[UPD] README.rst
OCA-git-bot Sep 3, 2023
04ef2ac
Update translation files
weblate Oct 10, 2023
9da6ed8
Translated using Weblate (Spanish)
Ivorra78 Oct 15, 2023
989b96e
[IMP] report_xlsx_helper: pre-commit auto fixes
FernandoRomera Dec 20, 2023
6c6ce0d
[17.0][MIG] report_xlsx_helper: Migration to 17.0
FernandoRomera Dec 20, 2023
6652ed7
[UPD] Update report_xlsx_helper.pot
Jan 23, 2024
5eec4ae
[BOT] post-merge updates
OCA-git-bot Jan 23, 2024
798327b
Added translation using Weblate (Italian)
mymage Feb 5, 2024
57b9cdc
Translated using Weblate (Italian)
mymage Feb 12, 2024
44793c0
[FIX] *: line too long
pedrobaeza May 2, 2024
25efdbf
[BOT] post-merge updates
OCA-git-bot May 2, 2024
b29281a
Added translation using Weblate (French)
epanisset Nov 8, 2024
cba08ac
[18.0][MIG] report_xlsx_helper module
psugne Jan 22, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
127 changes: 127 additions & 0 deletions report_xlsx_helper/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
===================
Report xlsx helpers
===================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:df481003a65f02d5bf2edcc90f4238033b81c3fa5120209c2e36e25b1cdabb77
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Mature-brightgreen.png
:target: https://odoo-community.org/page/development-status
:alt: Mature
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Freporting--engine-lightgray.png?logo=github
:target: https://github.com/OCA/reporting-engine/tree/18.0/report_xlsx_helper
:alt: OCA/reporting-engine
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/reporting-engine-18-0/reporting-engine-18-0-report_xlsx_helper
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/reporting-engine&target_branch=18.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

This module provides a set of tools to facilitate the creation of excel
reports with format xlsx.

**Table of contents**

.. contents::
:local:

Installation
============

This module requires report_xlsx version 13.0.1.0.0 or higher.

Usage
=====

In order to create an Excel report you can define a report of type
'xlsx' in a static or dynamic way:

- Static syntax: cf. ``account_move_line_report_xls`` for an example.
- Dynamic syntax: cf. ``report_xlsx_helper_demo`` for an example

The ``AbstractReportXlsx`` class contains a number of attributes and
methods to facilitate the creation excel reports in Odoo.

- Cell types

string, number, boolean, datetime.

- Cell formats

The predefined cell formats result in a consistent look and feel of
the Odoo Excel reports.

- Cell formulas

Cell formulas can be easily added with the help of the
``_rowcol_to_cell()`` method.

- Excel templates

It is possible to define Excel templates which can be adapted by
'inherited' modules. Download the ``account_move_line_report_xls``
module from http://apps.odoo.com as example.

- Excel with multiple sheets

Download the ``account_asset_management_xls`` module from
http://apps.odoo.com as example.

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/reporting-engine/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/reporting-engine/issues/new?body=module:%20report_xlsx_helper%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
-------

* Noviat

Contributors
------------

- Luc De Meyer <[email protected]>

- Rattapong Chokmasermkul <[email protected]>

- Saran Lim. <[email protected]>

- `Sinerkia Innovación y Desarrollo S.L. <https://www.sinerkia.com>`__:

- Luis Pomar

Maintainers
-----------

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

This module is part of the `OCA/reporting-engine <https://github.com/OCA/reporting-engine/tree/18.0/report_xlsx_helper>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
3 changes: 3 additions & 0 deletions report_xlsx_helper/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from . import controllers
from . import models
from . import report
14 changes: 14 additions & 0 deletions report_xlsx_helper/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Copyright 2009-2019 Noviat.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

{
"name": "Report xlsx helpers",
"author": "Noviat, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/reporting-engine",
"category": "Reporting",
"version": "18.0.1.0.1",
"license": "AGPL-3",
"depends": ["report_xlsx"],
"development_status": "Mature",
"installable": True,
}
1 change: 1 addition & 0 deletions report_xlsx_helper/controllers/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import main
51 changes: 51 additions & 0 deletions report_xlsx_helper/controllers/main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Copyright 2009-2018 Noviat.
# License AGPL-3.0 or later (https://www.gnuorg/licenses/agpl.html).

import json

from odoo.http import content_disposition, request, route

from odoo.addons.report_xlsx.controllers.main import ReportController


class ReportController(ReportController):
@route(
[
"/report/<converter>/<reportname>",
"/report/<converter>/<reportname>/<docids>",
],
type="http",
auth="user",
website=True,
)
def report_routes(self, reportname, docids=None, converter=None, **data):
report = request.env["ir.actions.report"]._get_report_from_name(reportname)
if converter == "xlsx" and not report:
context = dict(request.env.context)
if docids:
docids = [int(i) for i in docids.split(",")]
if data.get("options"):
data.update(json.loads(data.pop("options")))
if data.get("context"):
data["context"] = json.loads(data["context"])
context.update(data["context"])
context["report_name"] = reportname

xlsx = report.with_context(**context)._render_xlsx(
reportname, docids, data=data
)[0]
report_file = context.get("report_file")
if not report_file:
active_model = context.get("active_model", "export")
report_file = active_model.replace(".", "_")
xlsxhttpheaders = [
(
"Content-Type",
"application/vnd.openxmlformats-"
"officedocument.spreadsheetml.sheet",
),
("Content-Length", len(xlsx)),
("Content-Disposition", content_disposition(report_file + ".xlsx")),
]
return request.make_response(xlsx, headers=xlsxhttpheaders)
return super().report_routes(reportname, docids, converter, **data)
129 changes: 129 additions & 0 deletions report_xlsx_helper/i18n/ca.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * report_xlsx_helper
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 15.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2022-06-15 18:05+0000\n"
"Last-Translator: jabelchi <[email protected]>\n"
"Language-Team: none\n"
"Language: ca\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.3.2\n"

#. module: report_xlsx_helper
#. odoo-python
#: code:addons/report_xlsx_helper/report/report_xlsx_abstract.py:0
#, python-format
msgid ""
"%(__name__)s, _write_line : programming error detected while processing "
"col_specs_section %(col_specs_section)s, column %(col)s"
msgstr ""
"%(__name__)s, _write_line : error de programació detectat en processar "
"col_specs_section %(col_specs_section)s, columna %(col)s"

#. module: report_xlsx_helper
#. odoo-python
#: code:addons/report_xlsx_helper/models/ir_actions_report.py:0
#, python-format
msgid "%s model was not found"
msgstr "No s'ha trobat el model %s"

#. module: report_xlsx_helper
#. odoo-python
#: code:addons/report_xlsx_helper/report/report_xlsx_abstract.py:0
#, python-format
msgid ", cellvalue %s"
msgstr ""

#. module: report_xlsx_helper
#: model:ir.model,name:report_xlsx_helper.model_report_report_xlsx_abstract
#, fuzzy
msgid "Abstract XLSX Report"
msgstr "Informe XLSX abstracte"

#. module: report_xlsx_helper
#. odoo-python
#: code:addons/report_xlsx_helper/report/report_xlsx_abstract.py:0
#, python-format
msgid ""
"Programming Error:\n"
"\n"
"Excel Sheet name '%(name)s' contains unsupported special characters: "
"'%(special_chars)s'."
msgstr ""
"Error de programació:\n"
"\n"
"El full Excel amb nom '%(name)s' contè caràcters especials no soportats: "
"'%(special_chars)s'."

#. module: report_xlsx_helper
#. odoo-python
#: code:addons/report_xlsx_helper/report/report_xlsx_abstract.py:0
#, python-format
msgid ""
"Programming Error:\n"
"\n"
"Excel Sheet name '%(name)s' should not exceed %(max_chars)s characters."
msgstr ""
"Error de programació:\n"
"\n"
"El full d'Excel de nom '%(name)s' no hauria d'excedir els %(max_chars)s "
"caràcters."

#. module: report_xlsx_helper
#. odoo-python
#: code:addons/report_xlsx_helper/report/report_xlsx_abstract.py:0
#, python-format
msgid ""
"Programming Error:\n"
"\n"
"The '%s' column is not defined in the worksheet column specifications."
msgstr ""
"Error de programació:\n"
"\n"
"La columna '%s' no està definida a les especificacions de columna del full "
"de càlcul."

#. module: report_xlsx_helper
#. odoo-python
#: code:addons/report_xlsx_helper/report/report_xlsx_abstract.py:0
#, python-format
msgid ""
"Programming Error:\n"
"\n"
"The '%s' column is not defined the worksheet column specifications."
msgstr ""
"Error de programació:\n"
"\n"
"La columna '%s' no està definida a les especificacions de columna del full "
"de càlcul."

#. module: report_xlsx_helper
#. odoo-python
#: code:addons/report_xlsx_helper/report/report_xlsx_abstract.py:0
#, python-format
msgid ""
"Programming Error:\n"
"\n"
"The 'title' parameter is mandatory when calling the '_write_ws_title' method."
msgstr ""
"Error de programació:\n"
"\n"
"El paràmetre 'títol' és obligatori si es crida el mètode '_write_ws_title'."

#. module: report_xlsx_helper
#: model:ir.model,name:report_xlsx_helper.model_ir_actions_report
msgid "Report Action"
msgstr "Acció d'informe"

#. module: report_xlsx_helper
#: model:ir.model,name:report_xlsx_helper.model_report_report_xlsx_helper_test_partner_xlsx
#, fuzzy
msgid "Test Partner XLSX Report"
msgstr "Informe XLSX partner prova"
Loading
Loading