Odoo addons personalizados por Criptomart
Find a file
GitHub Copilot ef1283be7c [REF] stock_picking_batch_collect: rename and drop the aplicoop dependency
"custom" said nothing about what the module does. It is really about collecting
goods into baskets: the extra detailed-operation columns, the is_collected flag,
the Product Summary tab, the per-company validation restrictions and the
Basket Assembly operator view all serve that one job. Rename it accordingly.

Invert the dependency while at it. A generic warehouse addon was dragging in an
entire eCommerce application, and the whole coupling was a single field:
stock.move.line.home_delivery, related to picking_id.home_delivery. Everything
else was already duck-typed. website_sale_aplicoop now depends on this module
and injects its own consumer group columns into these views.

This removes duplicated logic rather than relocating it: stock.picking
.batch_consumer_group_id re-derived from sale_id a value aplicoop already stored
as stock.picking.consumer_group_id, and the duplicate carried no @api.depends,
so it never recomputed reliably. The batch transfers list now shows the stored
field, which is sortable and groupable.

The two aplicoop tests that probed information_schema for the res_company
batch_* columns can drop that guard: a real dependency guarantees them.

Renaming an addon is not something a migrations/ script can do, since a renamed
addon is a brand new module to Odoo and its migration scripts never run. A
pre_init_hook does it instead: it fires on install after the Python is imported
but before registry.load(), which is the window where remapping ir_model_data
makes Odoo reuse the existing tables and columns. is_collected, the summary line
table and the company settings all survive untouched.

Two details the hook has to get right:

- ir_model_constraint.module and ir_model_relation.module are integer FKs with
  ON DELETE CASCADE, so they must be repointed before the old module row is
  deleted or the bookkeeping goes with it.
- Deleting an ir_model_data row does not cascade to the record it points at.
  Artifacts handed over to aplicoop only need the xmlid dropped, but artifacts
  that disappear need the record deleted too, or the field survives as an orphan
  manual field and the view as a custom view referencing it.

