From 4207afbc3fe435453df47108d797062c4cb934e4 Mon Sep 17 00:00:00 2001 From: snt Date: Thu, 12 Feb 2026 17:15:33 +0100 Subject: [PATCH] update pylint10, corrije authors manifest --- .github/copilot-instructions.md | 71 +++++++-------- .pre-commit-config.yaml | 4 +- .pylintrc | 89 ++++++++++--------- .pylintrc-mandatory | 55 +++++------- .../__manifest__.py | 10 +-- .../models/triple_discount_mixin.py | 3 +- .../__manifest__.py | 51 ++++------- .../__manifest__.py | 13 ++- website_sale_aplicoop/__manifest__.py | 38 ++------ 9 files changed, 139 insertions(+), 195 deletions(-) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 56036a9..6495dec 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -5,12 +5,12 @@ Este repositorio contiene addons personalizados y modificados de Odoo 18.0. El proyecto combina: - **OCB (Odoo Community Backports)**: Base de Odoo 18.0 community en `/ocb` -- **Addons OCA**: Módulos de la comunidad OCA modificados para necesidades específicas -- **Addons Custom**: Módulos desarrollados específicamente para este proyecto +- **Addons OCA**: Módulos de la comunidad OCA de los que heredan nuestros addons, modificados para adaptarse a nuestras necesidades +- **Addons Custom**: Módulos desarrollados por este proyecto ## Architecture & Stack -- **Odoo Version**: 18.0 +- **Odoo Version**: 18.0 (OCB) - **Python Version**: 3.10+ - **Framework**: Odoo ORM - **Deployment**: Docker Compose @@ -80,56 +80,53 @@ Este repositorio contiene addons personalizados y modificados de Odoo 18.0. El p ```bash # Exportar términos a traducir - docker-compose exec odoo odoo \ - --addons-path=/mnt/extra-addons \ - --i18n-export=/tmp/addon_name.pot \ - --modules=addon_name \ - --db=odoo - - # Copiar y renombrar - cd addon_name/i18n - msgmerge --update es.po addon_name.pot - msgmerge --update eu.po addon_name.pot + Pedir al usuario generar a través de UI, no sabemos el método correcto para exportar SÓLO las cadenas del addon sin incluir todo el sistema. ``` +Usar sólo polib para trataer los archivos .po, msmerge corrompe los archivos. + +``` + 5. **Formato de archivos .po**: - - Encoding: UTF-8 - - Content-Type: text/plain; charset=UTF-8 - - Language codes: `es`, `eu`, `ca`, `gl`, `pt`, `fr`, `it` +- Encoding: UTF-8 +- Content-Type: text/plain; charset=UTF-8 +- Language codes: `es`, `eu`, `ca`, `gl`, `pt`, `fr`, `it` ## Project Structure ``` + addons-cm/ -├── .github/ # GitHub configs -│ └── copilot-instructions.md # Este archivo -├── ocb/ # Odoo Community Backports (18.0) -│ └── addons/ # Addons core de Odoo -├── oca_dependencies.txt # Dependencias OCA -├── requirements.txt # Dependencias Python -├── docker-compose.yml # Configuración Docker -├── Makefile # Comandos útiles +├── .github/ # GitHub configs +│ └── copilot-instructions.md # Este archivo +├── ocb/ # Odoo Community Backports (18.0) +│ └── addons/ # Addons core de Odoo +├── oca_dependencies.txt # Dependencias OCA +├── requirements.txt # Dependencias Python +├── docker-compose.yml # Configuración Docker +├── Makefile # Comandos útiles │ -├── # === ADDONS OCA MODIFICADOS === -├── account_invoice_triple_discount/ # Triple descuento en facturas (OCA) -├── purchase_triple_discount/ # Triple descuento en compras (OCA) -├── product_origin/ # Origen del producto (OCA) -├── product_get_price_helper/ # Helper de precios (OCA) -├── product_main_seller/ # Proveedor principal (OCA) -├── product_price_category/ # Categorías de precio (OCA) +├── # === ADDONS OCA NO MODIFICADOS === +├── account_invoice_triple_discount/ # Triple descuento en facturas (OCA) +├── purchase_triple_discount/ # Triple descuento en compras (OCA) +├── product_origin/ # Origen del producto (OCA) +├── product_get_price_helper/ # Helper de precios (OCA) +├── product_main_seller/ # Proveedor principal (OCA) +├── product_price_category/ # Categorías de precio (OCA) │ ├── # === ADDONS CUSTOM === -├── account_invoice_triple_discount_readonly/ # Fix para triple descuento -├── product_price_category_supplier/ # Extensión categorías precio +├── account_invoice_triple_discount_readonly/ # Fix para triple descuento +├── product_price_category_supplier/ # Extensión categorías precio ├── product_sale_price_from_pricelist/ # Auto-cálculo precio venta -└── website_sale_aplicoop/ # Sistema eskaera (compras grupo) -``` +└── website_sale_aplicoop/ # Sistema eskaera (compras grupo) + +```` ## Addon References **Para arquitectura, detalles de implementación y uso específico de cada addon, consultar su `README.md` individual.** -### Addons OCA Modificados +### Addons OCA No Modificados - [account_invoice_triple_discount](../account_invoice_triple_discount/README.rst) - [purchase_triple_discount](../purchase_triple_discount/README.rst) @@ -161,7 +158,7 @@ docker-compose logs -f odoo # Ejecutar tests docker-compose exec odoo odoo -d odoo --test-enable --stop-after-init -u addon_name -``` +```` ### Quality Checks diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 748e132..beb2928 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -125,7 +125,7 @@ repos: - "types-requests" - "types-setuptools" - repo: https://github.com/PyCQA/pylint - rev: v3.1.1 + rev: v4.0.4 hooks: - id: pylint name: pylint with optional checks @@ -134,7 +134,7 @@ repos: - --exit-zero verbose: true additional_dependencies: &pylint_deps - - pylint-odoo==9.1.2 + - pylint-odoo==10.0.0 - id: pylint name: pylint with mandatory checks args: diff --git a/.pylintrc b/.pylintrc index a2ac445..20cb606 100644 --- a/.pylintrc +++ b/.pylintrc @@ -2,14 +2,6 @@ load-plugins=pylint_odoo score=n -[ODOOLINT] -readme_template_url="https://github.com/OCA/maintainer-tools/blob/master/template/module/README.rst" -manifest_required_authors=Odoo Community Association (OCA) -manifest_required_keys=license -manifest_deprecated_keys=description,active -license_allowed=AGPL-3,GPL-2,GPL-2 or any later version,GPL-3,GPL-3 or any later version,LGPL-3,Other OSI approved licence,Other proprietary -valid_odoo_versions=16.0,17.0,18.0 - [MESSAGES CONTROL] disable=all @@ -22,67 +14,76 @@ disable=all # checks. enable=anomalous-backslash-in-string, - api-one-deprecated, - api-one-multi-together, assignment-from-none, attribute-deprecated, - class-camelcase, + attribute-string-redundant, + bad-builtin-groupby, + category-allowed, + category-allowed-app, + consider-merging-classes-inherited, context-overridden, - copy-wo-api-one, dangerous-default-value, - dangerous-view-replace-wo-priority, + deprecated-name-get, + deprecated-odoo-model-method, development-status-allowed, - duplicate-id-csv, duplicate-key, - duplicate-xml-fields, - duplicate-xml-record-id, - eval-referenced, - eval-used, - incoherent-interpreter-exec-perm, + except-pass, + external-request-timeout, + inheritable-method-lambda, + inheritable-method-string, + invalid-commit, + invalid-email, license-allowed, manifest-author-string, + manifest-behind-migrations, + manifest-data-duplicated, manifest-deprecated-key, + manifest-external-assets, + manifest-maintainers-list, manifest-required-author, manifest-required-key, + manifest-required-key-app, + manifest-superfluous-key, manifest-version-format, method-compute, method-inverse, method-required-super, method-search, - missing-import-error, - missing-manifest-dependency, - openerp-exception-warning, + missing-odoo-file, + missing-odoo-file-app, + missing-readme, + missing-return, + no-raise-unlink, + no-search-all, + no-wizard-in-models, + no-write-in-compute, + odoo-addons-relative-import, + odoo-exception-warning, pointless-statement, pointless-string-statement, + prefer-env-translation, print-used, + prohibited-method-override, redundant-keyword-arg, - redundant-modulename-xml, - reimported, - relative-import, - return-in-init, - rst-syntax-error, + renamed-field-parameter, + resource-not-exist, sql-injection, + super-method-mismatch, + test-folder-imported, too-few-format-args, + translation-contains-variable, translation-field, + translation-format-interpolation, + translation-format-truncated, + translation-fstring-interpolation, + translation-not-lazy, + translation-positional-used, translation-required, - unreachable, + translation-too-few-args, + translation-too-many-args, + translation-unsupported-format, use-vim-comment, - wrong-tabs-instead-of-spaces, - xml-syntax-error - # messages that do not cause the lint step to fail - consider-merging-classes-inherited, - create-user-wo-reset-password, - deprecated-module, - file-not-used, - invalid-commit, - missing-newline-extrafiles, - missing-readme, - no-utf8-coding-comment, - odoo-addons-relative-import, - old-api7-method-defined, - redefined-builtin, - too-complex, - unnecessary-utf8-coding-comment + website-manifest-key-not-valid-uri [REPORTS] msg-template={path}:{line}: [{msg_id}({symbol}), {obj}] {msg} diff --git a/.pylintrc-mandatory b/.pylintrc-mandatory index a413790..277f3b8 100644 --- a/.pylintrc-mandatory +++ b/.pylintrc-mandatory @@ -2,65 +2,58 @@ load-plugins=pylint_odoo score=n -[ODOOLINT] -readme_template_url="https://github.com/OCA/maintainer-tools/blob/master/template/module/README.rst" -manifest_required_authors=Odoo Community Association (OCA) -manifest_required_keys=license -manifest_deprecated_keys=description,active -license_allowed=AGPL-3,GPL-2,GPL-2 or any later version,GPL-3,GPL-3 or any later version,LGPL-3,Other OSI approved licence,Other proprietary -valid_odoo_versions=16.0,17.0,18.0 - [MESSAGES CONTROL] disable=all enable=anomalous-backslash-in-string, - api-one-deprecated, - api-one-multi-together, assignment-from-none, attribute-deprecated, - class-camelcase, + consider-merging-classes-inherited, context-overridden, - copy-wo-api-one, dangerous-default-value, - dangerous-view-replace-wo-priority, + deprecated-name-get, + deprecated-odoo-model-method, development-status-allowed, - duplicate-id-csv, duplicate-key, - duplicate-xml-fields, - duplicate-xml-record-id, - eval-referenced, - eval-used, - incoherent-interpreter-exec-perm, + except-pass, + external-request-timeout, + inheritable-method-lambda, + inheritable-method-string, + invalid-commit, license-allowed, manifest-author-string, + manifest-behind-migrations, + manifest-data-duplicated, manifest-deprecated-key, + manifest-maintainers-list, manifest-required-author, manifest-required-key, + manifest-superfluous-key, manifest-version-format, method-compute, method-inverse, method-required-super, method-search, - missing-import-error, - missing-manifest-dependency, - openerp-exception-warning, + missing-readme, + missing-return, + no-raise-unlink, + no-write-in-compute, + odoo-addons-relative-import, + odoo-exception-warning, pointless-statement, pointless-string-statement, print-used, + prohibited-method-override, redundant-keyword-arg, - redundant-modulename-xml, - reimported, - relative-import, - return-in-init, - rst-syntax-error, + renamed-field-parameter, + resource-not-exist, sql-injection, + test-folder-imported, too-few-format-args, translation-field, + translation-positional-used, translation-required, - unreachable, - use-vim-comment, - wrong-tabs-instead-of-spaces, - xml-syntax-error + use-vim-comment [REPORTS] msg-template={path}:{line}: [{msg_id}({symbol}), {obj}] {msg} diff --git a/account_invoice_triple_discount_readonly/__manifest__.py b/account_invoice_triple_discount_readonly/__manifest__.py index bdd4c26..c65b03e 100644 --- a/account_invoice_triple_discount_readonly/__manifest__.py +++ b/account_invoice_triple_discount_readonly/__manifest__.py @@ -1,13 +1,11 @@ -# Copyright 2025 +# Copyright 2025 - Today Criptomart # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -{ +{ # noqa: B018 "name": "Account Invoice Triple Discount Readonly", "version": "18.0.1.0.0", "summary": "Make total discount readonly and fix discount2/discount3 write issue", "license": "AGPL-3", - "author": "Criptomart", - "website": "https://github.com/OCA/account-invoicing", + "author": "Odoo Community Association (OCA), Criptomart", + "website": "https://git.criptomart.net/criptomart/addons-cm", "depends": ["account_invoice_triple_discount", "purchase_triple_discount"], - "data": [], - "installable": True, } diff --git a/account_invoice_triple_discount_readonly/models/triple_discount_mixin.py b/account_invoice_triple_discount_readonly/models/triple_discount_mixin.py index d222b00..2d727da 100644 --- a/account_invoice_triple_discount_readonly/models/triple_discount_mixin.py +++ b/account_invoice_triple_discount_readonly/models/triple_discount_mixin.py @@ -1,4 +1,5 @@ -from odoo import fields, models +from odoo import fields +from odoo import models class TripleDiscountMixin(models.AbstractModel): diff --git a/product_price_category_supplier/__manifest__.py b/product_price_category_supplier/__manifest__.py index 8a5850c..9734b59 100644 --- a/product_price_category_supplier/__manifest__.py +++ b/product_price_category_supplier/__manifest__.py @@ -1,39 +1,22 @@ -# Copyright 2026 Your Company +# Copyright 2026 Criptomart # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -{ - 'name': 'Product Price Category - Supplier Extension', - 'version': '18.0.1.0.0', - 'category': 'Product', - 'summary': 'Add default price category to suppliers and bulk update products', - 'description': ''' - Extends res.partner (suppliers) with a default price category field. - Allows bulk updating all products from a supplier with the default category - via a wizard with confirmation dialog. - - Features: - - Add default price category to supplier partner - - Wizard to bulk update all supplier's products - - Column visibility toggle in partner tree view - - Access restricted to sales managers - ''', - 'author': 'Your Company', - 'license': 'AGPL-3', - 'depends': [ - 'product_price_category', - 'sales_team', - 'product_main_seller' +{ # noqa: B018 + "name": "Product Price Category - Supplier Extension", + "version": "18.0.1.0.0", + "category": "Product", + "summary": "Add default price category to suppliers and bulk update products", + "author": "Odoo Community Association (OCA), Criptomart", + "license": "AGPL-3", + "depends": ["product_price_category", "sales_team", "product_main_seller"], + "data": [ + "security/ir.model.access.csv", + "views/res_partner_views.xml", + "views/wizard_update_product_category.xml", ], - 'data': [ - 'security/ir.model.access.csv', - 'views/res_partner_views.xml', - 'views/wizard_update_product_category.xml', + "i18n": [ + "i18n/product_price_category_supplier.pot", + "i18n/es.po", + "i18n/eu.po", ], - 'i18n': [ - 'i18n/product_price_category_supplier.pot', - 'i18n/es.po', - 'i18n/eu.po', - ], - 'installable': True, - 'auto_install': False, } diff --git a/product_sale_price_from_pricelist/__manifest__.py b/product_sale_price_from_pricelist/__manifest__.py index 3a2f170..dfedd94 100644 --- a/product_sale_price_from_pricelist/__manifest__.py +++ b/product_sale_price_from_pricelist/__manifest__.py @@ -1,13 +1,13 @@ -{ +# Copyright 2025 - Today Criptomart +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +{ # noqa: B018 "name": "Product Sale Price from Pricelist", "version": "18.0.1.0.0", "category": "product", "summary": "Set sale price from pricelist based on last purchase price", - "description": """ - Set sale price from pricelist based on last purchase price - """, - "author": "Criptomart", - "website": "https://criptomart.net", + "author": "Odoo Community Association (OCA), Criptomart", + "maintainers": ["Criptomart"], + "website": "https://git.criptomart.net/criptomart/addons-cm", "license": "AGPL-3", "depends": [ "product_get_price_helper", @@ -21,5 +21,4 @@ "views/actions.xml", "views/product_view.xml", ], - "installable": True, } diff --git a/website_sale_aplicoop/__manifest__.py b/website_sale_aplicoop/__manifest__.py index db4a47b..c060b4a 100644 --- a/website_sale_aplicoop/__manifest__.py +++ b/website_sale_aplicoop/__manifest__.py @@ -1,40 +1,14 @@ -# Copyright 2025 Criptomart +# Copyright 2025 - Today Criptomart # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) -{ +{ # noqa: B018 "name": "Website Sale - Aplicoop", - "version": "18.0.1.0.2", + "version": "18.0.1.0.3", "category": "Website/Sale", "summary": "Modern replacement of legacy Aplicoop - Collaborative consumption group orders", - "description": """ -Website Sale - Aplicoop -======================= - -A modern Odoo 18 module that replaces the legacy Aplicoop application with -a complete, scalable solution for managing collaborative consumption group -orders (eskaera in Basque). - -Features --------- - -* Group Order Management: Create and manage group purchasing periods -* Separate Carts: Each user has an independent cart per group order -* Product Associations: Link products, suppliers, and categories to orders -* Web Interface: Responsive product catalog and checkout -* State Machine: Draft → Open → Closed/Cancelled workflow -* Sales Integration: Automatic conversion to Odoo sale.order -* Modern UI: AJAX-based cart without page reloads -* Security: Enterprise-ready with access control - -Installation ------------ - -Add to Odoo addons directory and install via Apps menu. -See README.rst for detailed documentation. - """, - "author": "Criptomart", + "author": "Odoo Community Association (OCA), Criptomart", "maintainers": ["Criptomart"], - "website": "https://criptomart.net", + "website": "https://git.criptomart.net/criptomart/addons-cm", "license": "AGPL-3", "depends": [ "website_sale", @@ -77,7 +51,5 @@ See README.rst for detailed documentation. "website_sale_aplicoop/static/tests/test_realtime_search.js", ], }, - "installable": True, - "auto_install": False, "application": True, }