Entwicklung

Odoo mühelos anpassen und erweitern.

Bereiche

BereichBeschreibung
Entwicklung AktionenEigene Odoo Aktionen erstellen.
Entwicklung AnsichtenOdoo Ansichten anpassen.
Entwicklung BerichteEigene Berichte mit QWeb erstellen.
Entwicklung RunbotOdoo Entwicklungsumgebungen.
Entwicklung SnippetsEinfache Anpassungen mit den Mint System Snippets umsetzen.
Entwicklung WebsiteWebsite-Templates anpassen und erweitern.

Erweiterungen

ErweiterungBeschreibung
BI SQL EditorGanz einfach SQL-basierte Berichte erstellen.
Mass EditingMühelos mehrere Einträge auf einmal bearbeiten.
Mass Operation AbstractBietet Werkzeuge zur Massenbearbeitung.
MuK RESTStellt eine REST API für den Odoo Server bereit.
Onchange HelperVereinfacht den Aufruf von Onchange-Methoden im Python Code.
Project timelineTimeline-Ansicht für Projektaufgaben.
Prometheus ExporterOdoo-Metriken mit Prometheus monitoren.
Report XLSXKlasse zur Etnwicklung von XLSX-Berichten.
Server Environment Ir Config ParameterSystemparameter aus Umgebungsvariablen laden.
Server EnvironmentSystemkonfigurationen aus Umgebungsvariablen laden.
Web Domain FieldDynamische Definitionen für Domain-Attribute auf Felder generieren.
Web Environment RibbonOdoo Umgebung mit Banner markieren.
Web TimelineDie Timeline-Ansicht für alle Objekte.

Konfiguration

Systemparameter anlegen

Öffnen Sie Einstellungen > Technisch > Parameter > Systemparameter und erstellen einen Eintrag mit Schlüssel und Wert.

Developer API Key generieren

Damit Software von Dritten Zugriff auf die Daten von Odoo hat, ohne dass dabei das Passwort eines Benutzers geteilt werden muss, kann man einen Zugriffsschlüssel bereitstellen.

Öffenen Sie die Sicherheitseinstellungen des eingeloggten Benutzers Menüleiste > Mein Profil > Tab Acccount Security und klicken auf New API Key.

Verwendung

Demo-Daten neu laden

Navigieren Sie nach Einstellungen > Entwicklertools und klicken Sie auf Demo Daten laden um die Daten in die aktuelle Datenbank zu laden.

Odoo Revision anzeigen

Rufen Sie die Einstellungen auf und scrollen Sie auf der Ansicht nach ganz unten. Beim Abschnitt Über finden Sie Angaben zur Odoo Revision.

Im Entwicklermodus navigieren Sie nach Einstellungen > Technisch > Benutzer-Interface > Menüposten. Erstellen Sie einen Filter Obermenü mit dem Wert ist nicht gesetzt. Nun können Sie die Menüposten mit dem Handler in der Liste anordnen.

Im Entwicklermodus können Sie ganz einfach Menüposten umbennen. Angenommen Sie möchten diesen Punkt umbennen:

Gehen Sie wie folgt vor. Navigieren Sie nach Einstellungen > Technisch > Benutzer-Interface > Menüposten und suchen Sie nach Alle Angestellte. Bearbeiten Sie den Eintrag und setzen Sie für das Feld Menü einen neuen Wert.

Nachdem Sie den Browser-Tab aktualisiert haben, ist der Menüposten umbenannt.

Öffnen Sie Einstellungen > Technisch > Benutzer-Interface > Menüposten und wählen Sie Neu.

Öffnen Sie Einstellungen > Technisch > Benutzer-Interface > Menüposten und wählen Sie ein bestehenden Menüposten aus. Bearbeiten Sie die Sichtbarkeit des Menüs im Tab Zugriffsrechte oder steuern Sie die Reihenfolge der Untermenüs im Tab Untermenüs.

::: Bei einer Aktualisierung der Odoo App werden die verlinkten Menüposten zurückgesetzt. :::

Öffnen Sie Einstellungen > Technisch > Benutzer-Interface > Menüposten und suchen Sie den entsprechende Menüposten. Markieren Sie diesen und wählen Sie Aktion > Löschen oder Aktion > Archiv.

WARNING

Diese Vorgang kann die Integrität und Verüfgbarkeit des Systems beeiträchitgen. Führen Sie die Aktion nur aus, wenn Sie sich den möglichen Auswirkungen bewusst sind.

Datenmodelle

Datenmodell anzeigen

Öffnen Sie Einstellungen > Technisch > Datenbankstruktur > Modelle und suchen Sie das entsprechende Datenmodell.

Datenmodell entfernen

Öffnen Sie Einstellungen > Technisch > Datenbankstruktur > Modelle und suchen Sie das entsprechende Datenmodell. Markieren Sie dieses und wählen Sie Aktion > Löschen.

WARNING

Diese Vorgang kann die Integrität und Verfügbarkeit des Systems beeinträchtigen. Führen Sie die Aktion nur aus, wenn Sie sich den möglichen Auswirkungen bewusst sind.

Metadaten anzeigen

Für jedes Geschäftsobjekt können Sie in der Einzelansicht die Metadaten anzeigen. Rufen Sie ein Odoo-Objekt im Entwicklermodus auf, beispielsweise einen Benutzer und klicken Sie auf Entwicklertools > Metadaten anzeigen.

