E)

 

Eigenschaften

Eigenschaften sind normalen Objektattributen sehr ähnlich, da sie das Speichern von Daten auf einer Widget-Instanz ermöglichen. Sie haben jedoch die zusätzliche Eigenschaft, dass sie Ereignisse auslösen, wenn sie gesetzt werden:- set() setzt den Wert einer Eigenschaft und löst change:propname aus (wobei propname der als erster Parameter an set() übergebene Eigenschaftsname ist) und change-get() ruft den Wert einer Eigenschaft ab.Widget-Eigenschaften und EreignisseErstellen Sie ein Widget ColorInputWidget, das 3 <Eingabefelder type="text"> anzeigt. Jeder dieser <Eingabe> ist für die Eingabe einer hexadezimalen Zahl von 00 bis FF vorgesehen. Wenn einer dieser <Eingabe> vom Benutzer geändert wird, muss das Widget den Inhalt der drei <Eingabe> abfragen, ihre Werte verketten, um einen vollständigen CSS-Farbcode (z. B. #00FF00) zu erhalten, und das Ergebnis in eine Eigenschaft namens color stellen. Bitte beachten Sie, dass das jQuery change()-Ereignis, das Sie an jedes HTML <input>-Element binden können, und die val()-Methode, die den aktuellen Wert dieses <input> abfragen kann, für diese Übung nützlich sein könnten.Ändern Sie dann das HomePage-Widget, um ColorInputWidget zu instanziieren und anzuzeigen. Das HomePage-Widget sollte außerdem ein leeres Rechteck anzeigen. Dieses Rechteck muss zu jedem Zeitpunkt die gleiche Hintergrundfarbe haben wie die Farbe in der Eigenschaft color der ColorInputWidget-Instanz. Verwenden Sie QWeb, um das gesamte HTML zu generieren.

Erstellen eines Odoo-Moduls

Beide Server- und Client-Erweiterungen werden als Module gepackt, die optional in eine Datenbank geladen werden.Odoo-Module können einem Odoo-System entweder brandneue Geschäftslogik hinzufügen oder bestehende Geschäftslogik ändern und erweitern: Ein Modul kann erstellt werden, um die generische Buchhaltungsunterstützung von Odoo um die Buchhaltungsregeln Ihres Landes zu erweitern, während das nächste Modul die Unterstützung für die Echtzeit-Visualisierung einer Busflotte hinzufügt.Alles in Odoo beginnt und endet also mit Modulen.

Erweiterte Ansichten

Baumansichten können mit zusätzlichen Attributen versehen werden, um ihr Verhalten weiter anzupassen. Für jeden Datensatz wird der Ausdruck mit den Attributen des Datensatzes als Kontextwerte ausgewertet, und wenn er wahr ist, wird der entsprechende Stil auf die Zeile angewendet. Andere Kontextwerte sind uid (die Id des aktuellen Benutzers) und current_date (das aktuelle Datum als Zeichenkette der Form yyyyy-MM-dd).macht die Baumansicht an Ort und Stelle editierbar (anstatt durch die Formularansicht gehen zu müssen), der Wert ist die Position, an der neue Zeilen erscheinen.

 

Externe Schnittstellen

Odoo wird in der Regel intern über Module erweitert, aber viele seiner Funktionen und alle seine Daten stehen auch von außen zur externen Analyse oder zur Integration mit verschiedenen Tools zur Verfügung. Ein Teil der Modell-API ist leicht über XML-RPC verfügbar und aus einer Vielzahl von Sprachen zugänglich.

Für Odoo Online-Instanzen (<domain>.odoo.com) werden Benutzer ohne lokales Passwort angelegt (als Person, die über das Odoo Online-Authentifizierungssystem angemeldet ist, nicht durch die Instanz selbst). Um XML-RPC auf Odoo-Online-Instanzen zu verwenden, müssen Sie ein Passwort für das gewünschte Benutzerkonto festlegen:- Melden Sie Ihre Instanz mit einem Administratorkonto an- Gehen Sie zu Einstellungen ‣ Benutzer ‣ Benutzer- Klicken Sie auf den Benutzer, den Sie für den XML-RPC-Zugriff verwenden möchten- Klicken Sie auf die Schaltfläche Passwort ändern- Legen Sie einen neuen Passwortwert fest und klicken Sie dann auf Passwort ändern.Die Server-URL ist die Domäne der Instanz (z.B. https://mycompany.odoo.com), der Datenbankname ist der Name der Instanz (z.B. mycompany). Der Benutzername ist der Login des konfigurierten Benutzers, wie er auf dem Bildschirm Passwort ändern angezeigt wird (Python 3- Ruby- PHP- Java).

Login

Die Protokollierung in Odoo erfordert, dass Benutzer der API authentifiziert werden, bevor sie die meisten Daten abfragen können.xmlrpc/2/common Endpunkt bietet Meta-Calls, die keine Authentifizierung erfordern, wie z.B. die Authentifizierung selbst oder das Abrufen von Versionsinformationen. Um zu überprüfen, ob die Verbindungsinformationen korrekt sind, bevor versucht wird, sich zu authentifizieren, besteht der einfachste Aufruf darin, nach der Version des Servers zu fragen. Die Authentifizierung selbst erfolgt über die Funktion authenticate und gibt eine Benutzerkennung (uid) zurück, die in authentifizierten Aufrufen anstelle der login.calling methodsDer zweite Endpunkt ist xmlrpc/2/object, wird verwendet, um Methoden von odoo-Modellen über die RPC-Funktion execute_kw aufzurufen. Jeder Aufruf von execute_kw nimmt die folgenden Parameter an: - die zu verwendende Datenbank, einen String- die Benutzer-ID (abgerufen durch Authentifizierung), eine Ganzzahl - das Passwort des Benutzers, einen String- den Modellnamen, einen String- den Methodennamen, einen String- ein Array/eine Liste von Parametern, die durch Position übergeben werden - eine Zuordnung/ein Diktat von Parametern, die durch Schlüsselwort übergeben werden (optional) zum Beispiel, um zu sehen, ob wir die res. Partnermodell können wir check_access_rights mit der Operation check_access_rights mit der Operation passed by position und raise_exception passed by keyword aufrufen (um ein wahr/falsch-Ergebnis statt true/error zu erhalten): Datensätze auflisten Datensätze können aufgelistet und gefiltert werden mittels search().search() nimmt einen obligatorischen Domänenfilter (möglicherweise leer) und gibt die Datenbankbezeichner aller Datensätze zurück, die dem Filter entsprechen.

Datensätze zählen

Anstatt eine möglicherweise gigantische Liste von Datensätzen abzurufen und diese zu zählen, kann search_count() verwendet werden, um nur die Anzahl der Datensätze abzurufen, die der Abfrage entsprechen. Dabei wird der gleiche Domänenfilter wie bei search() und kein weiterer Parameter verwendet.  

Datensätze lesen

Record-Daten sind über die read()-Methode zugänglich, die eine Liste von ids (wie von search() zurückgegeben) und optional eine Liste von Feldern zum Abrufen benötigt. Standardmäßig holt sie alle Felder, die der aktuelle Benutzer lesen kann, was in der Regel eine große Menge ist.

Datensätze erstellen

Datensätze eines Modells werden mit create() erstellt. Die Methode erstellt einen einzelnen Datensatz und gibt seinen Datenbankbezeichner zurück. create() nimmt eine Zuordnung von Feldern zu Werten vor, die zur Initialisierung des Datensatzes verwendet werden. Für jedes Feld, das einen Standardwert hat und nicht durch das Mapping-Argument festgelegt ist, wird der Standardwert verwendet. Warnung

Datensätze aktualisieren

Datensätze können mit write() aktualisiert werden, dazu ist eine Liste der zu aktualisierenden Datensätze und eine Zuordnung der aktualisierten Felder zu Werten ähnlich wie bei create() erforderlich.Mehrere Datensätze können gleichzeitig aktualisiert werden, aber sie erhalten alle die gleichen Werte für die gesetzten Felder. Es ist derzeit nicht möglich, "berechnete" Aktualisierungen durchzuführen (wobei der zu setzende Wert von einem bestehenden Wert eines Datensatzes abhängt).

Datensätze löschen

Records können in großen Mengen gelöscht werden, indem ihre IDs an unlink() übergeben werden.