8.0 KiB
8.0 KiB
odoo-go TODO — Weg zur 1:1 Paritaet mit Python Odoo
Stand: 2026-04-02 | Go: 19.925 LOC | Python Referenz: 92.733 LOC (core) + Addons
Legende
- Offen
- Erledigt
- ~70% = UI/Demo funktioniert, ~25% = Code-Tiefe vs Python
1. ORM-Kern (aktuell ~75%)
Erledigt
- CRUD (create/read/write/unlink)
- Domain-Compiler (AND/OR/NOT, child_of, parent_of, any, dot-notation JOINs)
- read_group mit Aggregation (sum/avg/min/max/count, Date-Granularitaet)
- Computed Fields mit Dependency-Tracking
- _inherits (Delegation: res.users→res.partner, product.product→product.template)
- Related Fields (Read + Write-back)
- Record Rules (domain_force parsing, global AND + group OR)
- Copy/Duplicate mit IsCopyable
- Constraints in Create + Write
- Readonly-Skip in Write
- active_test Auto-Filter in Search
- Onchange mit Compute-Triggering
- sanitizeFieldValue (false→nil fuer non-boolean)
- name_search / name_create
Offen
- _inherit (Model-Extension/Mixin) — aktuell nur neue Models, kein Erweitern bestehender
- Inverse Fields (Compute write-back via benannte Methode)
- Multi-hop Related Fields (aktuell nur single-hop "fk.field")
- Batch-Create (Liste von Values statt einzeln)
- Prefetch/Lazy Loading (aktuell alles auf einmal)
- SQL Constraints (UNIQUE, CHECK)
- Field-Level Groups (Feld-Sichtbarkeit nach Gruppen)
- Translatable Fields (translate=True → ir.translation Lookup)
- Properties Field (JSONB key-value)
- parent_path (Hierarchie-Optimierung)
- Flush/Recompute Ordering (Python hat _recompute_todo Queue)
- Environment.ref() vollstaendig
- Recordset Arithmetic (+ - & | Operatoren vollstaendig)
2. Web/RPC Server (aktuell ~80%)
Erledigt
- JSON-RPC Dispatch (/web/dataset/call_kw, call_button)
- web_search_read / web_read / web_save
- web_read_group / read_group
- O2M Child Records in web_read Response
- get_views mit Comodel-Metadaten
- Onchange RPC
- Action Loading (/web/action/load)
- Menu Loading (/web/webclient/load_menus)
- Session Management (PostgreSQL-persistent)
- File Upload/Download (ir.attachment)
- CSV Export (/web/export/csv)
- HTML Reports (/report/html/)
- Translations Endpoint
- call_button mit Action-Return
- get_formview_action / name_create / ir.http stub
Offen
- PDF Reports (wkhtmltopdf oder Go-PDF-Library)
- QWeb Template Engine (Report-Templates wie Python)
- /web/dataset/export (XLSX Export)
- /web/action/run (Server Actions ausfuehren)
- /web/view/edit_custom (Custom View Saves)
- /web/model/get_definitions
- Kanban auto_unfold (Gruppen standardmaessig offen mit Records)
- Binary Field Serving (Bilder in Form-Views)
- Websocket/Longpoll (Bus fuer Live-Updates)
- Mail-Integration (SMTP senden)
3. Views/UI (aktuell ~70%)
Erledigt
- List View (auto-generiert + stored)
- Form View (auto-generiert + stored, mit Header-Buttons)
- Kanban View (auto-generiert + stored)
- Search View (auto-generiert mit Filters/Group-By)
- Stored Views aus DB (14 Views)
- Auto-generierte Views als Fallback
- O2M Inline-Listen in Form-Views (editable)
- Statusbar Widget mit clickable States
Offen
- View Inheritance (XPath-basiert, inherit_id)
- Pivot View
- Graph View
- Calendar View
- Gantt View
- Activity View
- Map View
- View Customization (ir.ui.view.custom)
- Dynamic Visibility (invisible/readonly Conditions in XML)
- Widget-System (many2one_avatar, priority, statusbar etc.)
- Chatter/Mail-Thread in Form-Views
4. Business-Module (aktuell ~25% Code-Tiefe)
Account (1.072 / 40.910 LOC = 2.6%)
- account.move (Invoice CRUD, action_post, button_cancel)
- account.move.line (Buchungszeilen)
- account.journal, account.account, account.tax
- account.payment + payment.register Wizard
- Reconciliation (Payment↔Invoice Matching) — KRITISCH
- Bank Statements (Import, Matching)
- Tax Reports (Umsatzsteuervoranmeldung)
- Asset Management
- Aged Receivable/Payable Reports
- Fiscal Year / Period Management
- Payment Provider Integration
- Chart of Accounts Import (volle l10n_de)
Sale (641 / 8.009 LOC = 8%)
- sale.order + sale.order.line (CRUD, Confirm, Create Invoice)
- Computed Amounts (untaxed, tax, total, line subtotal)
- Sale Order Line Tax-Berechnung (tax_id → tax lines)
- Pricelist-Support (Rabatte, Staffelpreise)
- Quotation Templates
- Sale Order Cancellation + Refund
- Delivery Integration (Lieferschein-Erstellung korrekt)
- Margin-Berechnung
- Sale Reports (Revenue, Pipeline)
Stock (588 / 17.672 LOC = 3.3%)
- stock.picking, stock.move, stock.location, stock.warehouse
- stock.quant (Basic)
- Quant-Management (Reservation, Unreserve) — KRITISCH
- Stock Valuation (FIFO, Average Cost)
- Reorder Rules (stock.warehouse.orderpoint)
- Barcode/Lot Tracking
- Inventory Adjustments
- Stock Reports (Valuation, Moves)
- Multi-Warehouse Routing
- Package Management
Purchase (350 / 3.977 LOC = 8.8%)
- purchase.order + purchase.order.line (CRUD, Confirm)
- 3-Way Matching (PO → Receipt → Bill)
- Purchase Agreements
- Vendor Bills aus PO erstellen
- Purchase Reports
CRM (300 / 5.019 LOC = 6%)
- crm.lead + crm.stage + crm.lost.reason
- Pipeline Kanban mit Stages
- Won/Lost Actions
- Lead Scoring / Probability
- Email Integration (Lead aus Email)
- Activities / Planned Actions
- Lead Assignment Rules
- CRM Reports (Pipeline, Revenue)
HR (200 / 4.609 LOC = 4.3%)
- hr.employee, hr.department, hr.job
- Contracts (hr.contract)
- Leave Management (hr.leave)
- Attendance Tracking
- Payroll Integration
- Employee Documents
Project (200 / 6.730 LOC = 3%)
- project.project, project.task
- Task Stages / Kanban
- Timesheet Integration
- Project Updates / Milestones
- Burndown Charts
5. System/Admin (aktuell ~68%)
Erledigt
- Settings-Seite (res.config.settings mit Firmen-Fields)
- Users/Companies/Groups Verwaltung
- Technical Menu (Views, Actions, Parameters, Security, Logging)
- Session-Persistenz (PostgreSQL)
- ir.config_parameter (get_param/set_param)
- ir.cron Model (registriert)
- ir.logging Model
- res.lang + ir.translation Models
- Password Hashing (bcrypt)
- change_password Methode
Offen
- ir.cron Runner (Goroutine Scheduler der Jobs ausfuehrt)
- Mail Server (ir.mail_server, SMTP Config)
- Authentik SSO / OAuth2 (geplant, siehe memory)
- API Key Auth (Token-basierter Zugriff)
- Module Install/Upgrade Lifecycle
- XML Data Loading (aus Addon data/ Ordnern)
- User Audit Log (wer hat was geaendert)
- Database Backup/Restore
- Multi-Database Support
6. Infrastruktur
Erledigt
- Docker Compose (Go Server + PostgreSQL)
- OWL 19.0 Frontend eingebettet
- JS Transpiler (ES6→odoo.define)
- XML Template Compiler
- CSS Bundling
- Database Manager (/web/database/manager)
Offen
- Tests (aktuell 0 Go-Tests fuer ORM)
- CI/CD Pipeline
- Migrations (Schema-Upgrades bei Model-Aenderungen)
- Performance-Benchmarks
- Logging Framework (strukturiert, nicht nur log.Printf)
- Configuration File (statt nur Env-Vars)
- Odoo.com URLs entfernt (alle 5 Stellen)
- Health-Check erweitern (DB + Dependencies)
Priorisierung fuer naechste Sessions
Prio 1 — Blockiert echte Nutzung
- Account Reconciliation (Payment↔Invoice)
- Stock Quant Management (Reservation)
- View Inheritance (XPath)
- PDF Reports (wkhtmltopdf)
Prio 2 — Verbessert UX stark
- Kanban auto_unfold
- Binary Field Serving (Bilder)
- Pivot/Graph Views
- Dynamic Visibility in Views
Prio 3 — Vervollstaendigung
- ir.cron Runner
- Mail Server Integration
- Authentik SSO
- Tests schreiben
- Weitere Module vertiefen