Odoo addons personalizados por Criptomart
Basket Assembly is where the reverting quantity was noticed, so it depends on stock_move_manual_quantity now and its two lists load `picked`: the web client only saves the fields present in the arch, and without it the onchange that freezes a hand-typed quantity never reaches the server. Collecting a line does the same, minus the demand. It is the operator saying the goods are in the basket, so the quantity has to survive the reservation engine even when it was never retyped -- but only a quantity typed by hand says what the demand should become, and a line collected at zero would otherwise lose its demand and be cancelled on validation. Drops views/stock_move_line_views.xml on the way. It declared a second record under the id stock_picking_batch_views.xml already uses, so it was loaded first and immediately overwritten: dead weight that would have turned into a duplicate-field view had anyone renamed it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| .claude | ||
| .github | ||
| .vscode | ||
| account_banking_mandate_batch | ||
| account_invoice_triple_discount_readonly | ||
| docs | ||
| l10n_es_edi_tbai_reagyp_recibidas | ||
| l10n_es_partner_ccpae | ||
| membership_expiry_reminder | ||
| membership_monthly_invoicing | ||
| membership_payment_date | ||
| portal_event_registration | ||
| pos_account_payment_order_sepa | ||
| pos_full_refund | ||
| pos_order_reorder | ||
| pos_payment_method_cashdro_fix | ||
| pos_payment_method_cashdro_rounding | ||
| product_origin_char | ||
| product_price_category_supplier | ||
| product_pricelist_total_margin | ||
| product_public_category_from_internal | ||
| product_sale_price_from_pricelist | ||
| purchase_rappel | ||
| scripts | ||
| setup | ||
| sort_lines_by_product_name | ||
| stock_move_manual_quantity | ||
| stock_picking_batch_custom | ||
| stock_picking_report_undelivered_product | ||
| website_membership_associate | ||
| website_membership_signup_required | ||
| website_sale_aplicoop | ||
| website_sale_disable_cart | ||
| website_sale_lazy_loading | ||
| .editorconfig | ||
| .env.example | ||
| .flake8 | ||
| .gitignore | ||
| .isort.cfg | ||
| .pre-commit-config.yaml | ||
| .prettierignore | ||
| .prettierrc.yml | ||
| .pylintrc | ||
| .pylintrc-mandatory | ||
| check_addon.sh | ||
| check_tax_config.sh | ||
| docker-compose.yml | ||
| eslint.config.js | ||
| Makefile | ||
| oca_dependencies.txt | ||
| odoo.conf | ||
| pyproject.toml | ||
| README.md | ||
| requirements.txt | ||
Odoo Addons — Criptomart
Colección de addons Odoo 18.0 para Criptomart / Elika Bilbo. Incluye addons OCA incluidos como dependencias y addons custom desarrollados internamente.
Addons OCA (dependencias incluidas)
Addons del ecosistema OCA incorporados al repositorio. No se modifican salvo hotfixes puntuales.
| Addon | Versión | Descripción |
|---|---|---|
| account_invoice_triple_discount | 18.0.1.0.0 | Triple descuento en líneas de factura |
| product_get_price_helper | 18.0.1.1.0 | Helper para obtener precios de producto respetando tarifas |
| product_main_seller | 18.0.1.0.0 | Campo "proveedor principal" en producto |
| product_origin_char | 18.0.2.0.0 | Campo de texto libre para origen del producto |
| product_price_category | 18.0.1.0.0 | Categoría de precio en producto + aplicación masiva vía tarifas |
| purchase_triple_discount | 18.0.1.0.0 | Triple descuento en líneas de pedido de compra |
Addons Custom
Addons desarrollados por Criptomart para necesidades específicas del proyecto.
| Addon | Versión | Descripción |
|---|---|---|
| account_invoice_triple_discount_readonly | 18.0.1.0.0 | Corrige bug de acumulación de descuentos y pone descuento total en solo lectura |
| membership_expiry_reminder | 18.0.1.0.0 | Recordatorio por email de membresías próximas a vencer |
| portal_event_registration | 18.0.1.0.0 | Vista portal de inscripciones a eventos con adjuntos al chatter |
| product_price_category_supplier | 18.0.1.0.0 | Categoría de precio por defecto en proveedor + actualización masiva de productos |
| product_pricelist_total_margin | 18.0.1.2.0 | Margen aditivo (no compuesto) en tarifas encadenadas, con límites globales |
| product_sale_price_from_pricelist | 18.0.2.7.0 | Calcula precio de venta desde último precio de compra vía tarifa configurable |
| stock_picking_batch_custom | 18.0.1.0.0 | Columnas extra en operaciones detalladas de lotes: partner, categoría, recogido |
| website_sale_aplicoop | 18.0.1.9.0 | Sistema de pedidos colaborativos para grupos de consumo (reemplazo de Aplicoop) |
Dependencias entre addons custom
website_sale_aplicoop
└── product_sale_price_from_pricelist
└── product_pricelist_total_margin
└── product_price_category
└── product_main_seller
└── product_price_category_supplier
└── product_price_category
account_invoice_triple_discount_readonly
└── account_invoice_triple_discount
└── purchase_triple_discount
Desarrollo
Instalación / actualización de un addon
docker-compose exec -T odoo odoo -d odoo -u <nombre_addon> --stop-after-init
Tests
docker-compose exec -T odoo odoo -d odoo --test-enable --stop-after-init -u <nombre_addon>
Linters
# Python
black . && isort . && flake8 . && pylint --load-plugins=pylint_odoo <addon>/
# JS
npx eslint <addon>/static/src/
Ver docs/LINTERS_README.md para configuración completa.
Traducciones
Ver docs/TRANSLATIONS.md.
Documentación técnica
Ver carpeta docs/ para documentación transversal (instalación, lazy loading, QWeb, etc.).