Skip to Content

What's new in the Python framework?

Duration: 56:16


🧾 Analytical Summary

Server‑side, Odoo 19 focuses on correctness, speed, and developer clarity: a first‑class Domain object with optimizations to emit better SQL, work‑entry and payroll refactors, registry/setup speedups, safer access checks, and practical ORM/GC tweaks.

🔎 Domains, optimized

  • New Domain AST object (Python) with operators (&, |, ~), iterators, and transforms.
  • Optimizations (normalize =/>= to IN/NOT IN; merge sets; group ANY over relations) generate faster SQL.
  • New ANY! (internal) bypasses access for related value reads without leaking rights; join shortcuts for M2O.

⚙️ ORM & config

  • search_fetch to prefetch fields with search; faster cold paths.
  • Field cache redesigned per‑field, reducing overhead.
  • Config env‑vars and cleaner odoo.tools.config; registry loading disables GC for speed.

🗃️ SQL & performance

  • Prefer (NOT) EXISTS over (NOT) IN subselects for PostgreSQL plans.
  • Model setup now incremental (only impacted models), cutting install/upgrade minutes to seconds.
  • QWeb templates pre‑load dependent templates to slash cold‑render SQL.

🔐 Access, indexes, dates

  • has_field_access / check_field_access APIs take field objects.
  • Declarative ._sql_constraints / indexes; unique helper.
  • Dynamic date DSL (e.g., “last week”) aligns with domain grammar.

⏱️ Cron

  • Progress API + small slices + commit‑per‑slice reduce long tx conflicts; auto‑deactivate chronic failures.

🧠 Viewpoint: Odoo Perspective

Better plans start with better domains. We localized complexity (fields), sped up cold paths, and made upgrades lighter for real.

🏢 Viewpoint: Competitors

The Domain AST + SQL strategy is a strong core move. Buyers will compare migration tooling, strictness (typing), and observability to other ERPs/frameworks.


Disclaimer: This article contains AI-generated summaries and fictionalized commentaries for illustrative purposes. Viewpoints labeled as "Odoo Perspective" or "Competitors" are simulated and do not represent any real statements or positions. All product names and trademarks belong to their respective owners.

Share this post
Archive
Sign in to leave a comment
What's new in the JavaScript framework?