- 
                            
    Opening Keynote - Unveiling Odoo 18
    Fabien PinckaersHotovo
- 
                            
    Manage your Logistics Operations with RPC
    Pawel FertykHotovo
- 
                            
    Synchronize Data Using Webhooks
    Quentin CoussementHotovo
- 
                            
    Learn the JS Framework
    Géry DebongnieHotovo
- 
                            
    User Friendly URLs: a Technical Overview
    Jorge Pinna PuissantHotovo
- 
                            
    Learn OWL from Scratch
    Jorge Pinna PuissantHotovo
- 
                            
    Security in Odoo's Framework
    Denis LedouxHotovo
- 
                            
    Customize Views with your Own Javascript Fields
    Simon GeninHotovo
- 
                            
    Hosting your Odoo Server on the Public Internet: Do's & Don'ts
    Nicolas MartinelliHotovo
- 
                            
    Unveiling Most Common Security Issues
    Denis Ledoux & Florian VranckxHotovo
Raphael joined Odoo in 2011, when it was still called "OpenERP". He quickly moved to the "Framework" team, where he designed and implemented the "new API" of Python models. When the team grew, he became the team's leader, mostly because of the lack of other candidates. He kept contributing many optimizations and bug fixes in the framework. He regularly gives talks to Odoo Experience, and happily chats with every developer coming with nasty questions or bright ideas. And he also writes down his own Odoo biography, when asked to do so.
We present the various changes made to Odoo's Python framewok for version 18. Some changes aim at making the developer's life easier, like using "list" for list views, making invisible fields optional in views, detecting group restriction inconsistencies in views, and adding Python typing to the framework. We also introduced performance improvements, like grouping SQL UPDATE queries, enabling to order by, group by and aggregate non-stored related fields, and improving database workload by using read-only mirrors.
