Das erste Modul

Nachdem nun actions, menus, views und models bekannt soll dieses Wissen nun in die Praxis umgesetzt werden.


Scaffolding

Scaffolding, übersetzt "Gerüst", erzeugt ein Grundgerüst für ein Modul. Es werden alle notwendigen Dateien und Verzeichnisse erzeugt.


Der angegebene Ort nimmt immer das aktuelle Verzeichnis als Ausgangspunkt, es sei denn man gibt einen absoluten Pfad an. Dieser beginnt mit einem Slash(/).

$ odoo-bin scaffold  Modulname Ort/an/dem/es/gespeichert/werden/soll

So sieht das Ganze in der Konsole aus.

Aufbau eines Moduls

Grundsätzlich gilt, dass alle .py Dateien in der __init__.py ihres Verzeichnisses registriert werden müssen. Hat das Modul Unterverzeichnisse, wie etwa model, die .py Datein enthalten so muss auch dort eine __init__.py vorhanden sein. Diese müssen dann auch im Oberverzeichnis des Moduls registriert werden.

Zur Veranschaulichung werden hier models, views und reports importiert.

import models
import views
import reports

Die  __manifest__.py ist eine der wichtigsten Dateien eines jeden Moduls. Hier wird der Name und eine kurze Beschreibung dessen was es machen soll. Wichtiger jedoch sind die Abhängigkeiten, ob es installiert werden darf oder nicht und die views. Alle xml Dateien, ob views oder reports, müssen hier eingetragen sein. 

{
    'name': "Ein Modul",
    'version': '1.0',
    'depends': ['base'],
    'author': "Name des Autors",
    'category': 'Kategorie',
    'description': """
    Beschreibung
    """,
    # data files always loaded at installation
    'data': [
        'view.xml',
    ],
    # data files containing optionally loaded demonstration data
    'demo': [
        'demo_data.xml',
    ],
}

Unter data werden die angesprochenen views eingetragen und unter depends die Abhängigkeiten.