addons-cm/README.md
GitHub Copilot 1d6f95bdb7
Some checks failed
CI / lint (pull_request) Successful in 31s
CI / test (pull_request) Failing after 10m57s
CI / review (pull_request) Has been skipped
[ADD] web_checkbox_contrast: visible border on unchecked backend checkboxes
Odoo 18 draws the unchecked checkboxes, radios and switches of the backend
with the separator gray (`--border-color`, gray-300): 1.3:1 on white, and
1.1:1 on readonly fields and list cells, which are dimmed to 50% on top.

CSS-only addon that redefines `--border-color` on `.form-check-input`:
gray-600 (4.7:1) when editable, gray-900 (3.1:1 after the dimming) when
disabled. Bootstrap reads the property only in the base border of the
control, so the checked, indeterminate, focus and hover states keep their
stock colours whatever the load order.

Closes #20

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 19:01:12 +02:00

105 lines
5.1 KiB
Markdown

# 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](https://github.com/OCA) incorporados al repositorio. No se modifican salvo hotfixes puntuales.
| Addon | Versión | Descripción |
| ----- | ------- | ----------- |
| [account_invoice_triple_discount](account_invoice_triple_discount/) | 18.0.1.0.0 | Triple descuento en líneas de factura |
| [product_get_price_helper](product_get_price_helper/) | 18.0.1.1.0 | Helper para obtener precios de producto respetando tarifas |
| [product_main_seller](product_main_seller/) | 18.0.1.0.0 | Campo "proveedor principal" en producto |
| [product_origin_char](product_origin_char/) | 18.0.2.0.0 | Campo de texto libre para origen del producto |
| [product_price_category](product_price_category/) | 18.0.1.0.0 | Categoría de precio en producto + aplicación masiva vía tarifas |
| [purchase_triple_discount](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](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](membership_expiry_reminder/) | 18.0.1.0.0 | Recordatorio por email de membresías próximas a vencer |
| [portal_event_registration](portal_event_registration/) | 18.0.1.0.0 | Vista portal de inscripciones a eventos con adjuntos al chatter |
| [product_price_category_supplier](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](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](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](stock_picking_batch_collect/) | 18.0.2.0.0 | Montaje de cestas en lotes: columnas extra, resumen por producto y vista operario |
| [web_checkbox_contrast](web_checkbox_contrast/) | 18.0.1.0.0 | Borde visible en casillas, radios e interruptores sin marcar del backend (sólo CSS) |
| [web_list_striped](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](website_sale_aplicoop/) | 18.0.1.17.0 | Sistema de pedidos colaborativos para grupos de consumo (reemplazo de Aplicoop) |
## Dependencias entre addons custom
```text
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
```bash
docker-compose exec -T odoo odoo -d odoo -u <nombre_addon> --stop-after-init
```
### Tests
```bash
docker-compose exec -T odoo odoo -d odoo --test-enable --stop-after-init -u <nombre_addon>
```
### Linters
```bash
# Python
black . && isort . && flake8 . && pylint --load-plugins=pylint_odoo <addon>/
# JS
npx eslint <addon>/static/src/
```
Ver [docs/LINTERS_README.md](docs/LINTERS_README.md) para configuración completa.
### Traducciones
Ver [docs/TRANSLATIONS.md](docs/TRANSLATIONS.md).
## CI/CD (Forgejo Actions)
En `.gitea/workflows/`, sobre un runner (etiqueta `issue-bot`) registrado en la organización
CriptoMart en la misma máquina e imagen que el de ecocentral; ver
[tools/issue_bot/README.md](tools/issue_bot/README.md#con-actions):
| Workflow | Cuándo | Qué hace |
| -------- | ------ | -------- |
| `ci.yml` | PR y push a `18.0` | `lint` (pre-commit), `test` ([tools/ci/run_tests.py](tools/ci/run_tests.py)) y `review` (bot de revisión, tras pasar los dos) |
| `issue-bot.yml` | Incidencia abierta o comentada | [Bot de incidencias](tools/issue_bot/README.md): responde o abre un PR en `bot/issue-N` |
| `pr-bot.yml` | Se quita `WIP` o se pone la etiqueta `i18n` | [Bot de revisión](tools/pr_bot/README.md), si el CI ya había pasado |
El contexto que reciben los bots sobre este repo está en [.gitea/issue-bot.md](.gitea/issue-bot.md).
Los repos OCA de los que dependen los tests y la imagen del runner se mantienen en el repo de
ecocentral (`tools/issue_bot/runner/`).
## Documentación técnica
Ver carpeta [docs/](docs/) para documentación transversal (instalación, lazy loading, QWeb, etc.).