diff --git a/brand_external_report_layout/README.rst b/brand_external_report_layout/README.rst new file mode 100644 index 000000000..177829822 --- /dev/null +++ b/brand_external_report_layout/README.rst @@ -0,0 +1,128 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + +============================ +Brand External Report Layout +============================ + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:f631e8f6c455343e2235afa800e86026080b06e9cc5a0e49c52c788ae227a923 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/license-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%2Fbrand-lightgray.png?logo=github + :target: https://github.com/OCA/brand/tree/18.0/brand_external_report_layout + :alt: OCA/brand +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/brand-18-0/brand-18-0-brand_external_report_layout + :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/brand&target_branch=18.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module allows you to have a different layout by brand for your +external reports. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +To use this module, you need to: + +1. Go to Settings > Users & Companies > Brands +2. Add a new brand or select an existing one +3. Enter brand information and select the a layout +4. Go to any branded object and print the PDF report. It includes the + information of the brand. + +Known issues / Roadmap +====================== + +To simplify the customization of the external layout we replaced the +variable company that odoo compute in the external_layout view by the +object brand. + +With this module, all custom layouts will display brand information out +of the box. + +This was possible and easy to implement as the company and the brand +models inherit from partner model and share the same informational +fields. + +The computed variable company is used to set report header and footer. +It's not meant to be used in the report business logic itself. But in +that case (if a custom layout use the variable company for some-reason +other then header and footer) this module can cause an issue because the +used field can be missing in the brand model or not correctly set. + +In this case, we recommend to always use document field company for this +use-end. + +Bug Tracker +=========== + +Bugs are tracked on `GitHub 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 `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +------- + +* ACSONE SA/NV + +Contributors +------------ + +- Souheil Bejaoui +- `Landoo, Sistemas de Información, S.L. `__: + + - Vicent Cubells + +- Freni Patel + +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. + +.. |maintainer-sbejaoui| image:: https://github.com/sbejaoui.png?size=40px + :target: https://github.com/sbejaoui + :alt: sbejaoui + +Current `maintainer `__: + +|maintainer-sbejaoui| + +This module is part of the `OCA/brand `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/brand_external_report_layout/__init__.py b/brand_external_report_layout/__init__.py new file mode 100644 index 000000000..aee8895e7 --- /dev/null +++ b/brand_external_report_layout/__init__.py @@ -0,0 +1,2 @@ +from . import models +from . import wizards diff --git a/brand_external_report_layout/__manifest__.py b/brand_external_report_layout/__manifest__.py new file mode 100644 index 000000000..e6f239e82 --- /dev/null +++ b/brand_external_report_layout/__manifest__.py @@ -0,0 +1,27 @@ +# Copyright 2019 ACSONE SA/NV +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + "name": "Brand External Report Layout", + "summary": """ + This module allows you to have a different layout by brand for your + external reports.""", + "version": "17.0.1.0.0", + "license": "AGPL-3", + "author": "ACSONE SA/NV," "Odoo Community Association (OCA)", + "website": "https://github.com/OCA/brand", + "depends": ["base", "brand", "web"], + "data": [ + "security/brand_document_layout.xml", + "views/res_brand.xml", + "views/report_template.xml", + "wizards/brand_document_layout.xml", + ], + "maintainers": ["sbejaoui"], + "assets": { + "web.report_assets_common": [ + "/brand_external_report_layout/" + "static/src/legacy/scss/asset_styles_brand_report.scss" + ] + }, +} diff --git a/brand_external_report_layout/i18n/brand_external_report_layout.pot b/brand_external_report_layout/i18n/brand_external_report_layout.pot new file mode 100644 index 000000000..8e0b341b0 --- /dev/null +++ b/brand_external_report_layout/i18n/brand_external_report_layout.pot @@ -0,0 +1,313 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * brand_external_report_layout +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: brand_external_report_layout +#: model_terms:ir.ui.view,arch_db:brand_external_report_layout.res_brand_form_view +msgid "" +"\n" +" Configure Document Layout" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__account_number +msgid "Account Number" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,help:brand_external_report_layout.field_brand_document_layout__report_header +#: model:ir.model.fields,help:brand_external_report_layout.field_res_brand__report_header +msgid "" +"Appears by default on the top right corner of your printed documents (report" +" header)." +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__layout_background_image +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__layout_background_image +msgid "Background Image" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__layout_background__blank +msgid "Blank" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model,name:brand_external_report_layout.model_res_brand +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__brand_id +msgid "Brand" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__company_details +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__company_details +msgid "Brand Details" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model,name:brand_external_report_layout.model_brand_document_layout +msgid "Brand Document Layout" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__logo +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__logo +msgid "Brand Logo" +msgstr "" + +#. module: brand_external_report_layout +#: model_terms:ir.ui.view,arch_db:brand_external_report_layout.brand_document_layout_form_view +msgid "Brand document layout" +msgstr "" + +#. module: brand_external_report_layout +#: model_terms:ir.ui.view,arch_db:brand_external_report_layout.res_brand_form_view +msgid "Change Document Template" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__company_id +msgid "Company" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__name +msgid "Company Name" +msgstr "" + +#. module: brand_external_report_layout +#. odoo-python +#: code:addons/brand_external_report_layout/models/res_brand.py:0 +msgid "Configure your document layout" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__country_id +msgid "Country" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__create_uid +msgid "Created by" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__create_date +msgid "Created on" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__layout_background__custom +msgid "Custom" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__custom_colors +msgid "Custom Colors" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__display_name +msgid "Display Name" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__qr_code +msgid "Display QR-code on invoices" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__external_report_layout_id +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__external_report_layout_id +msgid "Document Template" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__email +msgid "Email" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__fira_mono +msgid "Fira Mono" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__font +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__font +msgid "Font" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,help:brand_external_report_layout.field_brand_document_layout__report_footer +#: model:ir.model.fields,help:brand_external_report_layout.field_res_brand__report_footer +msgid "Footer text displayed at the bottom of all reports." +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__from_invoice +msgid "From Invoice" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,help:brand_external_report_layout.field_brand_document_layout__company_details +#: model:ir.model.fields,help:brand_external_report_layout.field_res_brand__company_details +msgid "Header text displayed at the top of all reports." +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__id +msgid "ID" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__is_company_details_empty +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__is_company_details_empty +msgid "Is Company Details Empty" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__write_date +msgid "Last Updated on" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__lato +msgid "Lato" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__layout_background +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__layout_background +msgid "Layout Background" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__logo_primary_color +msgid "Logo Primary Color" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__logo_secondary_color +msgid "Logo Secondary Color" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__montserrat +msgid "Montserrat" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__open_sans +msgid "Open Sans" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__oswald +msgid "Oswald" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__paperformat_id +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__paperformat_id +msgid "Paper format" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__partner_id +msgid "Partner" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__phone +msgid "Phone" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__preview +msgid "Preview" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__preview_logo +msgid "Preview logo" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__primary_color +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__primary_color +msgid "Primary Color" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__raleway +msgid "Raleway" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__report_footer +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__report_footer +msgid "Report Footer" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__report_header +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__report_header +msgid "Report Header" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__report_layout_id +msgid "Report Layout" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__roboto +msgid "Roboto" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__secondary_color +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__secondary_color +msgid "Secondary Color" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__tajawal +msgid "Tajawal" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__vat +msgid "Tax ID" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,help:brand_external_report_layout.field_brand_document_layout__vat +msgid "" +"The Tax Identification Number. Values here will be validated based on the " +"country format. You can use '/' to indicate that the partner is not subject " +"to tax." +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__website +msgid "Website Link" +msgstr "" diff --git a/brand_external_report_layout/i18n/es.po b/brand_external_report_layout/i18n/es.po new file mode 100644 index 000000000..094a0d229 --- /dev/null +++ b/brand_external_report_layout/i18n/es.po @@ -0,0 +1,301 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * brand_external_report_layout +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2023-07-31 18:09+0000\n" +"Last-Translator: Ivorra78 \n" +"Language-Team: none\n" +"Language: es\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.17\n" + +#. module: brand_external_report_layout +#: model:ir.model.fields,help:brand_external_report_layout.field_brand_document_layout__report_header +#: model:ir.model.fields,help:brand_external_report_layout.field_res_brand__report_header +msgid "" +"Appears by default on the top right corner of your printed documents (report " +"header)." +msgstr "" +"Aparece por defecto en la esquina superior derecha de los documentos " +"impresos (cabecera del informe)." + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__layout_background_image +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__layout_background_image +msgid "Background Image" +msgstr "Imagen de fondo" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__layout_background__blank +msgid "Blank" +msgstr "En blanco" + +#. module: brand_external_report_layout +#: model:ir.model,name:brand_external_report_layout.model_res_brand +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__brand_id +msgid "Brand" +msgstr "Marca" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__company_details +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__company_details +msgid "Brand Details" +msgstr "Detalles de la marca" + +#. module: brand_external_report_layout +#: model:ir.model,name:brand_external_report_layout.model_brand_document_layout +msgid "Brand Document Layout" +msgstr "Diseño del documento de marca" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__logo +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__logo +msgid "Brand Logo" +msgstr "Logotipo de la marca" + +#. module: brand_external_report_layout +#: model_terms:ir.ui.view,arch_db:brand_external_report_layout.brand_document_layout_form_view +msgid "Brand document layout" +msgstr "Diseño del documento de marca" + +#. module: brand_external_report_layout +#: model_terms:ir.ui.view,arch_db:brand_external_report_layout.res_brand_form_view +msgid "Change Document Template" +msgstr "Plantilla de documento de modificación" + +#. module: brand_external_report_layout +#. odoo-python +#: code:addons/brand_external_report_layout/models/res_brand.py:0 +#, python-format +msgid "Choose Your Document Layout" +msgstr "Elija el diseño de su documento" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__company_id +msgid "Company" +msgstr "Companía" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__name +msgid "Company Name" +msgstr "Nombre de la Compañía" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__country_id +msgid "Country" +msgstr "País" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__create_date +msgid "Created on" +msgstr "Creado el" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__layout_background__custom +msgid "Custom" +msgstr "Personalizar" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__custom_colors +msgid "Custom Colors" +msgstr "Colores Personalizados" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__display_name +msgid "Display Name" +msgstr "Nombre a Mostrar" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__external_report_layout_id +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__external_report_layout_id +msgid "Document Template" +msgstr "Plantilla de documento" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__email +msgid "Email" +msgstr "Correo Electrónico" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__font +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__font +msgid "Font" +msgstr "Fuente" + +#. module: brand_external_report_layout +#: model:ir.model.fields,help:brand_external_report_layout.field_brand_document_layout__report_footer +#: model:ir.model.fields,help:brand_external_report_layout.field_res_brand__report_footer +msgid "Footer text displayed at the bottom of all reports." +msgstr "" +"Texto a pie de página que aparece en la parte inferior de todos los informes." + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__layout_background__geometric +msgid "Geometric" +msgstr "Geométrico" + +#. module: brand_external_report_layout +#: model:ir.model.fields,help:brand_external_report_layout.field_brand_document_layout__company_details +#: model:ir.model.fields,help:brand_external_report_layout.field_res_brand__company_details +msgid "Header text displayed at the top of all reports." +msgstr "" +"Texto de cabecera que aparece en la parte superior de todos los informes." + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__id +msgid "ID" +msgstr "ID (identificación)" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__is_company_details_empty +msgid "Is Company Details Empty" +msgstr "Están vacíos los detalles de la empresa" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout____last_update +msgid "Last Modified on" +msgstr "Última Modificación el" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__write_uid +msgid "Last Updated by" +msgstr "Actualizado por última vez por" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__write_date +msgid "Last Updated on" +msgstr "Última Actualización el" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__lato +msgid "Lato" +msgstr "Lato" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__layout_background +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__layout_background +msgid "Layout Background" +msgstr "Diseño de fondo" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__logo_primary_color +msgid "Logo Primary Color" +msgstr "Color primario del logotipo" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__logo_secondary_color +msgid "Logo Secondary Color" +msgstr "Color secundario del logotipo" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__montserrat +msgid "Montserrat" +msgstr "Montserrat" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__open_sans +msgid "Open Sans" +msgstr "Abrir sans" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__oswald +msgid "Oswald" +msgstr "Osvaldo" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__paperformat_id +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__paperformat_id +msgid "Paper format" +msgstr "Formato del papel" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__partner_id +msgid "Partner" +msgstr "Proveedor" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__phone +msgid "Phone" +msgstr "Teléfono" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__preview +msgid "Preview" +msgstr "Previsualización" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__preview_logo +msgid "Preview logo" +msgstr "Vista previa del logotipo" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__primary_color +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__primary_color +msgid "Primary Color" +msgstr "Color primario" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__raleway +msgid "Raleway" +msgstr "Carretera" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__report_footer +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__report_footer +msgid "Report Footer" +msgstr "Pie de página del informe" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__report_header +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__report_header +msgid "Report Header" +msgstr "Encabezado del informe" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__report_layout_id +msgid "Report Layout" +msgstr "Diseño del informe" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__roboto +msgid "Roboto" +msgstr "Roboto" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__secondary_color +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__secondary_color +msgid "Secondary Color" +msgstr "Color secundario" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__vat +msgid "Tax ID" +msgstr "Número de identificación fiscal" + +#. module: brand_external_report_layout +#: model:ir.model.fields,help:brand_external_report_layout.field_brand_document_layout__vat +msgid "" +"The Tax Identification Number. Values here will be validated based on the " +"country format. You can use '/' to indicate that the partner is not subject " +"to tax." +msgstr "" +"El número de identificación fiscal. Los valores aquí se validarán en función " +"del formato del país. Puede utilizar '/' para indicar que el socio no está " +"sujeto a impuestos." + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__website +msgid "Website Link" +msgstr "Enlace a página web" diff --git a/brand_external_report_layout/i18n/es_AR.po b/brand_external_report_layout/i18n/es_AR.po new file mode 100644 index 000000000..c97eb6fde --- /dev/null +++ b/brand_external_report_layout/i18n/es_AR.po @@ -0,0 +1,303 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * brand_external_report_layout +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2023-06-25 18:08+0000\n" +"Last-Translator: Ignacio Buioli \n" +"Language-Team: none\n" +"Language: es_AR\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.17\n" + +#. module: brand_external_report_layout +#: model:ir.model.fields,help:brand_external_report_layout.field_brand_document_layout__report_header +#: model:ir.model.fields,help:brand_external_report_layout.field_res_brand__report_header +msgid "" +"Appears by default on the top right corner of your printed documents (report " +"header)." +msgstr "" +"Aparece de forma predeterminada en la esquina superior derecha de sus " +"documentos impresos (encabezado del reporte)." + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__layout_background_image +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__layout_background_image +msgid "Background Image" +msgstr "Imagen de Fondo" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__layout_background__blank +msgid "Blank" +msgstr "Blanco" + +#. module: brand_external_report_layout +#: model:ir.model,name:brand_external_report_layout.model_res_brand +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__brand_id +msgid "Brand" +msgstr "Marca" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__company_details +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__company_details +msgid "Brand Details" +msgstr "Detalles de la Marca" + +#. module: brand_external_report_layout +#: model:ir.model,name:brand_external_report_layout.model_brand_document_layout +msgid "Brand Document Layout" +msgstr "Diseño de Documento de Marca" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__logo +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__logo +msgid "Brand Logo" +msgstr "Logo de Marca" + +#. module: brand_external_report_layout +#: model_terms:ir.ui.view,arch_db:brand_external_report_layout.brand_document_layout_form_view +msgid "Brand document layout" +msgstr "Diseño de Documento de Marca" + +#. module: brand_external_report_layout +#: model_terms:ir.ui.view,arch_db:brand_external_report_layout.res_brand_form_view +msgid "Change Document Template" +msgstr "Cambiar Plantilla del Documento" + +#. module: brand_external_report_layout +#. odoo-python +#: code:addons/brand_external_report_layout/models/res_brand.py:0 +#, python-format +msgid "Choose Your Document Layout" +msgstr "Elija su Diseño de Documento" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__company_id +msgid "Company" +msgstr "Compañía" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__name +msgid "Company Name" +msgstr "Nombre de Compañía" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__country_id +msgid "Country" +msgstr "País" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__create_date +msgid "Created on" +msgstr "Creado el" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__layout_background__custom +msgid "Custom" +msgstr "Personalizado" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__custom_colors +msgid "Custom Colors" +msgstr "Personalizar Colores" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__display_name +msgid "Display Name" +msgstr "Nombre Mostrado" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__external_report_layout_id +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__external_report_layout_id +msgid "Document Template" +msgstr "Plantilla de Documento" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__email +msgid "Email" +msgstr "Correo Electrónico" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__font +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__font +msgid "Font" +msgstr "Fuente" + +#. module: brand_external_report_layout +#: model:ir.model.fields,help:brand_external_report_layout.field_brand_document_layout__report_footer +#: model:ir.model.fields,help:brand_external_report_layout.field_res_brand__report_footer +msgid "Footer text displayed at the bottom of all reports." +msgstr "" +"Texto de pie de página que se muestra en la parte inferior de todos los " +"reportes." + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__layout_background__geometric +msgid "Geometric" +msgstr "Geométrico" + +#. module: brand_external_report_layout +#: model:ir.model.fields,help:brand_external_report_layout.field_brand_document_layout__company_details +#: model:ir.model.fields,help:brand_external_report_layout.field_res_brand__company_details +msgid "Header text displayed at the top of all reports." +msgstr "" +"Texto de encabezado que se muestra en la parte superior de todos los " +"reportes." + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__id +msgid "ID" +msgstr "ID" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__is_company_details_empty +msgid "Is Company Details Empty" +msgstr "Están vacíos los detalles de la Compañía" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout____last_update +msgid "Last Modified on" +msgstr "Última modificación el" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__write_uid +msgid "Last Updated by" +msgstr "Última actualización por" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__write_date +msgid "Last Updated on" +msgstr "Última modificación el" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__lato +msgid "Lato" +msgstr "Lato" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__layout_background +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__layout_background +msgid "Layout Background" +msgstr "Diseño del Fondo" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__logo_primary_color +msgid "Logo Primary Color" +msgstr "Color Primario del Logo" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__logo_secondary_color +msgid "Logo Secondary Color" +msgstr "Color Secundario del Logo" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__montserrat +msgid "Montserrat" +msgstr "Montserrat" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__open_sans +msgid "Open Sans" +msgstr "Open Sans" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__oswald +msgid "Oswald" +msgstr "Oswald" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__paperformat_id +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__paperformat_id +msgid "Paper format" +msgstr "Formato de papel" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__partner_id +msgid "Partner" +msgstr "Contacto" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__phone +msgid "Phone" +msgstr "Teléfono" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__preview +msgid "Preview" +msgstr "Previsualizar" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__preview_logo +msgid "Preview logo" +msgstr "Previsualizar Logo" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__primary_color +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__primary_color +msgid "Primary Color" +msgstr "Color Primario" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__raleway +msgid "Raleway" +msgstr "Raleway" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__report_footer +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__report_footer +msgid "Report Footer" +msgstr "Pie de Página del Reporte" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__report_header +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__report_header +msgid "Report Header" +msgstr "Encabezado del Reporte" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__report_layout_id +msgid "Report Layout" +msgstr "Diseño del Reporte" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__roboto +msgid "Roboto" +msgstr "Roboto" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__secondary_color +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__secondary_color +msgid "Secondary Color" +msgstr "Color Secundario" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__vat +msgid "Tax ID" +msgstr "ID de Impuesto" + +#. module: brand_external_report_layout +#: model:ir.model.fields,help:brand_external_report_layout.field_brand_document_layout__vat +msgid "" +"The Tax Identification Number. Values here will be validated based on the " +"country format. You can use '/' to indicate that the partner is not subject " +"to tax." +msgstr "" +"El Número de Identificación Fiscal. Los valores aquí se validarán según el " +"formato del país. Puede utilizar '/' para indicar que el contacto no está " +"sujeto a impuestos." + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__website +msgid "Website Link" +msgstr "Vínculo de Sitio Web" diff --git a/brand_external_report_layout/i18n/hr.po b/brand_external_report_layout/i18n/hr.po new file mode 100644 index 000000000..42dd92c90 --- /dev/null +++ b/brand_external_report_layout/i18n/hr.po @@ -0,0 +1,300 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * brand_external_report_layout +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2023-02-16 14:23+0000\n" +"Last-Translator: Bole \n" +"Language-Team: none\n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.14.1\n" + +#. module: brand_external_report_layout +#: model:ir.model.fields,help:brand_external_report_layout.field_brand_document_layout__report_header +#: model:ir.model.fields,help:brand_external_report_layout.field_res_brand__report_header +msgid "" +"Appears by default on the top right corner of your printed documents (report " +"header)." +msgstr "" +"Pojavljuje se kao zadano u gornjem desnom kutu na vašem ispisu (zaglavlje " +"dokumenta)." + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__layout_background_image +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__layout_background_image +msgid "Background Image" +msgstr "Pozadinska slika" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__layout_background__blank +msgid "Blank" +msgstr "Prazno" + +#. module: brand_external_report_layout +#: model:ir.model,name:brand_external_report_layout.model_res_brand +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__brand_id +msgid "Brand" +msgstr "Brend" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__company_details +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__company_details +msgid "Brand Details" +msgstr "Detalji Brenda" + +#. module: brand_external_report_layout +#: model:ir.model,name:brand_external_report_layout.model_brand_document_layout +msgid "Brand Document Layout" +msgstr "Izgled dokumenta za brend" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__logo +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__logo +msgid "Brand Logo" +msgstr "Brend logo" + +#. module: brand_external_report_layout +#: model_terms:ir.ui.view,arch_db:brand_external_report_layout.brand_document_layout_form_view +msgid "Brand document layout" +msgstr "Izgled dokumenata brenda" + +#. module: brand_external_report_layout +#: model_terms:ir.ui.view,arch_db:brand_external_report_layout.res_brand_form_view +msgid "Change Document Template" +msgstr "Promjeni predložak dokumenta" + +#. module: brand_external_report_layout +#. odoo-python +#: code:addons/brand_external_report_layout/models/res_brand.py:0 +#, python-format +msgid "Choose Your Document Layout" +msgstr "Odaberi vaš izgled dokumenata" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__company_id +msgid "Company" +msgstr "Tvrtka" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__name +msgid "Company Name" +msgstr "Naziv tvrtke" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__country_id +msgid "Country" +msgstr "Država" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__create_uid +msgid "Created by" +msgstr "Kreirao" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__create_date +msgid "Created on" +msgstr "Kreirano" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__layout_background__custom +msgid "Custom" +msgstr "Prilagođeno" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__custom_colors +msgid "Custom Colors" +msgstr "Prilagođene boje" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__display_name +msgid "Display Name" +msgstr "Prikazani naziv" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__external_report_layout_id +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__external_report_layout_id +msgid "Document Template" +msgstr "Predložak dokumenta" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__email +msgid "Email" +msgstr "Email" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__font +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__font +msgid "Font" +msgstr "Font" + +#. module: brand_external_report_layout +#: model:ir.model.fields,help:brand_external_report_layout.field_brand_document_layout__report_footer +#: model:ir.model.fields,help:brand_external_report_layout.field_res_brand__report_footer +msgid "Footer text displayed at the bottom of all reports." +msgstr "Tekst podnožja prikazan na svim ispisanim dokumentima." + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__layout_background__geometric +msgid "Geometric" +msgstr "Geometrijski" + +#. module: brand_external_report_layout +#: model:ir.model.fields,help:brand_external_report_layout.field_brand_document_layout__company_details +#: model:ir.model.fields,help:brand_external_report_layout.field_res_brand__company_details +msgid "Header text displayed at the top of all reports." +msgstr "Tekst zaglavlja prikazan na vrhu svih dokumenata." + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__id +msgid "ID" +msgstr "ID" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__is_company_details_empty +msgid "Is Company Details Empty" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout____last_update +msgid "Last Modified on" +msgstr "Zadnje modificirano" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__write_uid +msgid "Last Updated by" +msgstr "Zadnji ažurirao" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__write_date +msgid "Last Updated on" +msgstr "Zadnje ažurirano" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__lato +msgid "Lato" +msgstr "Lato" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__layout_background +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__layout_background +msgid "Layout Background" +msgstr "Pozadina predloška" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__logo_primary_color +msgid "Logo Primary Color" +msgstr "Primarna boja loga" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__logo_secondary_color +msgid "Logo Secondary Color" +msgstr "Sekundarna boja loga" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__montserrat +msgid "Montserrat" +msgstr "Montserrat" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__open_sans +msgid "Open Sans" +msgstr "Open Sans" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__oswald +msgid "Oswald" +msgstr "Oswald" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__paperformat_id +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__paperformat_id +msgid "Paper format" +msgstr "Format papira" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__partner_id +msgid "Partner" +msgstr "Partner" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__phone +msgid "Phone" +msgstr "Telefon" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__preview +msgid "Preview" +msgstr "Pregled" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__preview_logo +msgid "Preview logo" +msgstr "Pregled loga" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__primary_color +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__primary_color +msgid "Primary Color" +msgstr "Primarna boja" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__raleway +#, fuzzy +msgid "Raleway" +msgstr "Raleway" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__report_footer +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__report_footer +msgid "Report Footer" +msgstr "Podnožje izvještaja" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__report_header +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__report_header +msgid "Report Header" +msgstr "Zaglavlje izvještaja" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__report_layout_id +msgid "Report Layout" +msgstr "Izgled izvještaja" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__roboto +msgid "Roboto" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__secondary_color +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__secondary_color +msgid "Secondary Color" +msgstr "Sekundarna boja" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__vat +msgid "Tax ID" +msgstr "Por Br" + +#. module: brand_external_report_layout +#: model:ir.model.fields,help:brand_external_report_layout.field_brand_document_layout__vat +msgid "" +"The Tax Identification Number. Values here will be validated based on the " +"country format. You can use '/' to indicate that the partner is not subject " +"to tax." +msgstr "" +"Porezni broj. Ove vrijednosti se provjeravaju bazirano na formatima država. " +"Možete koristiti '/' da naznačite da partner nije podložan oporezivanju." + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__website +msgid "Website Link" +msgstr "Poveznica na webstranicu" diff --git a/brand_external_report_layout/i18n/it.po b/brand_external_report_layout/i18n/it.po new file mode 100644 index 000000000..2be1bf2f9 --- /dev/null +++ b/brand_external_report_layout/i18n/it.po @@ -0,0 +1,299 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * brand_external_report_layout +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2026-02-17 09:09+0000\n" +"Last-Translator: mymage \n" +"Language-Team: none\n" +"Language: it\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 5.15.2\n" + +#. module: brand_external_report_layout +#: model:ir.model.fields,help:brand_external_report_layout.field_brand_document_layout__report_header +#: model:ir.model.fields,help:brand_external_report_layout.field_res_brand__report_header +msgid "" +"Appears by default on the top right corner of your printed documents (report" +" header)." +msgstr "" +"Viene visualizzato per impostazione predefinita nell'angolo in alto a destra " +"dei documenti stampati (intestazione del resoconto)." + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__layout_background_image +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__layout_background_image +msgid "Background Image" +msgstr "Immagine di sfondo" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__layout_background__blank +msgid "Blank" +msgstr "Vuoto" + +#. module: brand_external_report_layout +#: model:ir.model,name:brand_external_report_layout.model_res_brand +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__brand_id +msgid "Brand" +msgstr "Marca" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__company_details +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__company_details +msgid "Brand Details" +msgstr "Dettagli marca" + +#. module: brand_external_report_layout +#: model:ir.model,name:brand_external_report_layout.model_brand_document_layout +msgid "Brand Document Layout" +msgstr "Schema documento marca" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__logo +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__logo +msgid "Brand Logo" +msgstr "Logo marca" + +#. module: brand_external_report_layout +#: model_terms:ir.ui.view,arch_db:brand_external_report_layout.brand_document_layout_form_view +msgid "Brand document layout" +msgstr "Schema documento marca" + +#. module: brand_external_report_layout +#: model_terms:ir.ui.view,arch_db:brand_external_report_layout.res_brand_form_view +msgid "Change Document Template" +msgstr "Modifica modello documento" + +#. module: brand_external_report_layout +#. odoo-python +#: code:addons/brand_external_report_layout/models/res_brand.py:0 +#, python-format +msgid "Choose Your Document Layout" +msgstr "Scelta schema documento" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__company_id +msgid "Company" +msgstr "Azienda" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__name +msgid "Company Name" +msgstr "Nome azienda" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__country_id +msgid "Country" +msgstr "Nazione" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__create_uid +msgid "Created by" +msgstr "Creato da" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__create_date +msgid "Created on" +msgstr "Creato il" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__layout_background__custom +msgid "Custom" +msgstr "Personalizzato" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__custom_colors +msgid "Custom Colors" +msgstr "Colori personalizzati" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__display_name +msgid "Display Name" +msgstr "Nome visualizzato" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__external_report_layout_id +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__external_report_layout_id +msgid "Document Template" +msgstr "Modello documento" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__email +msgid "Email" +msgstr "E-mail" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__font +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__font +msgid "Font" +msgstr "Carattere" + +#. module: brand_external_report_layout +#: model:ir.model.fields,help:brand_external_report_layout.field_brand_document_layout__report_footer +#: model:ir.model.fields,help:brand_external_report_layout.field_res_brand__report_footer +msgid "Footer text displayed at the bottom of all reports." +msgstr "Testo in calce visualizzato in fondo al resoconto." + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__layout_background__geometric +msgid "Geometric" +msgstr "Geomatrico" + +#. module: brand_external_report_layout +#: model:ir.model.fields,help:brand_external_report_layout.field_brand_document_layout__company_details +#: model:ir.model.fields,help:brand_external_report_layout.field_res_brand__company_details +msgid "Header text displayed at the top of all reports." +msgstr "Testo testata visualizzato sulla sommità di ogni resoconto." + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__id +msgid "ID" +msgstr "ID" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__is_company_details_empty +msgid "Is Company Details Empty" +msgstr "I dettagli azienda sono vuoti" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout____last_update +msgid "Last Modified on" +msgstr "Ultima modifica il" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__write_uid +msgid "Last Updated by" +msgstr "Ultimo aggiornamento di" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__write_date +msgid "Last Updated on" +msgstr "Ultimo aggiornamento il" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__lato +msgid "Lato" +msgstr "Lato" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__layout_background +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__layout_background +msgid "Layout Background" +msgstr "Sfondo schema" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__logo_primary_color +msgid "Logo Primary Color" +msgstr "Colore primario logo" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__logo_secondary_color +msgid "Logo Secondary Color" +msgstr "Colore secondario logo" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__montserrat +msgid "Montserrat" +msgstr "Montserrat" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__open_sans +msgid "Open Sans" +msgstr "Open Sans" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__oswald +msgid "Oswald" +msgstr "Oswald" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__paperformat_id +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__paperformat_id +msgid "Paper format" +msgstr "Formato carta" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__partner_id +msgid "Partner" +msgstr "Partner" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__phone +msgid "Phone" +msgstr "Telefono" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__preview +msgid "Preview" +msgstr "Anteprima" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__preview_logo +msgid "Preview logo" +msgstr "Anteprima logo" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__primary_color +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__primary_color +msgid "Primary Color" +msgstr "Colore primario" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__raleway +msgid "Raleway" +msgstr "Raleway" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__report_footer +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__report_footer +msgid "Report Footer" +msgstr "Piè pagina resoconto" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__report_header +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__report_header +msgid "Report Header" +msgstr "Intestazione resoconto" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__report_layout_id +msgid "Report Layout" +msgstr "Schema resoconto" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__roboto +msgid "Roboto" +msgstr "Roboto" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__secondary_color +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__secondary_color +msgid "Secondary Color" +msgstr "Colore secondario" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__vat +msgid "Tax ID" +msgstr "Partita IVA" + +#. module: brand_external_report_layout +#: model:ir.model.fields,help:brand_external_report_layout.field_brand_document_layout__vat +msgid "" +"The Tax Identification Number. Values here will be validated based on the " +"country format. You can use '/' to indicate that the partner is not subject " +"to tax." +msgstr "" +"Il numero identificazione imposta. I valori verranno validati nel formato " +"della nazione. Si può utilizzare '/' per indicare che il partner non è " +"soggetto all'imposta." + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__website +msgid "Website Link" +msgstr "Link al sito web" diff --git a/brand_external_report_layout/i18n/nl.po b/brand_external_report_layout/i18n/nl.po new file mode 100644 index 000000000..239d8ed8b --- /dev/null +++ b/brand_external_report_layout/i18n/nl.po @@ -0,0 +1,300 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * brand_external_report_layout +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2025-02-04 23:06+0000\n" +"Last-Translator: Bosd \n" +"Language-Team: none\n" +"Language: nl\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 5.6.2\n" + +#. module: brand_external_report_layout +#: model:ir.model.fields,help:brand_external_report_layout.field_brand_document_layout__report_header +#: model:ir.model.fields,help:brand_external_report_layout.field_res_brand__report_header +msgid "" +"Appears by default on the top right corner of your printed documents (report" +" header)." +msgstr "" +"Verschijnt standaard in de rechterbovenhoek van uw afgedrukte documenten " +"(rapportkop)." + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__layout_background_image +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__layout_background_image +msgid "Background Image" +msgstr "Achtergrondafbeelding" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__layout_background__blank +msgid "Blank" +msgstr "Leeg" + +#. module: brand_external_report_layout +#: model:ir.model,name:brand_external_report_layout.model_res_brand +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__brand_id +msgid "Brand" +msgstr "Merk" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__company_details +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__company_details +msgid "Brand Details" +msgstr "Merkgegevens" + +#. module: brand_external_report_layout +#: model:ir.model,name:brand_external_report_layout.model_brand_document_layout +msgid "Brand Document Layout" +msgstr "Merksjabloon" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__logo +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__logo +msgid "Brand Logo" +msgstr "Merklogo" + +#. module: brand_external_report_layout +#: model_terms:ir.ui.view,arch_db:brand_external_report_layout.brand_document_layout_form_view +msgid "Brand document layout" +msgstr "Merksjabloon" + +#. module: brand_external_report_layout +#: model_terms:ir.ui.view,arch_db:brand_external_report_layout.res_brand_form_view +msgid "Change Document Template" +msgstr "Wijzig documentsjabloon" + +#. module: brand_external_report_layout +#. odoo-python +#: code:addons/brand_external_report_layout/models/res_brand.py:0 +#, python-format +msgid "Choose Your Document Layout" +msgstr "Kies uw documentsjabloon" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__company_id +msgid "Company" +msgstr "Bedrijf" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__name +msgid "Company Name" +msgstr "Bedrijfsnaam" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__country_id +msgid "Country" +msgstr "Land" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__create_uid +msgid "Created by" +msgstr "Gemaakt door" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__create_date +msgid "Created on" +msgstr "Gemaakt op" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__layout_background__custom +msgid "Custom" +msgstr "Aangepast" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__custom_colors +msgid "Custom Colors" +msgstr "Aangepaste kleuren" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__display_name +msgid "Display Name" +msgstr "Weergavenaam" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__external_report_layout_id +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__external_report_layout_id +msgid "Document Template" +msgstr "Documentsjabloon" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__email +msgid "Email" +msgstr "E-mail" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__font +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__font +msgid "Font" +msgstr "Lettertype" + +#. module: brand_external_report_layout +#: model:ir.model.fields,help:brand_external_report_layout.field_brand_document_layout__report_footer +#: model:ir.model.fields,help:brand_external_report_layout.field_res_brand__report_footer +msgid "Footer text displayed at the bottom of all reports." +msgstr "Voettekst die onderaan alle rapporten wordt weergegeven." + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__layout_background__geometric +msgid "Geometric" +msgstr "Geometrisch" + +#. module: brand_external_report_layout +#: model:ir.model.fields,help:brand_external_report_layout.field_brand_document_layout__company_details +#: model:ir.model.fields,help:brand_external_report_layout.field_res_brand__company_details +msgid "Header text displayed at the top of all reports." +msgstr "Koptekst die bovenaan alle rapporten wordt weergegeven." + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__id +msgid "ID" +msgstr "ID" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__is_company_details_empty +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__is_company_details_empty +msgid "Is Company Details Empty" +msgstr "Zijn bedrijfsgegevens leeg" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout____last_update +msgid "Last Modified on" +msgstr "Laatst gewijzigd op" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__write_uid +msgid "Last Updated by" +msgstr "Laatst bijgewerkt door" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__write_date +msgid "Last Updated on" +msgstr "Laatst bijgewerkt op" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__lato +msgid "Lato" +msgstr "Lato" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__layout_background +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__layout_background +msgid "Layout Background" +msgstr "Lay-outachtergrond" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__logo_primary_color +msgid "Logo Primary Color" +msgstr "Primaire kleur logo" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__logo_secondary_color +msgid "Logo Secondary Color" +msgstr "Secundaire kleur logo" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__montserrat +msgid "Montserrat" +msgstr "Montserrat" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__open_sans +msgid "Open Sans" +msgstr "Open Sans" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__oswald +msgid "Oswald" +msgstr "Oswald" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__paperformat_id +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__paperformat_id +msgid "Paper format" +msgstr "Papierformaat" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__partner_id +msgid "Partner" +msgstr "Partner" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__phone +msgid "Phone" +msgstr "Telefoon" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__preview +msgid "Preview" +msgstr "Voorbeeld" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__preview_logo +msgid "Preview logo" +msgstr "Voorbeeldlogo" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__primary_color +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__primary_color +msgid "Primary Color" +msgstr "Primaire kleur" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__raleway +msgid "Raleway" +msgstr "Raleway" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__report_footer +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__report_footer +msgid "Report Footer" +msgstr "Rapportvoettekst" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__report_header +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__report_header +msgid "Report Header" +msgstr "Rapportkoptekst" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__report_layout_id +msgid "Report Layout" +msgstr "Rapportsjabloon" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__roboto +msgid "Roboto" +msgstr "Roboto" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__secondary_color +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__secondary_color +msgid "Secondary Color" +msgstr "Secundaire kleur" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__vat +msgid "Tax ID" +msgstr "BTW-nummer" + +#. module: brand_external_report_layout +#: model:ir.model.fields,help:brand_external_report_layout.field_brand_document_layout__vat +msgid "" +"The Tax Identification Number. Values here will be validated based on the " +"country format. You can use '/' to indicate that the partner is not subject " +"to tax." +msgstr "" +"Het btw-identificatienummer. Waarden hier worden gevalideerd op basis van " +"het landformaat. U kunt '/' gebruiken om aan te geven dat de partner niet " +"belastingplichtig is." + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__website +msgid "Website Link" +msgstr "Website link" diff --git a/brand_external_report_layout/i18n/tr.po b/brand_external_report_layout/i18n/tr.po new file mode 100644 index 000000000..d229ba324 --- /dev/null +++ b/brand_external_report_layout/i18n/tr.po @@ -0,0 +1,321 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * brand_external_report_layout +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2026-03-31 17:45+0000\n" +"Last-Translator: Betül Öğmen \n" +"Language-Team: none\n" +"Language: tr\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 5.15.2\n" + +#. module: brand_external_report_layout +#: model_terms:ir.ui.view,arch_db:brand_external_report_layout.res_brand_form_view +msgid "" +"\n" +" Configure Document Layout" +msgstr "" +"\n" +" Belge Düzenini Yapılandır" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__account_number +msgid "Account Number" +msgstr "Hesap Numarası" + +#. module: brand_external_report_layout +#: model:ir.model.fields,help:brand_external_report_layout.field_brand_document_layout__report_header +#: model:ir.model.fields,help:brand_external_report_layout.field_res_brand__report_header +msgid "" +"Appears by default on the top right corner of your printed documents (report" +" header)." +msgstr "" +"Varsayılan olarak çıktıların üst sağ köşesinde görünecek (çıktı başlığı)." + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__layout_background_image +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__layout_background_image +msgid "Background Image" +msgstr "Arkaplan Resmi" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__layout_background__blank +msgid "Blank" +msgstr "Boş" + +#. module: brand_external_report_layout +#: model:ir.model,name:brand_external_report_layout.model_res_brand +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__brand_id +msgid "Brand" +msgstr "Marka" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__company_details +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__company_details +msgid "Brand Details" +msgstr "Marka Detayları" + +#. module: brand_external_report_layout +#: model:ir.model,name:brand_external_report_layout.model_brand_document_layout +msgid "Brand Document Layout" +msgstr "Marka Belge Düzeni" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__logo +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__logo +msgid "Brand Logo" +msgstr "Marka Logosu" + +#. module: brand_external_report_layout +#: model_terms:ir.ui.view,arch_db:brand_external_report_layout.brand_document_layout_form_view +msgid "Brand document layout" +msgstr "Marka belge düzeni" + +#. module: brand_external_report_layout +#: model_terms:ir.ui.view,arch_db:brand_external_report_layout.res_brand_form_view +msgid "Change Document Template" +msgstr "Belge Şablonunu Değiştir" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__company_id +msgid "Company" +msgstr "Şirket" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__name +msgid "Company Name" +msgstr "Şirket Adı" + +#. module: brand_external_report_layout +#. odoo-python +#: code:addons/brand_external_report_layout/models/res_brand.py:0 +msgid "Configure your document layout" +msgstr "Belge düzeninizi seçin" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__country_id +msgid "Country" +msgstr "Ülke" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__create_uid +msgid "Created by" +msgstr "Oluşturan" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__create_date +msgid "Created on" +msgstr "Oluşturulma" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__layout_background__custom +msgid "Custom" +msgstr "Özel" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__custom_colors +msgid "Custom Colors" +msgstr "Özel Renkler" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__display_name +msgid "Display Name" +msgstr "Görünen Ad" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__qr_code +msgid "Display QR-code on invoices" +msgstr "Faturalarda QR kodunu görüntüle" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__external_report_layout_id +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__external_report_layout_id +msgid "Document Template" +msgstr "Belge Şablonu" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__email +msgid "Email" +msgstr "E-Posta" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__fira_mono +msgid "Fira Mono" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__font +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__font +msgid "Font" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,help:brand_external_report_layout.field_brand_document_layout__report_footer +#: model:ir.model.fields,help:brand_external_report_layout.field_res_brand__report_footer +msgid "Footer text displayed at the bottom of all reports." +msgstr "Footer metin tüm çıktıların alt kısmında görüntülenir." + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__from_invoice +msgid "From Invoice" +msgstr "Faturadan" + +#. module: brand_external_report_layout +#: model:ir.model.fields,help:brand_external_report_layout.field_brand_document_layout__company_details +#: model:ir.model.fields,help:brand_external_report_layout.field_res_brand__company_details +msgid "Header text displayed at the top of all reports." +msgstr "Tüm raporların en üstünde görüntülenen üstbilgi metni." + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__id +msgid "ID" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__is_company_details_empty +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__is_company_details_empty +msgid "Is Company Details Empty" +msgstr "Şirket Bilgileri Boş mu" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__write_uid +msgid "Last Updated by" +msgstr "Son Güncelleyen" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__write_date +msgid "Last Updated on" +msgstr "Son Güncelleme" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__lato +msgid "Lato" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__layout_background +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__layout_background +msgid "Layout Background" +msgstr "Serilim Arka Planı" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__logo_primary_color +msgid "Logo Primary Color" +msgstr "Logo Birincil Renk" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__logo_secondary_color +msgid "Logo Secondary Color" +msgstr "Logo İkincil Renk" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__montserrat +msgid "Montserrat" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__open_sans +msgid "Open Sans" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__oswald +msgid "Oswald" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__paperformat_id +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__paperformat_id +msgid "Paper format" +msgstr "Kağıt formatı" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__partner_id +msgid "Partner" +msgstr "İş Ortağı" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__phone +msgid "Phone" +msgstr "Telefon" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__preview +msgid "Preview" +msgstr "Önizleme" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__preview_logo +msgid "Preview logo" +msgstr "Önizleme logosu" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__primary_color +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__primary_color +msgid "Primary Color" +msgstr "Birincil Renk" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__raleway +msgid "Raleway" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__report_footer +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__report_footer +msgid "Report Footer" +msgstr "Çıktı Footer" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__report_header +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__report_header +msgid "Report Header" +msgstr "Rapor Başlığı" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__report_layout_id +msgid "Report Layout" +msgstr "Rapor Düzeni" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__roboto +msgid "Roboto" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__secondary_color +#: model:ir.model.fields,field_description:brand_external_report_layout.field_res_brand__secondary_color +msgid "Secondary Color" +msgstr "İkincil Renk" + +#. module: brand_external_report_layout +#: model:ir.model.fields.selection,name:brand_external_report_layout.selection__res_brand__font__tajawal +msgid "Tajawal" +msgstr "" + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__vat +msgid "Tax ID" +msgstr "Vergi No" + +#. module: brand_external_report_layout +#: model:ir.model.fields,help:brand_external_report_layout.field_brand_document_layout__vat +msgid "" +"The Tax Identification Number. Values here will be validated based on the " +"country format. You can use '/' to indicate that the partner is not subject " +"to tax." +msgstr "" +"Vergi Kimlik Numarası. Buradaki değerler ülke biçimine göre doğrulanır. " +"Ortağın vergiye tabi olmadığını belirtmek için '/' kullanabilirsiniz." + +#. module: brand_external_report_layout +#: model:ir.model.fields,field_description:brand_external_report_layout.field_brand_document_layout__website +msgid "Website Link" +msgstr "Website Linki" diff --git a/brand_external_report_layout/models/__init__.py b/brand_external_report_layout/models/__init__.py new file mode 100644 index 000000000..3dc20cced --- /dev/null +++ b/brand_external_report_layout/models/__init__.py @@ -0,0 +1 @@ +from . import res_brand diff --git a/brand_external_report_layout/models/res_brand.py b/brand_external_report_layout/models/res_brand.py new file mode 100644 index 000000000..e559a5dfb --- /dev/null +++ b/brand_external_report_layout/models/res_brand.py @@ -0,0 +1,137 @@ +# Copyright 2019 ACSONE SA/NV +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +import base64 +import os + +from odoo import _, api, fields, models, tools + + +class ResBrand(models.Model): + _inherit = "res.brand" + + def _get_default_brand_logo(self): + return base64.b64encode( + open( + os.path.join( + tools.config["root_path"], + "addons", + "base", + "static", + "img", + "res_company_logo.png", + ), + "rb", + ).read() + ) + + logo = fields.Binary( + related="partner_id.image_1920", + default=_get_default_brand_logo, + string="Brand Logo", + readonly=False, + ) + external_report_layout_id = fields.Many2one( + comodel_name="ir.ui.view", string="Document Template" + ) + report_header = fields.Html( + help="Appears by default on the top right corner of your printed " + "documents (report header).", + ) + report_footer = fields.Html( + translate=True, + help="Footer text displayed at the bottom of all reports.", + ) + paperformat_id = fields.Many2one( + "report.paperformat", + "Paper format", + default=lambda self: self.env.ref( + "base.paperformat_euro", raise_if_not_found=False + ), + ) + + font = fields.Selection( + [ + ("Lato", "Lato"), + ("Roboto", "Roboto"), + ("Open_Sans", "Open Sans"), + ("Montserrat", "Montserrat"), + ("Oswald", "Oswald"), + ("Raleway", "Raleway"), + ("Tajawal", "Tajawal"), + ("Fira_Mono", "Fira Mono"), + ], + default="Lato", + ) + primary_color = fields.Char() + secondary_color = fields.Char() + company_details = fields.Html( + string="Brand Details", + help="Header text displayed at the top of all reports.", + ) + is_company_details_empty = fields.Boolean(compute="_compute_empty_company_details") + layout_background = fields.Selection( + [("Blank", "Blank"), ("Custom", "Custom")], + default="Blank", + required=True, + ) + layout_background_image = fields.Binary("Background Image") + + @api.depends("company_details") + def _compute_empty_company_details(self): + for record in self: + record.is_company_details_empty = not tools.html2plaintext( + record.company_details or "" + ) + + def change_report_template(self): + self.ensure_one() + context = {"default_brand_id": self.id, "dialog_size": "extra-large"} + context.update(self.env.context) + return { + "name": _("Configure your document layout"), + "type": "ir.actions.act_window", + "view_mode": "form", + "target": "new", + "res_model": "brand.document.layout", + "context": context, + } + + def _get_asset_style_b64(self): + brand_styles = self.env["ir.qweb"]._render( + "brand_external_report_layout.styles_brand_report", + {"brand_ids": self.sudo().search([])}, + raise_if_not_found=False, + ) + return base64.b64encode(brand_styles.encode()) + + def _update_asset_style(self): + asset_attachment = self.env.ref( + "brand_external_report_layout.asset_styles_brand_report", + raise_if_not_found=False, + ) + if not asset_attachment: + return + asset_attachment = asset_attachment.sudo() + b64_val = self._get_asset_style_b64() + if b64_val != asset_attachment.datas: + asset_attachment.write({"datas": b64_val}) + + @api.model + def _get_style_fields(self): + return {"external_report_layout_id", "font", "primary_color", "secondary_color"} + + @api.model_create_multi + def create(self, vals_list): + companies = super().create(vals_list) + style_fields = self._get_style_fields() + if any(not style_fields.isdisjoint(values) for values in vals_list): + self._update_asset_style() + return companies + + def write(self, values): + res = super().write(values) + style_fields = self._get_style_fields() + if not style_fields.isdisjoint(values): + self._update_asset_style() + return res diff --git a/brand_external_report_layout/pyproject.toml b/brand_external_report_layout/pyproject.toml new file mode 100644 index 000000000..4231d0ccc --- /dev/null +++ b/brand_external_report_layout/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/brand_external_report_layout/readme/CONTRIBUTORS.md b/brand_external_report_layout/readme/CONTRIBUTORS.md new file mode 100644 index 000000000..b64226c6c --- /dev/null +++ b/brand_external_report_layout/readme/CONTRIBUTORS.md @@ -0,0 +1,4 @@ +- Souheil Bejaoui \<\> +- [Landoo, Sistemas de Información, S.L.](https://www.landoo.es): + - Vicent Cubells \<\> +- Freni Patel \<\> diff --git a/brand_external_report_layout/readme/DESCRIPTION.md b/brand_external_report_layout/readme/DESCRIPTION.md new file mode 100644 index 000000000..a37d144dd --- /dev/null +++ b/brand_external_report_layout/readme/DESCRIPTION.md @@ -0,0 +1,21 @@ +Choose a layout for your brands in external reports. + +To simplify the customization of the external layout we replaced the +variable company that odoo compute in the external_layout view by the +object brand. + +With this module, all custom layouts will display brand information out +of the box. + +This was possible and easy to implement as the company and the brand +models inherit from partner model and share the same informational +fields. + +The computed variable company is used to set report header and footer. +It's not meant to be used in the report business logic itself. But in +that case (if a custom layout use the variable company for some-reason +other then header and footer) this module can cause an issue because the +used field can be missing in the brand model or not correctly set. + +In this case, we recommend to always use document field company for this +use-end. diff --git a/brand_external_report_layout/readme/ROADMAP.md b/brand_external_report_layout/readme/ROADMAP.md new file mode 100644 index 000000000..e69de29bb diff --git a/brand_external_report_layout/readme/USAGE.md b/brand_external_report_layout/readme/USAGE.md new file mode 100644 index 000000000..7a3e054a7 --- /dev/null +++ b/brand_external_report_layout/readme/USAGE.md @@ -0,0 +1,7 @@ +To use this module, you need to: + +1. Go to Settings \> Users & Companies \> Brands +2. Add a new brand or select an existing one +3. Enter brand information and select the a layout +4. Go to any branded object and print the PDF report. It includes the + information of the brand. diff --git a/brand_external_report_layout/security/brand_document_layout.xml b/brand_external_report_layout/security/brand_document_layout.xml new file mode 100644 index 000000000..fd6352996 --- /dev/null +++ b/brand_external_report_layout/security/brand_document_layout.xml @@ -0,0 +1,14 @@ + + + + + brand.document.layout manager access + + + + + + + + diff --git a/brand_external_report_layout/static/description/icon.png b/brand_external_report_layout/static/description/icon.png new file mode 100644 index 000000000..3a0328b51 Binary files /dev/null and b/brand_external_report_layout/static/description/icon.png differ diff --git a/brand_external_report_layout/static/description/index.html b/brand_external_report_layout/static/description/index.html new file mode 100644 index 000000000..96b79a0cd --- /dev/null +++ b/brand_external_report_layout/static/description/index.html @@ -0,0 +1,468 @@ + + + + + +README.rst + + + +
+ + + +Odoo Community Association + +
+

