A)

Action-Manager

Der Action-Manager kann explizit von Javascript-Code aus aufgerufen werden, indem ein Wörterbuch erstellt wird, das eine Aktion des richtigen Typs beschreibt, und eine Action-Manager-Instanz damit aufgerufen wird.do_action() ist eine Abkürzung von Widget(), die den "aktuellen" Action-Manager nachschlägt und die Aktion ausführt:views to a model (zeigt ein Modell auf verschiedene Arten an), seine häufigsten Attribute sind:

res_model
Das Modell, das in Ansichten angezeigt werden soll

res_id (optional)
Für Formularansichten, ein vorgewählter Datensatz in res_model

Views
Listet die über die Aktion verfügbaren Ansichten auf. Eine Liste von [view_id, view_type], view_id kann entweder der Datenbankbezeichner einer Ansicht des richtigen Typs sein oder false, um die Ansicht standardmäßig für den angegebenen Typ zu verwenden. Ansichtstypen können nicht mehrfach vorhanden sein. Die Aktion öffnet standardmäßig die erste Ansicht der Liste. 

Target
Either current (der Standard), der den "content"-Abschnitt des Web-Clients durch die Aktion ersetzt, oder new, um die Aktion in einem Dialogfeld zu öffnen.

Context
Zusätzliche Kontextdaten zur Verwendung innerhalb der Aktion.

Actionmanager - Webkomponenten

In Odoo beginnen viele Operationen mit einer Aktion: Öffnen eines Menüpunkts (zu einer Ansicht), Drucken eines Berichts, ...Aktionen sind Daten, die beschreiben, wie ein Client auf die Aktivierung eines Inhalts reagieren soll. Aktionen können gespeichert (und über ein Modell ausgelesen) oder on-the-fly generiert werden (lokal auf dem Client durch Javascript-Code oder remote durch eine Methode eines Modells).In Odoo Web ist die Komponente, die für die Handhabung und Reaktion auf diese Aktionen verantwortlich ist, der Action Manager.

Abfragen

Während call() für jede Interaktion mit Odoo-Modellen ausreicht, bietet Odoo Web einen Helfer für einfachere und übersichtlichere Abfragen von Modellen (Abrufen von Datensätzen basierend auf verschiedenen Bedingungen): query(), das als Abkürzung für die übliche Kombination von search() und :read() dient. Sie bietet eine klarere Syntax zum Suchen und Lesen von Modellen:

Query() nimmt eine optionale Liste von Feldern als Parameter (wenn kein Feld angegeben wird, werden alle Felder des Modells geholt). Sie gibt eine odoo.web.Query() zurück, die vor der Ausführung weiter angepasst werden kann.

Query() stellt die zu erstellende Abfrage dar. Sie ist unveränderlich, Methoden zum Anpassen der Abfrage geben tatsächlich eine geänderte Kopie zurück, so dass es möglich ist, das Original und die neue Version nebeneinander zu verwenden. Siehe Query() für seine Anpassungsoptionen.

Wenn die Abfrage wie gewünscht eingerichtet ist, rufen Sie einfach all() auf, um sie auszuführen und ein deferred auf ihr Ergebnis zurückzugeben. Das Ergebnis ist das gleiche wie das von read(), ein Array von Dictionaries, wobei jedes Dictionary ein angeforderter Datensatz ist, mit jedem angeforderten Feld als Dictionary-Schlüssel.

Abhängigkeiten

Der Wert eines berechneten Feldes hängt normalerweise von den Werten anderer Felder des berechneten Datensatzes ab. Das ORM erwartet vom Entwickler, dass er diese Abhängigkeiten von der Berechnungsmethode mit dem Dekorator depends() angibt. Die angegebenen Abhängigkeiten werden vom ORM verwendet, um die Neuberechnung des Feldes auszulösen, wenn einige seiner Abhängigkeiten geändert wurden.

Administration von odoo - Verwaltung und ERP-Integration

Eine kurze und unvollständige Einführung in die Odoo-Administration

Die Odoo-Administration wurde kurz während der Website-Unterstützung gesehen. Wir können sie über Administrator ‣ Administrator im Menü aufrufen (oder Anmelden, wenn Sie abgemeldet sind).

Die konzeptionelle Struktur des Odoo-Backends ist einfach:

1. Zunächst gibt es Menüs, einen Baum (Menüs können Untermenüs haben) von Datensätzen. Menüs ohne Kinder führen zu...

2. Aktionen. Aktionen haben verschiedene Typen: Links, Berichte, Code, den Odoo ausführen soll, oder Datenanzeige. Datenanzeige-Aktionen werden als Fenster-Aktionen bezeichnet und weisen Odoo an, ein bestimmtes Modell entsprechend einer Reihe von Ansichten anzuzeigen...

3. Eine Ansicht hat einen Typ, eine breite Kategorie, der sie entspricht (eine Liste, ein Diagramm, einen Kalender) und eine Architektur, die die Art und Weise, wie das Modell innerhalb der Ansicht angezeigt wird, anpasst.

Bearbeitung in der Odoo-Verwaltung

Standardmäßig ist ein Odoo-Modell für einen Benutzer im Wesentlichen unsichtbar. Um es sichtbar zu machen, muss es über eine Aktion verfügbar sein, die ihrerseits erreichbar sein muss, in der Regel über ein Menü.

Administration und ERP-Integration