Verified against a restored copy of the dev database: 50 xmlids moved, 19 summary
lines and 5 collected move lines preserved, no orphans, both test suites green,
and the module installs cleanly on a database without website_sale_aplicoop.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-27 14:26:47 +02:00
.claude [IMP] website_sale_aplicoop: accessibility and responsive polish — phase 8 2026-08-16 11:34:38 +02:00
.github [REF] stock_picking_batch_collect: rename and drop the aplicoop dependency 2026-08-27 14:26:47 +02:00
.vscode build: configurar herramientas de verificación OCA 2026-02-11 16:09:41 +01:00
account_banking_mandate_batch acción de servidor para crear mandatos bancarios en lote 2026-08-07 16:38:15 +02:00
account_invoice_triple_discount_readonly iconos 2026-02-25 18:41:16 +01:00
docs [IMP] website_sale_aplicoop: accessibility and responsive polish — phase 8 2026-08-16 11:34:38 +02:00
l10n_es_edi_tbai_reagyp_recibidas Revert "[FIX] l10n_es_edi_tbai_reagyp_recibidas: fix chaining within same invoice series" 2026-07-31 19:11:49 +02:00
l10n_es_partner_ccpae addons portados en el repo de ecocentral 2026-08-07 16:34:38 +02:00
membership_expiry_reminder cron better exception management. show supplier commercial name in product card template. linters config 2026-06-02 10:43:54 +02:00
membership_monthly_invoicing create monthly recurring membership lines 2026-06-02 14:22:13 +02:00
membership_payment_date #2 #3 add membership_payment_date: membership start date -> payment date. Don't overlap membership periods on renewals 2026-07-14 11:56:57 +02:00
portal_event_registration cron better exception management. show supplier commercial name in product card template. linters config 2026-06-02 10:43:54 +02:00
pos_account_payment_order_sepa paso a pos.sessions más natural, los apuntes están ahí. 2026-06-26 19:57:07 +02:00
pos_full_refund addons portados en el repo de ecocentral 2026-08-07 16:34:38 +02:00
pos_order_reorder addons portados en el repo de ecocentral 2026-08-07 16:34:38 +02:00
pos_payment_method_cashdro_fix [IMP] docker-compose: host paths in .env, override merged in 2026-08-17 13:57:25 +02:00
pos_payment_method_cashdro_rounding [ADD] pos_payment_method_cashdro_rounding: migration to 18.0 2026-08-11 13:30:49 +02:00
product_origin_char [I18N] website_sale_aplicoop, product_origin_char: add Catalan translation 2026-08-13 11:52:54 +02:00
product_price_category_supplier iconos 2026-02-25 18:41:16 +01:00
product_pricelist_total_margin iconos 2026-02-25 18:41:16 +01:00
product_public_category_from_internal [ADD] product_public_category_from_internal: mirror internal categories into eCommerce ones 2026-08-17 19:42:01 +02:00
product_sale_price_from_pricelist [ADD] product_sale_price_from_pricelist: server action to bulk-correct purchase price from supplierinfo 2026-06-12 16:30:15 +02:00
purchase_rappel Ecocentral/ecocentral#172: migrate purchase_rappel to 18.0 2026-06-23 14:30:03 +02:00
scripts [I18N] website_sale_aplicoop: Limpieza de traducciones y etiquetas UI en inglés por defecto 2026-02-26 14:33:44 +01:00
setup build: configurar herramientas de verificación OCA 2026-02-11 16:09:41 +01:00
sort_lines_by_product_name addons portados en el repo de ecocentral 2026-08-07 16:34:38 +02:00
stock_move_manual_quantity [ADD] stock_move_manual_quantity: a hand-typed quantity is the picked one 2026-08-27 13:26:44 +02:00
stock_picking_batch_collect [REF] stock_picking_batch_collect: rename and drop the aplicoop dependency 2026-08-27 14:26:47 +02:00
stock_picking_report_undelivered_product addons portados en el repo de ecocentral 2026-08-07 16:34:38 +02:00
web_list_striped [ADD] web_list_striped: zebra striping for all backend list views 2026-08-27 14:26:28 +02:00
website_membership_associate add website_membership_associate 2026-07-28 09:29:14 +02:00
website_membership_signup_required website_membership_signup_required: fix reset_password form 2026-07-27 11:25:19 +02:00
website_sale_aplicoop [REF] stock_picking_batch_collect: rename and drop the aplicoop dependency 2026-08-27 14:26:47 +02:00
website_sale_disable_cart [ADD] website_sale_disable_cart: extract cart restriction from website_sale_aplicoop 2026-08-06 11:34:59 +02:00
website_sale_lazy_loading [I18N] website_sale_lazy_loading: add es, ca, eu and gl translations 2026-08-24 13:06:00 +02:00
.editorconfig build: configurar herramientas de verificación OCA 2026-02-11 16:09:41 +01:00
.env.example [IMP] docker-compose: host paths in .env, override merged in 2026-08-17 13:57:25 +02:00
.flake8 cron better exception management. show supplier commercial name in product card template. linters config 2026-06-02 10:43:54 +02:00
.gitignore [REM] CLAUDE.md: untrack it, ignored like the rest of the agent config 2026-08-11 13:32:36 +02:00
.isort.cfg build: configurar herramientas de verificación OCA 2026-02-11 16:09:41 +01:00
.pre-commit-config.yaml cron better exception management. show supplier commercial name in product card template. linters config 2026-06-02 10:43:54 +02:00
.prettierignore [FIX] product_sale_price_from_pricelist: Actualizar tests para Odoo 18 2026-02-12 19:23:29 +01:00
.prettierrc.yml [REF] website_sale_aplicoop: Mejorar legibilidad del XML (reformatear con mejor indentación) 2026-02-26 14:59:34 +01:00
.pylintrc cron better exception management. show supplier commercial name in product card template. linters config 2026-06-02 10:43:54 +02:00
.pylintrc-mandatory cron better exception management. show supplier commercial name in product card template. linters config 2026-06-02 10:43:54 +02:00
check_addon.sh build: configurar herramientas de verificación OCA 2026-02-11 16:09:41 +01:00
check_tax_config.sh Revertir cambio: eliminar cálculo duplicado de impuestos 2026-02-11 19:54:28 +01:00
docker-compose.yml [IMP] docker-compose: host paths in .env, override merged in 2026-08-17 13:57:25 +02:00
eslint.config.js [CHORE] Add ESLint configuration file 2026-02-17 01:29:17 +01:00
Makefile build: configurar herramientas de verificación OCA 2026-02-11 16:09:41 +01:00
oca_dependencies.txt build: configurar herramientas de verificación OCA 2026-02-11 16:09:41 +01:00
odoo.conf docker test files 2026-02-11 15:33:31 +01:00
pyproject.toml cron better exception management. show supplier commercial name in product card template. linters config 2026-06-02 10:43:54 +02:00
README.md [REF] stock_picking_batch_collect: rename and drop the aplicoop dependency 2026-08-27 14:26:47 +02:00
requirements.txt build: configurar herramientas de verificación OCA 2026-02-11 16:09:41 +01:00

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_collect 18.0.2.0.0 Montaje de cestas en lotes: columnas extra, resumen por producto y vista operario
web_list_striped 18.0.1.0.0 Efecto cebra y hover suave en todas las listas del backend (sólo CSS)
website_sale_aplicoop 18.0.1.17.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
  └── stock_picking_batch_collect
        └── stock_move_manual_quantity

stock_picking_batch_collect
  └── stock_move_manual_quantity
  └── stock_picking_batch (Odoo core)

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.).