From 2b1cabbb4359a864220046cfc8fb6282666a45a3 Mon Sep 17 00:00:00 2001 From: GitHub Copilot Date: Tue, 11 Aug 2026 13:32:36 +0200 Subject: [PATCH] [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 --- .gitignore | 2 +- CLAUDE.md | 91 ------------------------------------------------------ 2 files changed, 1 insertion(+), 92 deletions(-) delete mode 100644 CLAUDE.md diff --git a/.gitignore b/.gitignore index 7a15db1..7db909f 100644 --- a/.gitignore +++ b/.gitignore @@ -135,4 +135,4 @@ tmp/ .claude/ .vscode/ .github - +CLAUDE.md diff --git a/CLAUDE.md b/CLAUDE.md deleted file mode 100644 index b49667d..0000000 --- a/CLAUDE.md +++ /dev/null @@ -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 # tests (run, NOT exec: avoids cache) -docker-compose exec odoo odoo -d odoo -u --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/`.