Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03266.jsonl.gz/646

Webseiten erstellen
Erstellen eines Basismoduls
In Odoo werden Aufgaben durch die Erstellung von Modulen ausgeführt.
Module passen das Verhalten einer Odoo-Installation an, indem sie entweder neue Verhaltensweisen hinzufügen oder bestehende ändern (einschließlich der Verhaltensweisen, die von anderen Modulen hinzugefügt wurden).
Das Gerüst von Odoo kann ein Basismodul einrichten. Für einen schnellen Start genügt ein einfacher Aufruf:
$ ./odoo-bin Gerüst Academy my-modules
Dadurch wird automatisch ein my-modules-Modulverzeichnis mit einem darin enthaltenen Akademie-Modul erstellt. Das Verzeichnis kann ein bestehendes Modulverzeichnis sein, wenn Sie möchten, aber der Modulname muss innerhalb des Verzeichnisses eindeutig sein.
Ein Demonstrationsmodul
Wir haben ein "komplettes" Modul zur Installation bereit.
Obwohl es absolut nichts tut, können wir es installieren:
- den Odoo-Server starten
$ ./odoo-bin --addons-pfad-addons-addons,my-modules
- gehen Sie zu http://localhost:8069
- eine neue Datenbank mit Demonstrationsdaten erstellen
- zu den Einstellungen ‣ Module ‣ Module
- in der rechten oberen Ecke entfernen Sie den installierten Filter und suchen Sie nach academy
- Klicken Sie auf die Schaltfläche Installieren für das Akademie-Modul
Vorlagen
Das Generieren von HTML in Python ist nicht sehr angenehm.
Die übliche Lösung sind Templates, Pseudo-Dokumente mit Platzhaltern und Anzeigelogik. Odoo erlaubt jedes Python-Templating-System, stellt aber ein eigenes QWeb-Templating-System zur Verfügung, das sich mit anderen Funktionen integrieren lässt. Erstellen Sie eine Vorlage und stellen Sie sicher, dass die Vorlagendatei im Manifest __manifest__.py registriert ist, und ändern Sie den Controller so, dass er unsere Vorlage verwendet.
Speichern von Daten in Odoo
Odoo-Modelle werden auf Datenbanktabellen abgebildet.
Im vorigen Abschnitt haben wir gerade eine Liste von Zeichenketten angezeigt, die statisch in den Python-Code eingegeben wurden. Dies erlaubt keine Änderungen oder persistente Speicherung, so dass wir unsere Daten nun in die Datenbank verschieben.
Warnung
der Administrator-Benutzer die Zugriffskontrolle umgeht, hat er Zugriff auf alle Modelle, auch wenn ihm kein Zugriff gewährt wird
Daten zur Demonstration
Der zweite Schritt besteht darin, dem System einige Demonstrationsdaten hinzuzufügen, damit es leicht getestet werden kann. Dies geschieht durch Hinzufügen einer Demo-Datendatei, die vom Manifest aus verlinkt werden muss:
Datendateien können für Demo- und Nicht-Demodemodaten verwendet werden. Demo-Daten werden nur im "Demonstrationsmodus" geladen und können für Flusstests und Demonstrationen verwendet werden, Nicht-Demo-Daten werden immer geladen und als anfängliche Systemeinrichtung verwendet.
In diesem Fall verwenden wir Demonstrationsdaten, weil ein tatsächlicher Benutzer des Systems seine eigene Lehrerliste eingeben oder importieren möchte; diese Liste ist nur zum Testen nützlich.
Zugriff auf die Daten
Der letzte Schritt besteht darin, Modell und Vorlage so zu ändern, dass unsere Demonstrationsdaten verwendet werden können:
1. Holen Sie die Datensätze aus der Datenbank, anstatt eine statische Liste zu haben
2. Da search() einen Satz von Datensätzen zurückgibt, die dem Filter entsprechen ("alle Datensätze" hier), ändern Sie die Vorlage so, dass der Name jedes Lehrers gedruckt wird
Starten Sie den Server neu und aktualisieren Sie das Modul (um das Manifest und die Vorlagen zu aktualisieren und die Demo-Datei zu laden) und navigieren Sie dann zu http://localhost:8069/academy/academy/. Die Seite sollte etwas anders aussehen: den Namen sollte einfach eine Nummer vorangestellt werden (die Datenbank-Kennung für den Lehrer).
Unterstützung der Website
Odoo bündelt ein Modul, das der Erstellung von Websites gewidmet ist.
Bisher haben wir Controller ziemlich direkt verwendet, aber Odoo 8 hat eine tiefere Integration und einige andere Dienste (z.B. Standard-Styling, Themes) über das Website-Modul hinzugefügt.
1. erstens, Website als Abhängigkeit zur Akademie hinzufügen
2. fügen Sie dann das Flag website=True auf dem Controller hinzu, dies richtet einige neue Variablen auf dem Anfrageobjekt ein und ermöglicht die Verwendung des Website-Layouts in unserer Vorlage
3. das Website-Layout in der Vorlage verwenden
Das Website-Layout bietet auch Unterstützung für Bearbeitungstools: Klicken Sie auf Anmelden (oben rechts), geben Sie die Anmeldedaten ein (standardmäßig admin / admin) und klicken Sie dann auf Anmelden.
Sie befinden sich nun in Odoo "richtig": die administrative Schnittstelle. Klicken Sie vorerst auf den Menüpunkt Website (oben links).
Wir sind wieder auf der Website, aber als Administrator, mit Zugriff auf erweiterte Bearbeitungsfunktionen, die vom Website-Support zur Verfügung gestellt werden:
- einen Vorlagencode-Editor (HTML-Editor ‣ anpassen), in dem Sie alle für die aktuelle Seite verwendeten Vorlagen sehen und bearbeiten können
- die Schaltfläche "Bearbeiten" oben links wechselt in den "Bearbeitungsmodus", in dem Blöcke (Snippets) und Rich-Text-Bearbeitung verfügbar sind
- eine Reihe anderer Funktionen wie mobile Vorschau oder SEO
URLs und Weiterleitung
Controller-Methoden sind mit Routen über den route()-Dekorator verbunden, der einen Routing-String und eine Reihe von Attributen benötigt, um sein Verhalten oder seine Sicherheit anzupassen.
Wir haben einen "wörtlichen" Routing-String gesehen, der exakt einem URL-Abschnitt entspricht, aber Routing-Strings können auch Konverter-Muster verwenden, die Bits von URLs entsprechen und diese als lokale Variablen verfügbar machen. Wir können zum Beispiel eine neue Controller-Methode erstellen, die ein Bit einer URL nimmt und ausgibt:
Starten Sie Odoo neu und aktualisieren Sie das Modul, dann können Sie die Seite jedes Lehrers besuchen. Versuchen Sie als Übung, Blöcke zu einer Lehrerseite hinzuzufügen, um eine Biographie zu schreiben, dann gehen Sie zu einer anderen Lehrerseite und so weiter. Sie werden feststellen, dass Ihre Biographie von allen LehrerInnen gemeinsam genutzt wird, da Blöcke zur Vorlage hinzugefügt werden, und die Biographie-Vorlage von allen LehrerInnen gemeinsam genutzt wird, wenn eine Seite bearbeitet wird, werden sie alle gleichzeitig bearbeitet.
Feldbearbeitung
Daten, die spezifisch für einen Datensatz sind, sollten in diesem Datensatz gespeichert werden, also lassen Sie uns unseren Lehrern ein neues Biographie-Feld hinzufügen:
Für Datensatzfelder können Vorlagen eine spezielle T-Feld-Richtlinie verwenden, die es erlaubt, den Feldinhalt von der Website aus über feldspezifische Schnittstellen zu bearbeiten. Ändern Sie die Personenvorlage, um t-field zu verwenden:
Starten Sie Odoo neu und aktualisieren Sie das Modul, es gibt jetzt einen Platzhalter unter dem Namen des Lehrers und eine neue Zone für Blöcke im Bearbeitungsmodus. Inhalte, die dort abgelegt werden, werden im entsprechenden Feld für die Biografie des Lehrers gespeichert und sind somit spezifisch für diesen Lehrer.
Der Name des Lehrers ist ebenfalls editierbar, und beim Speichern ist die Änderung auf der Indexseite sichtbar. Das t-Feld kann auch Formatierungsoptionen aufnehmen, die vom genauen Feld abhängen. Wenn wir zum Beispiel das Änderungsdatum für den Datensatz eines Lehrers anzeigen