Brand External Report Layout

+ +

Beta License: AGPL-3 OCA/brand Translate me on Weblate Try me on Runboat

+

This module allows you to have a different layout by brand for your +external reports.

+

Table of contents

+ +
+

Usage

+

To use this module, you need to:

+
    +
  1. Go to Settings > Users & Companies > Brands
  2. +
  3. Add a new brand or select an existing one
  4. +
  5. Enter brand information and select the a layout
  6. +
  7. Go to any branded object and print the PDF report. It includes the +information of the brand.
  8. +
+
+
+

Known issues / Roadmap

+

To simplify the customization of the external layout we replaced the +variable company that odoo compute in the external_layout view by the +object brand.

+

With this module, all custom layouts will display brand information out +of the box.

+

This was possible and easy to implement as the company and the brand +models inherit from partner model and share the same informational +fields.

+

The computed variable company is used to set report header and footer. +It’s not meant to be used in the report business logic itself. But in +that case (if a custom layout use the variable company for some-reason +other then header and footer) this module can cause an issue because the +used field can be missing in the brand model or not correctly set.

+

In this case, we recommend to always use document field company for this +use-end.

+
+
+

Bug Tracker

+

Bugs are tracked on GitHub 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.

+

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

+
+
+

Credits

+
+

Authors