Eine kurze und unvollständige Einführung in die Odoo-Administration. Die Odoo-Administration wurde im Support-Bereich der Website kurz vorgestellt. Wir können sie über Administrator ‣ Administrator im Menü (oder Anmelden, wenn Sie abgemeldet sind) wieder aufrufen. Die konzeptionelle Struktur des Odoo-Backends ist einfach: Zunächst gibt es Menüs, einen Baum (Menüs können Untermenüs haben) von Datensätzen. Menüs ohne Kinder verweisen auf...Aktionen. Aktionen haben verschiedene Typen: Links, Berichte, Code, den Odoo ausführen oder Daten anzeigen soll. Datenanzeige-Aktionen werden als Fenster-Aktionen bezeichnet und weisen Odoo an, ein bestimmtes Modell entsprechend einer Reihe von Ansichten anzuzeigen...eine Ansicht hat einen Typ, eine breite Kategorie, der sie entspricht (eine Liste, ein Diagramm, einen Kalender) und eine Architektur, die die Art und Weise, wie das Modell innerhalb der Ansicht angezeigt wird, anpasst...Editieren in der Odoo-VerwaltungIn der Standardeinstellung ist ein Odoo-Modell für einen Benutzer im wesentlichen unsichtbar. Um es sichtbar zu machen, muss es über eine Aktion verfügbar sein, die ihrerseits erreichbar sein muss, im Allgemeinen über ein Menü.

Aufbau eines Moduls

Start/Stop des Odoo server

Odoo verwendet eine Client/Server-Architektur, bei der die Clients Webbrowser sind, die über RPC auf den Odoo-Server zugreifen. Die Geschäftslogik und die Erweiterung erfolgt im Allgemeinen auf der Serverseite, obwohl sie Client-Funktionen unterstützt (e. Um den Server zu starten, rufen Sie einfach den Befehl odoo-bin in der Shell auf und fügen bei Bedarf den vollständigen Pfad zur Datei hinzu:odoo-bin Der Server wird durch zweimaliges Drücken von Strg-C vom Terminal aus oder durch Beenden des entsprechenden Betriebssystemprozesses gestoppt.

Ansichten - Änderung bestehender Ansichten

Wir bleiben bei der Änderung bestehender Datensätze und der Änderung bestehender Ansichten. Die Änderung der Ansichten erfolgt durch die Erstellung von Erweiterungsansichten, die auf die ursprüngliche Ansicht angewendet werden und diese ändern. Da unsere Kurse kostenlos sind, gibt es keinen Grund, ihren Preis auf der Shop-Seite anzuzeigen, daher werden wir die Ansicht ändern und den Preis ausblenden, wenn er 0 ist. Die erste Aufgabe besteht darin, herauszufinden, in welcher Ansicht der Preis angezeigt wird; dies kann über den HTML-Editor Anpassen ‣ erfolgen, mit dem wir die verschiedenen Vorlagen lesen können, die für die Darstellung einer Seite erforderlich sind. Die Änderung der View-Architekturen erfolgt in 3 Schritten: Erstellen eines neuen Views. Erweitern Sie den zu ändernden View, indem Sie die inherit_id des neuen Views auf die externe id des geänderten Views setzen. In der Architektur verwenden Sie das xpath-Tag, um Elemente aus dem geänderten View auszuwählen und zu ändern. Das zweite, was wir ändern werden, ist die standardmäßige Sichtbarmachung der Seitenleiste der Produktkategorien: Mit ‣ Produktkategorien können Sie einen Baum von Produktkategorien (der zum Filtern der Hauptanzeige verwendet wird) ein- und ausschalten. Dies geschieht über die customize_show und die aktiven Felder von Erweiterungsvorlagen: eine Erweiterungsvorlage (wie die, die wir gerade erstellt haben) kann customize_show=True sein. Bei dieser Wahl wird die Ansicht im Menü Customize mit einem Kontrollkästchen angezeigt, so dass Administratoren sie aktivieren oder deaktivieren können (und ihre Webseiten leicht anpassen können). Wir müssen lediglich den Datensatz Produktkategorien ändern und seine Voreinstellung auf active="True" setzen: Damit wird die Produktkategorien-Seitenleiste automatisch aktiviert, wenn das Akademie-Modul installiert wird.

Ansichten in odoo

Die meisten Odoo-Ansichten werden über eine Unterklasse von odoo.web.View() implementiert, die eine gewisse generische Grundstruktur für die Behandlung von Ereignissen und die Anzeige von Modellinformationen bietet.

Die Suchansicht wird vom Odoo-Framework als ein Ansichtstyp betrachtet, aber vom Web-Client separat behandelt (da sie eine dauerhaftere Einrichtung ist und mit anderen Ansichten interagieren kann, was bei normalen Ansichten nicht der Fall ist).

Eine Ansicht ist für das Laden ihrer eigenen Beschreibungs-XML (mit fields_view_get) und jeder anderen benötigten Datenquelle verantwortlich. Zu diesem Zweck werden Ansichten mit einer optionalen Ansichtskennung versehen, die als view_id-Attribut festgelegt wird. Ansichten werden auch mit einer DataSet()-Instanz versehen, die die meisten notwendigen Modellinformationen enthält (den Modellnamen und möglicherweise verschiedene Datensatz-IDs). Ansichten können auch Suchabfragen behandeln, indem sie do_search() überschreiben und ihr DataSet() bei Bedarf aktualisieren.

Architektur der Ansichten
Ein Großteil des Nutzens (und der Komplexität) von Odoo Web liegt in den Ansichten. Jeder Ansichtstyp ist eine Möglichkeit, ein Modell im Client darzustellen.

Ansichtsmanager

Wenn eine ActionManager-Instanz eine Aktion vom Typ ir.actions.act_window empfängt, delegiert sie die Synchronisierung und Handhabung der Ansichten selbst an einen Ansichtsmanager, der dann je nach den Anforderungen der ursprünglichen Aktion eine oder mehrere Ansichten einrichtet.