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: Migration to 18.0. #946

Merged
merged 92 commits into from
Nov 6, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
92 commits
Select commit Hold shift + click to select a range
f36ae30
[CHG] Rename base_report_xlsx to report_xlsx and add xlsx report type…
adrienpeiffer Apr 4, 2016
d6e1f32
[IMP] report_xlsx - Pass the report instance as well as ids of record…
sebalix Apr 12, 2016
7bfe1c8
[MIG] Migration of report_xlsx to 10.0 (#76)
adrienpeiffer Oct 13, 2016
7893a20
[10.0] report_xlsx: Allow to define options for workbook creation (#98)
sbidoul Feb 22, 2017
bef678e
OCA Transbot updated translations from Transifex
oca-transbot Nov 29, 2016
c5fe71d
[MIG] report_xlsx: Migration to 11.0
etobella Oct 25, 2017
b2061b2
OCA Transbot updated translations from Transifex
oca-transbot Dec 30, 2017
3e7b94d
[IMP] report_fillpdf, report_xlsx, report_xml: Use content_dispositio…
naglis Mar 11, 2018
2d0231b
[UPD] Update report_xlsx.pot
oca-travis Jul 24, 2018
5dc1e6c
Fix report_xlsx for printing from wizards
gdgellatly Aug 25, 2018
c6f83dc
[MIG] report_xlsx: Migration to 12.0
ovnicraft Oct 8, 2018
6bf7c9d
[IMP] report_xlsx: README by fragments
pedrobaeza Dec 21, 2018
2fcc45c
[UPD] Update report_xlsx.pot
oca-travis Dec 21, 2018
4700dae
Update translation files
oca-transbot Dec 29, 2018
b1a5c5d
Translated using Weblate (German)
rschnapka Apr 24, 2019
57e677e
[UPD] README.rst
OCA-git-bot Jul 31, 2019
c5f55fd
[12.0][IMP] report_xlsx, make sure print_report_name works
kittiu Aug 9, 2019
5c08e45
Added translation using Weblate (Portuguese)
pedrocs-exo Aug 14, 2019
0081dfb
Translated using Weblate (Portuguese)
pedrocs-exo Aug 14, 2019
da1d439
report_xlsx 12.0.1.0.1
OCA-git-bot Sep 23, 2019
8523d35
[MIG] report_xlsx: Migration to 13.0
schout-it Oct 1, 2019
28a1dda
[MIG][IMP][13.0] rebase to include new linters
schout-it Oct 22, 2019
9b79a6c
[FIX] report_xlsx: js
JoanSForgeFlow Dec 24, 2019
04de5f8
[UPD] Update report_xlsx.pot
oca-travis Jan 8, 2020
eb907f1
[UPD] README.rst
OCA-git-bot Jan 8, 2020
5a0caaa
Update translation files
oca-transbot Jan 31, 2020
24bf529
[FIX] report_xlsx: rename a file
MiquelRForgeFlow Jan 29, 2020
fcb3942
pre-commit update
OCA-git-bot Mar 14, 2020
62d8b90
report_xlsx 13.0.1.0.1
OCA-git-bot Apr 2, 2020
00da56b
Update translation files
oca-transbot Aug 16, 2020
82d14e8
[IMP] : black, isort, prettier
tupaq Oct 19, 2020
8d44820
[MIG] report_xlsx: Migration to 14.0
tupaq Oct 19, 2020
384b066
[UPD] Update report_xlsx.pot
oca-travis Nov 25, 2020
975a12c
[UPD] README.rst
OCA-git-bot Nov 25, 2020
6b0d8a4
[FIX] safe_eval object time
Saran440 Dec 4, 2020
cab523c
report_xlsx 14.0.1.0.1
OCA-git-bot Jan 13, 2021
93befa3
Translated using Weblate (Spanish)
anasuarez1 Mar 16, 2021
d791861
report_xlsx: bump development status [ci skip]
sbidoul Jun 2, 2021
6b8a491
[UPD] README.rst
OCA-git-bot Jun 2, 2021
4054c62
report_xlsx 14.0.1.0.2
OCA-git-bot Jun 2, 2021
70da879
Translated using Weblate (Portuguese)
pedrocs-exo Jul 2, 2021
330aaa1
[IMP][FIX] report_xlsx: handle duplicate name exceptions
chienandalu Sep 17, 2021
843a499
report_xlsx 14.0.1.0.3
OCA-git-bot Sep 20, 2021
8078e0b
[FIX] report_xlsx: correctly handle exceptions, when generating report
em230418 Oct 27, 2021
5a55261
[UPD] README.rst
OCA-git-bot Nov 8, 2021
135d59c
report_xlsx 14.0.1.0.4
OCA-git-bot Nov 8, 2021
ef30e54
Added translation using Weblate (Swedish)
simonstromb Nov 17, 2021
781f58d
Translated using Weblate (Swedish)
simonstromb Nov 30, 2021
ed8a6aa
[MIG] report_xlsx: Migration to 15.0
JoanMForgeFlow Dec 7, 2021
fd974fa
[FIX] report_xlsx: refactor controller and report hamdler
ChrisOForgeFlow Dec 7, 2021
a87255e
[UPD] README.rst
OCA-git-bot Dec 11, 2021
d2019ef
[UPD] Update report_xlsx.pot
Dec 11, 2021
a76a2f9
[12.0][FIX] Report xlsx res_partner
Sep 10, 2019
20b8add
report_xlsx 15.0.1.0.1
OCA-git-bot Dec 14, 2021
e7c3e90
[FIX] report_xlsx: fix generation of pdf reports
MihranThalhath Jan 18, 2022
617843e
report_xlsx 15.0.1.0.3
OCA-git-bot Jan 18, 2022
467027a
report_xlsx
xavier-bouquiaux Feb 16, 2022
177a78c
report_xlsx 15.0.1.0.4
OCA-git-bot Feb 17, 2022
4bcf5ea
[FIX]report_xlsx: development status tu mature
manuelregidor Apr 13, 2022
9f670c6
[UPD] README.rst
OCA-git-bot Apr 13, 2022
f4be239
report_xlsx 15.0.1.0.5
OCA-git-bot Apr 13, 2022
ccd43cb
Added translation using Weblate (Catalan)
pablontura Apr 22, 2022
f3f5131
Translated using Weblate (Catalan)
pablontura Apr 22, 2022
be4f932
[FIX] report_xlsx: Fix dynamic report download
JasminSForgeFlow Jun 24, 2022
2b6923c
report_xlsx 15.0.1.1.0
OCA-git-bot Aug 30, 2022
869f8c3
[IMP] report_xlsx: Method for getting cell format for a currency
victoralmau Sep 2, 2022
2d58868
report_xlsx 15.0.1.1.1
OCA-git-bot Sep 8, 2022
d1e48c4
[MIG] Migrate report_xlsx to 16.0
RodrigoBM Nov 30, 2022
498d769
[UPD] Update report_xlsx.pot
Dec 4, 2022
94aa06a
[UPD] README.rst
OCA-git-bot Dec 4, 2022
b94b6ef
[FIX] report_xlsx: add token in report_download() controller
alexis-via Dec 14, 2022
952810f
report_xlsx 16.0.1.0.1
OCA-git-bot Dec 15, 2022
173301c
Translated using Weblate (Croatian)
badbole Jan 3, 2023
c1d22fe
[FIX] report_xlsx: initialize reportname
ajaniszewska-dev Mar 10, 2023
16ed146
report_xlsx 16.0.1.0.2
OCA-git-bot Mar 18, 2023
5de2f10
Translated using Weblate (Spanish)
Ivorra78 Aug 23, 2023
2a18ea3
[UPD] README.rst
OCA-git-bot Sep 3, 2023
09cb7c8
[FIX] report_xlsx: Save as attachment
houzefa-abba Jun 6, 2023
e01987c
Update translation files
weblate Oct 10, 2023
1ce3b15
[BOT] post-merge updates
OCA-git-bot Oct 10, 2023
4776b1d
[IMP] report_xlsx: pre-commit auto fixes
tien-ld Nov 22, 2023
4cccbe9
[MIG] report_xlsx: Migration to 17.0
tien-ld Nov 22, 2023
90cc29d
[FIX] migrated version number in __manifest__.py
gurneyalex Dec 8, 2023
78bafa2
[UPD] Update report_xlsx.pot
Dec 8, 2023
8b2cfe2
[BOT] post-merge updates
OCA-git-bot Dec 8, 2023
a33e56a
Translated using Weblate (Italian)
mymage Feb 12, 2024
93266ab
Translated using Weblate (Swedish)
jakobkrabbe Jun 12, 2024
441a250
[FIX] report_xlsx: Remove XML header in HTML
pedrobaeza Jul 17, 2024
e0a1185
[DOC] report_xlsx: Update USAGE.rst
amh-mw Apr 16, 2024
18f40eb
[BOT] post-merge updates
OCA-git-bot Aug 19, 2024
19db079
[IMP] report_xlsx: pre-commit auto fixes
dariodelzozzo Oct 25, 2024
bc4c589
[MIG] report_xlsx: Migration to 18.0
dariodelzozzo Sep 12, 2024
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
145 changes: 145 additions & 0 deletions report_xlsx/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
================
Base report xlsx
================

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

.. |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
: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
: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 basic report class to generate xlsx report.

**Table of contents**

.. contents::
:local:

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

Make sure you have ``xlsxwriter`` Python module installed:

::

$ pip3 install xlsxwriter

For testing it is also necessary ``xlrd`` Python module installed:

::

$ pip3 install xlrd

Usage
=====

An example of XLSX report for partners on a module called
\`module_name\`:

A python class :

::

from odoo import models

class PartnerXlsx(models.AbstractModel):
_name = 'report.module_name.report_name'
_inherit = 'report.report_xlsx.abstract'

def generate_xlsx_report(self, workbook, data, partners):
for obj in partners:
report_name = obj.name
# One sheet by partner
sheet = workbook.add_worksheet(report_name[:31])
bold = workbook.add_format({'bold': True})
sheet.write(0, 0, obj.name, bold)

To manipulate the ``workbook`` and ``sheet`` objects, refer to the
`documentation <http://xlsxwriter.readthedocs.org/>`__ of
``xlsxwriter``.

A report XML record :

::

<record id="action_report_partner_xlsx" model="ir.actions.report">
<field name="name">Print to XLSX</field>
<field name="model">res.partner</field>
<field name="report_type">xlsx</field>
<field name="report_name">module_name.report_name</field>
<field name="report_file">module_name.report_file</field>
<field name="binding_model_id" ref="res.partner"/>
<field name="binding_type">report</field>
<field name="attachment_use" eval="False"/>
</record>

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%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
-------

* ACSONE SA/NV
* Creu Blanca

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

- Adrien Peiffer <[email protected]>
- Sébastien Alix <[email protected]>
- Stéphane Bidoul <[email protected]>
- Enric Tobella <[email protected]>
- Graeme Gellatly <[email protected]>
- Cristian Salamea <[email protected]>
- Rod Schouteden <[email protected]>
- Eugene Molotov <[email protected]>
- Christopher Ormaza <[email protected]>
- Houzéfa Abbasbhay <[email protected]>
- Le Dinh Tien <[email protected]>

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>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
5 changes: 5 additions & 0 deletions report_xlsx/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).

from . import controllers
from . import models
from . import report
21 changes: 21 additions & 0 deletions report_xlsx/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Copyright 2015 ACSONE SA/NV (<http://acsone.eu>)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
{
"name": "Base report xlsx",
"summary": "Base module to create xlsx report",
"author": "ACSONE SA/NV," "Creu Blanca," "Odoo Community Association (OCA)",
"website": "https://github.com/OCA/reporting-engine",
"category": "Reporting",
"version": "18.0.1.0.0",
"development_status": "Mature",
"license": "AGPL-3",
"external_dependencies": {"python": ["xlsxwriter", "xlrd"]},
"depends": ["base", "web"],
"demo": ["demo/report.xml"],
"installable": True,
"assets": {
"web.assets_backend": [
"report_xlsx/static/src/js/report/action_manager_report.esm.js",
],
},
}
1 change: 1 addition & 0 deletions report_xlsx/controllers/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import main
107 changes: 107 additions & 0 deletions report_xlsx/controllers/main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
# Copyright (C) 2017 Creu Blanca
# Copyright 2021 ForgeFlow S.L.
# License AGPL-3.0 or later (https://www.gnuorg/licenses/agpl.html).

import json
import logging

from werkzeug.urls import url_decode

from odoo.http import (
content_disposition,
request,
route,
)
from odoo.http import (
serialize_exception as _serialize_exception,
)
from odoo.tools import html_escape
from odoo.tools.safe_eval import safe_eval, time

from odoo.addons.web.controllers.report import ReportController

_logger = logging.getLogger(__name__)


class ReportController(ReportController):
@route()
def report_routes(self, reportname, docids=None, converter=None, **data):
if converter == "xlsx":
report = request.env["ir.actions.report"]._get_report_from_name(reportname)
context = dict(request.env.context)

Check warning on line 31 in report_xlsx/controllers/main.py

View check run for this annotation

Codecov / codecov/patch

report_xlsx/controllers/main.py#L30-L31

Added lines #L30 - L31 were not covered by tests
if docids:
docids = [int(i) for i in docids.split(",")]

Check warning on line 33 in report_xlsx/controllers/main.py

View check run for this annotation

Codecov / codecov/patch

report_xlsx/controllers/main.py#L33

Added line #L33 was not covered by tests
if data.get("options"):
data.update(json.loads(data.pop("options")))

Check warning on line 35 in report_xlsx/controllers/main.py

View check run for this annotation

Codecov / codecov/patch

report_xlsx/controllers/main.py#L35

Added line #L35 was not covered by tests
if data.get("context"):
data["context"] = json.loads(data["context"])
context.update(data["context"])
xlsx = report.with_context(**context)._render_xlsx(

Check warning on line 39 in report_xlsx/controllers/main.py

View check run for this annotation

Codecov / codecov/patch

report_xlsx/controllers/main.py#L37-L39

Added lines #L37 - L39 were not covered by tests
reportname, docids, data=data
)[0]
xlsxhttpheaders = [

Check warning on line 42 in report_xlsx/controllers/main.py

View check run for this annotation

Codecov / codecov/patch

report_xlsx/controllers/main.py#L42

Added line #L42 was not covered by tests
(
"Content-Type",
"application/vnd.openxmlformats-"
"officedocument.spreadsheetml.sheet",
),
("Content-Length", len(xlsx)),
]
return request.make_response(xlsx, headers=xlsxhttpheaders)
return super().report_routes(reportname, docids, converter, **data)

Check warning on line 51 in report_xlsx/controllers/main.py

View check run for this annotation

Codecov / codecov/patch

report_xlsx/controllers/main.py#L50-L51

Added lines #L50 - L51 were not covered by tests

@route()
def report_download(self, data, context=None, token=None):
requestcontent = json.loads(data)
url, report_type = requestcontent[0], requestcontent[1]

Check warning on line 56 in report_xlsx/controllers/main.py

View check run for this annotation

Codecov / codecov/patch

report_xlsx/controllers/main.py#L55-L56

Added lines #L55 - L56 were not covered by tests
if report_type == "xlsx":
try:
reportname = url.split("/report/xlsx/")[1].split("?")[0]
docids = None

Check warning on line 60 in report_xlsx/controllers/main.py

View check run for this annotation

Codecov / codecov/patch

report_xlsx/controllers/main.py#L58-L60

Added lines #L58 - L60 were not covered by tests
if "/" in reportname:
reportname, docids = reportname.split("/")

Check warning on line 62 in report_xlsx/controllers/main.py

View check run for this annotation

Codecov / codecov/patch

report_xlsx/controllers/main.py#L62

Added line #L62 was not covered by tests
if docids:
# Generic report:
response = self.report_routes(

Check warning on line 65 in report_xlsx/controllers/main.py

View check run for this annotation

Codecov / codecov/patch

report_xlsx/controllers/main.py#L65

Added line #L65 was not covered by tests
reportname, docids=docids, converter="xlsx", context=context
)
else:
# Particular report:
data = dict(

Check warning on line 70 in report_xlsx/controllers/main.py

View check run for this annotation

Codecov / codecov/patch

report_xlsx/controllers/main.py#L70

Added line #L70 was not covered by tests
url_decode(url.split("?")[1]).items()
) # decoding the args represented in JSON
if "context" in data:
context, data_context = (

Check warning on line 74 in report_xlsx/controllers/main.py

View check run for this annotation

Codecov / codecov/patch

report_xlsx/controllers/main.py#L74

Added line #L74 was not covered by tests
json.loads(context or "{}"),
json.loads(data.pop("context")),
)
context = json.dumps({**context, **data_context})
response = self.report_routes(

Check warning on line 79 in report_xlsx/controllers/main.py

View check run for this annotation

Codecov / codecov/patch

report_xlsx/controllers/main.py#L78-L79

Added lines #L78 - L79 were not covered by tests
reportname, converter="xlsx", context=context, **data
)

report = request.env["ir.actions.report"]._get_report_from_name(

Check warning on line 83 in report_xlsx/controllers/main.py

View check run for this annotation

Codecov / codecov/patch

report_xlsx/controllers/main.py#L83

Added line #L83 was not covered by tests
reportname
)
filename = f"{report.name}.xlsx"

Check warning on line 86 in report_xlsx/controllers/main.py

View check run for this annotation

Codecov / codecov/patch

report_xlsx/controllers/main.py#L86

Added line #L86 was not covered by tests

if docids:
ids = [int(x) for x in docids.split(",")]
obj = request.env[report.model].browse(ids)

Check warning on line 90 in report_xlsx/controllers/main.py

View check run for this annotation

Codecov / codecov/patch

report_xlsx/controllers/main.py#L89-L90

Added lines #L89 - L90 were not covered by tests
if report.print_report_name and not len(obj) > 1:
report_name = safe_eval(

Check warning on line 92 in report_xlsx/controllers/main.py

View check run for this annotation

Codecov / codecov/patch

report_xlsx/controllers/main.py#L92

Added line #L92 was not covered by tests
report.print_report_name, {"object": obj, "time": time}
)
filename = f"{report_name}.xlsx"

Check warning on line 95 in report_xlsx/controllers/main.py

View check run for this annotation

Codecov / codecov/patch

report_xlsx/controllers/main.py#L95

Added line #L95 was not covered by tests
if not response.headers.get("Content-Disposition"):
response.headers.add(

Check warning on line 97 in report_xlsx/controllers/main.py

View check run for this annotation

Codecov / codecov/patch

report_xlsx/controllers/main.py#L97

Added line #L97 was not covered by tests
"Content-Disposition", content_disposition(filename)
)
return response
except Exception as e:
_logger.exception("Error while generating report %s", reportname)
se = _serialize_exception(e)
error = {"code": 200, "message": "Odoo Server Error", "data": se}
return request.make_response(html_escape(json.dumps(error)))

Check warning on line 105 in report_xlsx/controllers/main.py

View check run for this annotation

Codecov / codecov/patch

report_xlsx/controllers/main.py#L100-L105

Added lines #L100 - L105 were not covered by tests
else:
return super().report_download(data, context=context, token=token)

Check warning on line 107 in report_xlsx/controllers/main.py

View check run for this annotation

Codecov / codecov/patch

report_xlsx/controllers/main.py#L107

Added line #L107 was not covered by tests
14 changes: 14 additions & 0 deletions report_xlsx/demo/report.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!--
© 2017 Creu Blanca
License AGPL-3.0 or later (https://www.gnuorg/licenses/agpl.html).
-->
<record id="partner_xlsx" model="ir.actions.report">
<field name="name">Print to XLSX</field>
<field name="model">res.partner</field>
<field name="report_type">xlsx</field>
<field name="report_name">report_xlsx.partner_xlsx</field>
<field name="report_file">res_partner</field>
</record>
</odoo>
64 changes: 64 additions & 0 deletions report_xlsx/i18n/ca.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * report_xlsx
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 15.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2022-04-22 13:05+0000\n"
"Last-Translator: pablontura <[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
#: model:ir.model,name:report_xlsx.model_report_report_xlsx_abstract
msgid "Abstract XLSX Report"
msgstr "Informe XLSX abstracte"

#. module: report_xlsx
#: model:ir.model,name:report_xlsx.model_report_report_xlsx_partner_xlsx
msgid "Partner XLSX Report"
msgstr "Informe XLSX del soci"

#. module: report_xlsx
#: model:ir.actions.report,name:report_xlsx.partner_xlsx
msgid "Print to XLSX"
msgstr "Imprimeix a XLSX"

#. module: report_xlsx
#: model:ir.model,name:report_xlsx.model_ir_actions_report
msgid "Report Action"
msgstr "Informe d'acció"

#. module: report_xlsx
#: model:ir.model.fields,field_description:report_xlsx.field_ir_actions_report__report_type
msgid "Report Type"
msgstr "Tipus d'informe"

#. module: report_xlsx
#: model:ir.model.fields,help:report_xlsx.field_ir_actions_report__report_type
msgid ""
"The type of the report that will be rendered, each one having its own "
"rendering method. HTML means the report will be opened directly in your "
"browser PDF means the report will be rendered using Wkhtmltopdf and "
"downloaded by the user."
msgstr ""
"El tipus d'informe que es renderà, cadascun amb el seu propi mètode de "
"representació. HTML significa que l'informe s'obrirà directament al vostre "
"navegador, PDF significa que l'informe es representarà amb Wkhtmltopdf i "
"l'usuari el baixarà."

#. module: report_xlsx
#: model:ir.model.fields.selection,name:report_xlsx.selection__ir_actions_report__report_type__xlsx
msgid "XLSX"
msgstr "XLSX"

#, python-format
#~ msgid "%s model was not found"
#~ msgstr "No s'ha trobat el model %s"
Loading
Loading