+
    +
  • ACSONE SA/NV
  • +
+
+ +
+

Maintainers

+

This module is maintained by the OCA.

+ +Odoo Community Association + +

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.

+

Current maintainer:

+

sbejaoui

+

This module is part of the OCA/brand project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+
+ + diff --git a/brand_external_report_layout/tests/__init__.py b/brand_external_report_layout/tests/__init__.py new file mode 100644 index 000000000..d2250bfcf --- /dev/null +++ b/brand_external_report_layout/tests/__init__.py @@ -0,0 +1 @@ +from . import test_brand_external_report_layout diff --git a/brand_external_report_layout/tests/test_brand_external_report_layout.py b/brand_external_report_layout/tests/test_brand_external_report_layout.py new file mode 100644 index 000000000..b5d587fec --- /dev/null +++ b/brand_external_report_layout/tests/test_brand_external_report_layout.py @@ -0,0 +1,191 @@ +# Copyright 2019 ACSONE SA/NV +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +import base64 +import os +from unittest.mock import patch + +import markupsafe + +from odoo.tests.common import TransactionCase, tagged + +DEFAULT_PRIMARY = "#00ADEF" +DEFAULT_SECONDARY = "#123456" + + +@tagged("post_install", "-at_install") +class TestBrandExternalReportLayout(TransactionCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.brand = cls.env["res.brand"].create({"name": "brand"}) + cls.external_layout_view = cls.env.ref("web.external_layout_standard") + cls.report_layout = cls.env["report.layout"].create( + { + "name": "Test Layout", + "view_id": cls.external_layout_view.id, + } # Access the id + ) + cls.paperformat = cls.env["report.paperformat"].create( + {"name": "Test Paperformat"} + ) + + def test_get_default_brand_logo(self): + self.assertEqual(self.brand.logo, self.brand._get_default_brand_logo()) + + def test_brand_document_layout_onchange_brand_id(self): + wizard = self.env["brand.document.layout"].create({"brand_id": self.brand.id}) + + self.assertEqual(wizard.logo, self.brand.logo) + self.assertEqual(wizard.report_header, self.brand.report_header) + self.assertEqual(wizard.report_footer, self.brand.report_footer) + self.assertEqual(wizard.company_details, self.brand.company_details) + self.assertEqual(wizard.paperformat_id, self.brand.paperformat_id) + self.assertEqual( + wizard.external_report_layout_id, self.brand.external_report_layout_id + ) + self.assertEqual(wizard.font, self.brand.font) + self.assertEqual(wizard.primary_color, self.brand.primary_color) + self.assertEqual(wizard.secondary_color, self.brand.secondary_color) + self.assertEqual( + wizard.report_layout_id.view_id, self.brand.external_report_layout_id + ) + + self.brand.primary_color = False + self.brand.secondary_color = False + self.env.invalidate_all() + wizard._onchange_brand_id() + # Get the expected colors from the logo + ( + expected_primary, + expected_secondary, + ) = wizard.extract_image_primary_secondary_colors(wizard.logo) + self.assertEqual(wizard.primary_color, expected_primary) + self.assertEqual(wizard.secondary_color, expected_secondary) + + module_path = os.path.dirname(os.path.abspath(__file__)) + image_path = os.path.join( + module_path, "..", "static", "description", "icon.png" + ) + with open(image_path, "rb") as image_file: + base64.b64encode(image_file.read()) + + self.brand.primary_color = False + self.brand.secondary_color = False + self.env["res.brand"].invalidate_recordset() + wizard._onchange_brand_id() + + # Extract colors from the logo + ( + expected_primary, + expected_secondary, + ) = wizard.extract_image_primary_secondary_colors(wizard.logo) + + self.assertEqual(wizard.primary_color, expected_primary) + self.assertEqual(wizard.secondary_color, expected_secondary) + + def test_brand_document_layout_onchange_logo(self): + wizard = self.env["brand.document.layout"].create({"brand_id": self.brand.id}) + + module_path = os.path.dirname(os.path.abspath(__file__)) + image_path = os.path.join( + module_path, "..", "static", "description", "icon.png" + ) + with open(image_path, "rb") as image_file: + logo_data = base64.b64encode(image_file.read()) + + wizard.logo = logo_data + wizard.logo_primary_color = "#AAAAAA" + wizard.logo_secondary_color = "#BBBBBB" + wizard._onchange_logo() + self.assertEqual(wizard.primary_color, "#AAAAAA") + self.assertEqual(wizard.secondary_color, "#BBBBBB") + + self.brand.primary_color = "#111111" + self.brand.secondary_color = "#222222" + wizard.logo = self.brand.logo + wizard._onchange_logo() + self.assertEqual(wizard.primary_color, "#AAAAAA") + self.assertEqual(wizard.secondary_color, "#BBBBBB") + + self.brand.primary_color = "#111111" + self.brand.secondary_color = "#222222" + wizard.logo = self.brand.logo + self.brand.logo = logo_data + wizard.logo = logo_data + wizard.logo_primary_color = False + wizard.logo_secondary_color = False + wizard._onchange_logo() + + self.brand.primary_color = ( + False # Temporarily set brand's primary_color to False + ) + self.brand.secondary_color = False + wizard.logo = False + self.assertFalse(wizard.primary_color) + self.assertFalse(wizard.secondary_color) + + def test_brand_document_layout_compute_preview(self): + wizard = self.env["brand.document.layout"].create( + { + "brand_id": self.brand.id, + "report_layout_id": self.report_layout.id, + "paperformat_id": self.paperformat.id, + } + ) + + with ( + patch.object( + type(wizard), "_get_css_for_preview", return_value="test_css" + ) as mock_css, + patch.object( + type(wizard.env["ir.ui.view"]), + "_render_template", + return_value="test_html", + ) as mock_render, + ): + wizard._compute_preview() + self.assertTrue(wizard.preview) + mock_css.assert_called_once() + mock_render.assert_called_once() + self.assertEqual( + mock_render.call_args[0][0], "web.report_invoice_wizard_preview" + ) + + wizard.report_layout_id = False + wizard._compute_preview() + self.assertFalse(wizard.preview) + + def test_brand_document_layout_compute_preview_bin_size(self): + wizard = self.env["brand.document.layout"].create( + { + "brand_id": self.brand.id, + "report_layout_id": self.report_layout.id, + "paperformat_id": self.paperformat.id, + } + ) + with ( + patch.object(type(wizard), "_get_css_for_preview", return_value="test_css"), + patch.object( + type(wizard.env["ir.ui.view"]), + "_render_template", + return_value="test_html", + ) as mock_render, + ): + wizard_with_bin_size = wizard.with_context(bin_size=True) + wizard_with_bin_size._compute_preview() + mock_render.assert_called_once() + self.assertEqual( + mock_render.call_args[0][0], "web.report_invoice_wizard_preview" + ) + + def test_brand_document_layout_get_asset_style(self): + wizard = self.env["brand.document.layout"].create( + { + "brand_id": self.brand.id, + "report_layout_id": self.report_layout.id, + "paperformat_id": self.paperformat.id, + } + ) + result = wizard._get_asset_style() + self.assertIsInstance(result, markupsafe.Markup) diff --git a/brand_external_report_layout/views/report_template.xml b/brand_external_report_layout/views/report_template.xml new file mode 100644 index 000000000..88684c673 --- /dev/null +++ b/brand_external_report_layout/views/report_template.xml @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + + text/scss + res.brand.scss + binary + /brand_external_report_layout/static/src/legacy/scss/asset_styles_brand_report.scss + + diff --git a/brand_external_report_layout/views/res_brand.xml b/brand_external_report_layout/views/res_brand.xml new file mode 100644 index 000000000..f1dde7062 --- /dev/null +++ b/brand_external_report_layout/views/res_brand.xml @@ -0,0 +1,25 @@ + + + + + res.brand + + + +
+ + +
+
+
+
+
diff --git a/brand_external_report_layout/wizards/__init__.py b/brand_external_report_layout/wizards/__init__.py new file mode 100644 index 000000000..98639f9c3 --- /dev/null +++ b/brand_external_report_layout/wizards/__init__.py @@ -0,0 +1 @@ +from . import brand_document_layout diff --git a/brand_external_report_layout/wizards/brand_document_layout.py b/brand_external_report_layout/wizards/brand_document_layout.py new file mode 100644 index 000000000..8164e1e50 --- /dev/null +++ b/brand_external_report_layout/wizards/brand_document_layout.py @@ -0,0 +1,133 @@ +# Copyright 2022 ACSONE SA/NV +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +import markupsafe + +from odoo import api, fields, models, tools + +from odoo.addons.web.models.base_document_layout import ( + DEFAULT_PRIMARY, + DEFAULT_SECONDARY, +) + + +class BrandDocumentLayout(models.TransientModel): + _name = "brand.document.layout" + _description = "Brand Document Layout" + _inherit = "base.document.layout" + + brand_id = fields.Many2one("res.brand", required=True) + + logo = fields.Binary(related="brand_id.logo", readonly=False) + report_header = fields.Html(related="brand_id.report_header", readonly=False) + report_footer = fields.Html(related="brand_id.report_footer", readonly=False) + paperformat_id = fields.Many2one(related="brand_id.paperformat_id", readonly=False) + external_report_layout_id = fields.Many2one( + related="brand_id.external_report_layout_id", readonly=False + ) + + font = fields.Selection(related="brand_id.font", readonly=False) + primary_color = fields.Char(related="brand_id.primary_color", readonly=False) + secondary_color = fields.Char(related="brand_id.secondary_color", readonly=False) + company_details = fields.Html(related="brand_id.company_details", readonly=False) + layout_background = fields.Selection( + related="brand_id.layout_background", readonly=False + ) + layout_background_image = fields.Binary( + related="brand_id.layout_background_image", readonly=False + ) + + @api.onchange("company_id") + def _onchange_company_id(self): + return {} + + @api.onchange("brand_id") + def _onchange_brand_id(self): + for wizard in self: + wizard.logo = wizard.brand_id.logo + wizard.report_header = wizard.brand_id.report_header + wizard.report_footer = ( + wizard.brand_id.report_footer + if isinstance(wizard.brand_id.report_footer, str) + else wizard.report_footer + ) + wizard.company_details = ( + wizard.brand_id.company_details + if isinstance(wizard.brand_id.company_details, str) + else wizard.company_details + ) + wizard.paperformat_id = wizard.brand_id.paperformat_id + wizard.external_report_layout_id = wizard.brand_id.external_report_layout_id + wizard.font = wizard.brand_id.font + wizard.primary_color = wizard.brand_id.primary_color + wizard.secondary_color = wizard.brand_id.secondary_color + wizard_layout = wizard.env["report.layout"].search( + [("view_id.key", "=", wizard.brand_id.external_report_layout_id.key)] + ) + wizard.report_layout_id = wizard_layout or wizard_layout.search([], limit=1) + + if not wizard.primary_color: + wizard.primary_color = wizard.logo_primary_color or DEFAULT_PRIMARY + if not wizard.secondary_color: + wizard.secondary_color = ( + wizard.logo_secondary_color or DEFAULT_SECONDARY + ) + + @api.onchange("logo") + def _onchange_logo(self): + for wizard in self: + brand = wizard.brand_id + if ( + wizard.logo == brand.logo + and brand.primary_color + and brand.secondary_color + ): + continue + + if wizard.logo_primary_color: + wizard.primary_color = wizard.logo_primary_color + if wizard.logo_secondary_color: + wizard.secondary_color = wizard.logo_secondary_color + + def _get_asset_style(self): + return self.env["ir.qweb"]._render( + "brand_external_report_layout.styles_brand_report", + {"brand_ids": self}, + raise_if_not_found=False, + ) + + @api.depends( + "report_layout_id", + "logo", + "font", + "primary_color", + "secondary_color", + "report_header", + "report_footer", + "layout_background", + "layout_background_image", + "company_details", + ) + def _compute_preview(self): + styles = self._get_asset_style() + for wizard in self: + if wizard.report_layout_id: + if wizard.env.context.get("bin_size"): + wizard_with_logo = wizard.with_context(bin_size=False) + else: + wizard_with_logo = wizard + preview_css = markupsafe.Markup( + self._get_css_for_preview(styles, wizard_with_logo.id) + ) + ir_ui_view = wizard_with_logo.env["ir.ui.view"] + wizard.preview = ir_ui_view._render_template( + "web.report_invoice_wizard_preview", + { + "brand": wizard_with_logo, + "company": wizard_with_logo, + "preview_css": preview_css, + "is_html_empty": tools.is_html_empty, + }, + ) + else: + wizard.preview = False diff --git a/brand_external_report_layout/wizards/brand_document_layout.xml b/brand_external_report_layout/wizards/brand_document_layout.xml new file mode 100644 index 000000000..c39c6badd --- /dev/null +++ b/brand_external_report_layout/wizards/brand_document_layout.xml @@ -0,0 +1,18 @@ + + + + + brand.document.layout + + primary + + + Brand document layout + + + + + + +