Externe ID anzeigen

Odoo speichert alle externen IDs in einer Tabelle. Öffnen Sie Einstellungen > Technisch > Sequenzen- und Identifizierungsmerkmale > Externe Identifikationen. Suchen Sie nach einer externen ID anhand des Schlüssels.

Externe ID erfassen

Zeigen Sie einen beliebigen Datensatz in der Formularansicht an. Als Beispiel verwenden wir eine Ansicht. Entnehmen Sie anhand der Url die ID und das Datenmodell.

/web#id=1639&action=28&model=ir.ui.view&view_type=form&cids=1&menu_id=4

Navigieren Sie nun nach Einstellungen > Technisch > Sequenzen- und Identifizierungsmerkmale > Externe Identifikationen und legen Sie einen Eintrag an:

  • Modul: Technischer Name des Odoo-Moduls
  • Externe Identifikation: Eindeutiger Bezeichner
  • Modellname: Angabe Gemäss Url
  • Datensatz-ID: Angabe Gemäss Url

Dazu die Angaben aus dem Beispiel:

Ist die Externe Identifikation gespeichert, wird Sie auf Datensatz angezeigt.

Externe ID aus Metadaten erfassen

Ab #Odoo16 können Sie Metadaten anzeigen und direkt eine externe ID erfassen. Wählen Sie dazu die Aktion create auf der Ansicht der Metadaten. Der Modellname und die Datensatz-ID werden übernommen.

Neues Feld hinzufügen

An jedem Objekt kann an einfach ein Feld hinzugefügt werden. Öffnen Sie eine Ansicht im Entwicklermodus und wählen Sie Entwicklertools > Felder anzeigen. Wählen Sie + Anlegen und geben Sie folgende Informationen ein:

  • Feldname: Beginnt mit x_ und darf keine Leerschläge enthalten und sollte kleingeschrieben und auf Englisch sein.
  • Feldbezeichnung: Passender Name in der angezeigten Sprache.
  • Typfeld-Text: Auswahls den Felddatentyps.

Dazu ein Beispiel mit HR Holidays:

Neues berechnetes Feld hinzufügen

Wir nehmen an, dass Sie auf der Lagerbechnung ein berechnetes Feld benötigen. Dieses Feld soll die Anzahl Kisten berechnen, die es braucht um das Produkt zu verpacken. Immer wenn die Erledigte Menge ändert, soll das Feld berechnet werden.

Erstellen Sie ein neues Feld unter Einstellungen > Technisch > Datenbankstruktur > Felder mit diesen Attributen:

  • Feldname: x_count_boxes
  • Feldbezeichnung: Anzahl Kisten
  • Modell: Lagerbuchung (technischer Name ist stock.move)
  • Typfeld-Text: Ganzzahl
  • Basiseigenschaften:
    • Nur Lesen
    • Gespeichert
  • Abhängigkeiten: quantity_done
  • Berechnen:
for rec in self:
	if rec.product_packaging:
		if rec.product_packaging.name == "Schale":
			rec['x_count_boxes'] = (rec.quantity_done + 2.4)/2.5
		if rec.product_packaging.name == "Kiste":
			rec['x_count_boxes'] = (rec.quantity_done + 9)/10

Dieser Code berechnet abhängig von der gewählten Verpackung und deren Füllmenge die Anzahl Kisten. Mit Python-Code können Sie natürlich jegliche Logik für die Berechnung entwickeln.

Neues Beziehungs-Feld hinzufügen

Wir nehmen an, dass Sie auf der Auftragsposition ein Beziehungs-Feld benötigen. Dieses Feld soll die Kundenreferenz auf dem zugehörigen Verkaufsauftrag anzeigen.

Erstellen Sie ein neues Feld unter Einstellungen > Technisch > Datenbankstruktur > Felder mit diesen Attributen:

  • Feldname: x_client_order_ref
  • Feldbezeichnung: Kundenreferenz
  • Modell: Auftragsposition (technischer Name ist sale.order.line)
  • Typfeld-Text: Text
  • Basiseigenschaften:
    • Nur Lesen
    • Gespeichert
  • Beziehungs-Feld: order_id.client_order_ref

Dieses Feld können Sie nun in Berichten oder Listenansichten anzeigen.

Datenmodell für Webfomulare freischalten

Navigieren Sie nach Einstellungen > Technisch > Modelle und zeigen Sie das Datenmodell an, welche Sie für Webformulare freischalten möchten. Im Tab Webformulare aktivieren Sie die Option Nutzbar in Formularen. Geben Sie eine passe Bezeichnung im Feld Bezeichnung für die Formularaktion ein und schränken die verfügbaren Felder mit Feld für benutzerdefinierte Formulardaten ein.

Berechtigungen

Zugriff auf Feld einschränken

Sie können den Zugriff für benutzerdefinierte Felder einschränken. Dazu müssen Sie ein Snippet hinzufügen, welches auf der ausgewählten Ansicht auf dem Feld das Attribut groups festlegt. Als Wert geben Sie die externe ID der Benutzergruppe an, welche Zugriff haben soll. Dazu ein Beispiel:

<?xml version="1.0"?>
<data inherit_id="hr_holidays.hr_leave_view_tree">

  <xpath expr="//field[@name='state']" position="after">
    <field name="x_synced" widget="toggle_button" groups="hr.group_hr_user"/>
  </xpath>

</data>

📝 Edit on GitHubopen in new window