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>
105 lines
5.1 KiB
Markdown
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.).
|