Odoo är byggt för att utökas med egna moduler. Varje anpassning bör vara en modul, inte en ändring i kärnkoden. Det gör uppgraderingar möjliga och håller systemet underhållbart.
Scaffolding
odoo scaffold mitt_modul /mnt/extra-addons skapar grundstrukturen: __init__.py, __manifest__.py, models/, views/, security/. Det tar tre sekunder och ger dig en fungerande grund.
__manifest__.py
Modulens metadata: namn, version, beroenden, datafiler, assets. Beroenden (depends) är kritiskt: om din modul utökar CRM, lägg 'crm' i depends. Odoo installerar beroenden automatiskt.
Modeller
Python-klasser som ärver från models.Model. Varje klass blir en databastabell automatiskt. Fält definieras som klassattribut: name = fields.Char(), amount = fields.Float(), partner_id = fields.Many2one('res.partner'). Relationsfält (Many2one, One2many, Many2many) skapar kopplingar mellan modeller.
Vyer
XML-filer som definierar hur data visas. Formulärvy för enskild post, listvy för överskikt, Kanban för visuell board. Vyer kopplas till modeller och kan ärva och utöka befintliga vyer med XPath.
Säkerhet
ir.model.access.csv definierar vilka användargrupper som får läsa, skriva, skapa och radera poster. Utan denna fil är modellen osynlig för alla utom admin. Det är det vanligaste misstaget vid modulutveckling.
Installera
Uppdatera applikationslistan (Inställningar → Appar → Uppdatera). Sök på modulnamnet. Installera. Odoo skapar tabeller, laddar vyer och konfigurerar säkerhet automatiskt.
Bygg en enkel modul först. Förstå ORM-lagret. Sedan kan du utöka i princip vad som helst.