Files
goodie/TODO.md
2026-04-03 13:20:03 +02:00

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

  1. Account Reconciliation (Payment↔Invoice)
  2. Stock Quant Management (Reservation)
  3. View Inheritance (XPath)
  4. PDF Reports (wkhtmltopdf)

Prio 2 — Verbessert UX stark

  1. Kanban auto_unfold
  2. Binary Field Serving (Bilder)
  3. Pivot/Graph Views
  4. Dynamic Visibility in Views

Prio 3 — Vervollstaendigung

  1. ir.cron Runner
  2. Mail Server Integration
  3. Authentik SSO
  4. Tests schreiben
  5. Weitere Module vertiefen