[REM] CLAUDE.md: untrack it, ignored like the rest of the agent config
Joins `.claude/`, `.vscode/` and `.github` in the .gitignore. The file stays on disk, only out of version control, so its contents (including the path to the OCB and OCA sources) are now local to each machine. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
4615da6dae
commit
2b1cabbb43
2 changed files with 1 additions and 92 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -135,4 +135,4 @@ tmp/
|
|||
.claude/
|
||||
.vscode/
|
||||
.github
|
||||
|
||||
CLAUDE.md
|
||||
|
|
|
|||
91
CLAUDE.md
91
CLAUDE.md
|
|
@ -1,91 +0,0 @@
|
|||
# Kidekoop — Odoo 18.0 Custom Addons
|
||||
|
||||
Odoo 18.0 (OCB community) addons repo. Code in **English**.
|
||||
|
||||
## ⚠️ Critical rules (non-negotiable)
|
||||
|
||||
- **DO NOT modify** the OCB core (`ocb/`) nor these original OCA addons (reference/inheritance only):
|
||||
`product_main_seller`, `account_invoice_triple_discount`, `product_get_price_helper`,
|
||||
`product_price_category`, `purchase_triple_discount`, `base_bank_from_iban`, `l10n_es_partner`.
|
||||
All changes go in our own custom addons.
|
||||
- **Do NOT use `_()` in field definitions** (triggers import-time warnings). Only in methods/executable code.
|
||||
- **Business logic ALWAYS on `product.product`** (variants), never on `product.template` (use `related` there).
|
||||
Avoids issues with pricelists and reports that operate at the variant level.
|
||||
- **No logic in QWeb**: prepare all data in the Python controller; templates only do simple attribute access.
|
||||
- **No business logic in JavaScript**: UI/events only.
|
||||
- Translations: edit `.po` files with `polib` (append). **`msgmerge` corrupts the files** — do not use it.
|
||||
|
||||
## Stack
|
||||
|
||||
Odoo 18.0 · Python 3.10+ · PostgreSQL · Docker Compose · XML/QWeb/JS.
|
||||
Formatting: `black` (line 88) + `isort` (black profile) + `flake8` + `pylint-odoo`. Pre-commit active.
|
||||
|
||||
## Commands
|
||||
|
||||
```bash
|
||||
docker-compose up -d # env (8070=web, 8073=longpolling)
|
||||
docker-compose run odoo odoo -d odoo --test-enable --stop-after-init -u <addon> # tests (run, NOT exec: avoids cache)
|
||||
docker-compose exec odoo odoo -d odoo -u <addon> --stop-after-init # update addon
|
||||
docker-compose logs -f odoo # logs
|
||||
docker-compose exec db psql -U odoo -d odoo # postgres
|
||||
make lint | make format | make check-format | make flake8 | make pylint-required
|
||||
pre-commit run --all-files
|
||||
```
|
||||
|
||||
## Odoo conventions
|
||||
|
||||
- Models `snake.case` · classes `PascalCase` · files `snake_case.py` · XML IDs `module.name`.
|
||||
- Manifest always `__manifest__.py`, version `18.0.X.Y.Z`, `depends` alphabetically ordered.
|
||||
- Views: 4 spaces, explicit `position` in XPath, groups via `module.xml_id`, `sequence` for ordering.
|
||||
- Bulk: prefer `search().write()` over loops; `create([vals, ...])` for bulk create.
|
||||
- Notifications: `ir.actions.client` + `display_notification`.
|
||||
- Detailed logging in price/discount computations: `_logger.info("[PRICE] ...", ...)`.
|
||||
|
||||
## Custom addons
|
||||
|
||||
Pricing & products:
|
||||
|
||||
- `product_sale_price_from_pricelist` — auto-computes sale price from last purchase price + pricelist.
|
||||
Requires taxes on the product and `last_purchase_price_compute_type != "manual_update"`.
|
||||
Also applies supplier discounts from `supplierinfo`.
|
||||
- `product_pricelist_total_margin` — total margin computed additively (Markup or Commercial Margin), with global limits.
|
||||
- `product_price_category_supplier` — price categories per supplier.
|
||||
- `product_origin_char` — free-text origin field per product (template-based).
|
||||
- `account_invoice_triple_discount_readonly` — fix for triple-discount accumulation bug (always use it).
|
||||
|
||||
Sales & website:
|
||||
|
||||
- `website_sale_aplicoop` — Eskaera: collaborative purchasing for consumer co-ops (group orders,
|
||||
per-member carts, cutoff/pickup dates, lazy loading, multi-language).
|
||||
- `website_sale_disable_cart` — turns `/shop` into a read-only catalog: hides the cart UI and
|
||||
redirects the standard `/shop/cart*` routes to a configurable URL (default `/shop`).
|
||||
- `portal_event_registration` — portal users view their event registrations + upload attachments to chatter.
|
||||
|
||||
Membership:
|
||||
|
||||
- `membership_monthly_invoicing` — auto-creates a monthly membership invoice per active member (cron-driven).
|
||||
- `membership_expiry_reminder` — automated renewal-reminder emails near expiry, with online renew link.
|
||||
|
||||
Logistics & accounting:
|
||||
|
||||
- `stock_picking_batch_custom` — batch picking extras: extra detailed-op columns, ordering by
|
||||
category/product/partner, and a full-screen operator (Basket Assembly) view.
|
||||
- `account_banking_mandate_batch` — contextual action to bulk-create/validate SEPA mandates for selected partners.
|
||||
- `l10n_es_edi_tbai_reagyp_recibidas` — TicketBAI fix: REAGYP vendor-bill regime key 19 → 02.
|
||||
|
||||
## Documentation
|
||||
|
||||
- Per-addon details: its `README.rst` (OCA) or `README_DEV.md` (technical).
|
||||
- Global patterns: `.github/copilot-instructions.md` (extended version of this file).
|
||||
- Guides: `docs/QWEB_BEST_PRACTICES.md`, `docs/OCA_DOCUMENTATION.md`, `docs/LAZY_LOADING.md`.
|
||||
- OCA `readme/` structure (DESCRIPTION, INSTALL, CONFIGURE, USAGE, CONTRIBUTORS, CREDITS).
|
||||
Credits: Criptomart (author).
|
||||
|
||||
## Commits
|
||||
|
||||
`[TAG] module: description` — tags: `[ADD] [FIX] [IMP] [REF] [REM] [I18N] [DOC]`.
|
||||
|
||||
## Available skills
|
||||
|
||||
Per-language skills (`odoo-python`, `odoo-xml-views`, `odoo-qweb-html`, `odoo-javascript`) and the
|
||||
OpenSpec workflow (`openspec-explore/propose/apply-change/archive-change`, `/opsx:*` commands) live in `.claude/`.
|
||||
Loading…
Add table
Add a link
Reference in a new issue