K)

Kanban-Ansicht

Wird verwendet, um Aufgaben, Produktionsprozesse usw. zu organisieren... ihr Wurzelelement ist <Kanban>. Eine Kanban-Ansicht zeigt eine Reihe von Karten, die möglicherweise in Spalten gruppiert sind. Jede Karte stellt einen Datensatz dar, und jede Spalte die Werte eines Aggregationsfeldes.z.B. können Projektaufgaben nach Stufe (jede Spalte ist eine Stufe) oder nach Verantwortlichem (jede Spalte ist ein Benutzer) usw. organisiert sein. Kanban-Ansichten definieren die Struktur jeder Karte als eine Mischung aus Formularelementen (einschließlich grundlegendem HTML) und QWeb.

Klassen

Im Gegensatz zu den meisten objektorientierten Sprachen wird Javascript im Gegensatz zu Modulen nicht in Klassen1 eingebaut, obwohl es ungefähr gleichwertige (wenn auch weniger umfangreiche und ausführlichere) Mechanismen bereitstellt. odoo.web bietet der Einfachheit und Entwicklerfreundlichkeit halber ein Klassensystem an, das auf John Resigs Simple JavaScript Inheritance basiert. neue Klassen werden durch den Aufruf der extend()-Methode von odoo.web. Class() definiert: Die extend()-Methode nimmt ein Wörterbuch, das den Inhalt der neuen Klasse beschreibt (Methoden und statische Attribute). Wenn Sie eine Methode durch Vererbung überschreiben, können Sie this._super() verwenden, um die ursprüngliche Methode aufzurufen:_super ist keine Standardmethode, sondern wird on-the-fly auf die nächste Methode in der aktuellen Vererbungskette gesetzt, falls vorhanden. Sie wird nur während des synchronen Teils eines Methodenaufrufs definiert, für die Verwendung in asynchronen Handlern (nach Netzwerkaufrufen oder in setTimeout-Callbacks) sollte eine Referenz auf ihren Wert beibehalten werden, auf sie sollte nicht über diese zugegriffen werden.

Klassensystem  - Vorhandene Widgets und Klassen modifizieren

Das Klassensystem des Odoo-Webframeworks erlaubt die direkte Modifikation bestehender Klassen mit Hilfe der include()-Methode: Dieses System ähnelt dem Vererbungsmechanismus, mit dem Unterschied, dass es die Zielklasse an Ort und Stelle verändert, anstatt eine neue Klasse zu erstellen. this._super() ruft in diesem Fall die ursprüngliche Implementierung einer Methode auf, die ersetzt/neu definiert wird. Wenn die Klasse bereits Unterklassen hatte, rufen alle Aufrufe von this._super() in den Unterklassen die neuen Implementierungen auf, die durch den Aufruf von include() definiert wurden. Dies funktioniert auch, wenn einige Instanzen der Klasse (oder einer ihrer Unterklassen) vor dem Aufruf von include() erstellt wurden.

Kontaktaufnahme mit Modellen 

Die meisten Operationen mit Odoo beinhalten die Kommunikation mit Modellen, die geschäftliche Belange implementieren. Diese Modelle interagieren dann (möglicherweise) mit einer Speicher-Engine (normalerweise PostgreSQL). Obwohl jQuery eine $.ajax-Funktion für Netzwerkinteraktionen bietet, erfordert die Kommunikation mit Odoo zusätzliche Metadaten, deren Einrichtung vor jedem Aufruf langwierig und fehleranfällig wäre. Daher stellt Odoo web Kommunikationsprimitive auf höherer Ebene zur Verfügung.Die Klasse, die zum Aufruf von Odoo-Modellen verwendet wird, ist odoo.Model(). Sie wird mit dem Namen des Odoo-Modells als erstem Parameter instanziiert (hier oepetstore.message_of_the_day).call() kann verwendet werden, um jede (öffentliche) Methode eines Odoo-Modells aufzurufen. Sie nimmt die folgenden Positionsargumente entgegen:nameDer Name der aufzurufenden Methode, hier my_methodargsein Array von Positionsargumenten, die der Methode übergeben werden. Da im Beispiel kein Positionsargument übergeben werden muss, wird der Parameter args nicht übergeben.