Zum Inhalt springen

Das project.project Model: Odoo-Projektarchitektur verstehen

Der umfassende Leitfaden zum Projektmodell von Odoo für Entwickler und Berater
11. März 2026 durch
Das project.project Model: Odoo-Projektarchitektur verstehen
Dasolo
| Noch keine Kommentare

Einführung


In Odoo wird jede Geschäftsinformation – ob Angebot, Rechnung, Projekt oder Aufgabe – in einem Modell abgebildet. Modelle legen die Struktur der Datenbank fest: welche Felder ein Datensatz hat, wie Datensätze miteinander verknüpft sind und wie Geschäftsregeln angewendet werden. Das project.project‑Modell ist die zentrale Datenhülle für Projekte.


Für Entwickler und funktionale Berater ist das Verständnis von Odoo‑Modellen unverzichtbar. Modelle sind das Rückgrat der Odoo‑Architektur: sie definieren Felder, Relationen und Logik. Einmal verstanden, lassen sich Muster wie Felder, One2many/Many2one‑Beziehungen und Berechnungsfelder systematisch anwenden.


Dieser Beitrag konzentriert sich auf eines der wichtigsten Modelle in Odoo: project.project. Ob Sie ein Modul entwickeln, externe Systeme anbinden oder Projektprozesse konfigurieren — mit diesem Modell arbeiten Sie regelmäßig und sollten seine Rolle im System kennen.

Worum es beim Modell project.project geht


Das project.project‑Modell bildet ein einzelnes Projekt ab. Es bündelt Aufgaben, Meilensteine, Teamzuweisungen und Sichtbarkeitsregeln. Technisch ist jedes Projekt einfach ein Datensatz in dieser Modelltabelle mit all seinen Beziehungen und Einstellungen.


Das Modell wird von der Projekt‑App genutzt: Beim Anlegen eines Projekts entsteht ein project.project‑Datensatz, und Aufgaben verknüpfen sich über task_ids mit diesem Datensatz. Hier werden Standard‑Workflows, Teammitglieder und Zugriffsregeln definiert, die das Verhalten der zugehörigen Aufgaben steuern.


Das Basismodell liegt im Modul project; andere Module erweitern es per Modell‑Vererbung. Beispielsweise ergänzt Sale die rechnungsbezogenen Aspekte, Timesheet bringt Zeiterfassung und Projektplanung erweitert das Scheduling. So bleibt die Kernstruktur konsistent und Erweiterungen modular.


Das Zusammenspiel von project.project und project.task ist zentral: Das Projekt verwaltet gemeinsame Einstellungen und Teamstruktur, die Aufgaben repräsentieren einzelne Arbeitspakete. Beide zusammen bilden den Kern des Projektmanagements in Odoo.

Wichtige Felder im Modell


Im Folgenden sind die Felder aufgeführt, die im Alltag den größten Einfluss haben. Ein Blick auf ihre Bedeutung erleichtert Konfiguration, Automatisierung und Reporting.


1. name

Typ: Char. Der sichtbare Projektname. Er ist primär für Nutzerlisten, Suchfunktionen und Berichte relevant und meist das wichtigste Identifikationsmerkmal eines Projekts.


2. create_date

Typ: Datetime. Zeitpunkt der Erstellung des Datensatzes. Wird automatisch gesetzt und ist hilfreich für Audit‑Logs und zeitliche Auswertungen.


3. write_date

Typ: Datetime. Zeitpunkt der letzten Änderung. Ebenfalls automatisch gepflegt und nützlich, um Änderungen nachzuverfolgen.


4. active

Typ: Boolean. Weiche Löschung: bei False wird das Projekt archiviert und verschwindet aus Standardansichten, bleibt aber in der Datenbank erhalten.


5. sequence

Typ: Integer. Reihenfolge zur Anzeige und Sortierung. Kleinere Werte erscheinen weiter oben in Listen und Auswahlfeldern.


6. color

Typ: Integer. Farbindex für die Darstellung, etwa in Kanban‑Ansichten zur visuellen Trennung von Projekten.


7. user_id

Typ: Many2one (res.users). Projektleiter oder verantwortliche Person. Wird oft als Standardzuweisender für Aufgaben verwendet.


8. company_id

Typ: Many2one (res.company). Bei Multi‑Company‑Setups gibt dieses Feld an, zu welchem Unternehmen das Projekt gehört.


9. partner_id

Typ: Many2one (res.partner). Kunde oder Auftraggeber des Projekts. Wichtig für Abrechnung, Berichte und Kundenkommunikation.


10. description

Typ: Html. Projektbeschreibung mit Formatierung — sinnvoll für Briefings, Projektziele und Hintergrundinformationen.


11. date_start

Typ: Date. Startdatum des Projekts. Grundlage für Planung und Meilensteinberechnungen.


12. date

Typ: Date. Projektende oder Deadline. Wichtig zur Fortschrittskontrolle und für Statusberichte.


13. task_ids

Typ: One2many (project.task). Liste aller Aufgaben, die zu diesem Projekt gehören — zentrale Relation zwischen Projekt und Arbeitspaketen.


14. task_count

Typ: Integer. Anzahl der Aufgaben, berechnet aus task_ids. Nützlich für Listenansichten und Filter.


15. type_ids

Typ: Many2many (project.task.type). Definiert Phasen oder Statustypen (z. B. To Do, In Arbeit, Erledigt) und bildet den Workflow für Aufgaben ab.


16. tag_ids

Typ: Many2many (project.tags). Projekt‑Tags zur Kategorisierung und schnellen Filterung.


17. privacy_visibility

Typ: Selection. Steuerung der Zugriffsrechte: nur eingeladene interne Nutzer, alle internen Nutzer oder auch eingeladene Portal‑Nutzer (öffentlich).


18. collaborator_ids

Typ: One2many (project.collaborator). Projektteam‑Mitglieder — wer aktiv an dem Projekt mitarbeitet.


19. favorite_user_ids

Typ: Many2many (res.users). Nutzer, die das Projekt als Favorit markiert haben, für schnellen Zugriff im Dashboard.


20. allow_task_dependencies

Typ: Boolean. Wenn gesetzt, können Aufgaben Abhängigkeiten (Vorgänger/Nachfolger) bilden — wichtig für Terminplanung und Gantt‑Ansichten.


21. allow_milestones

Typ: Boolean. Erlaubt das Anlegen von Meilensteinen als besondere, abgrenzbare Lieferobjekte.


22. milestone_ids

Typ: One2many (project.milestone). Auflistung der Meilensteine eines Projekts zur Nachverfolgung wichtiger Deliverables.


23. rating_active

Typ: Boolean. Schaltet Kundenbewertungen für das Projekt frei — nützlich für Feedback und Kundenzufriedenheit.


24. task_properties_definition

Typ: Text (JSON). Definition zusätzlicher, projekt‑spezifischer Eigenschaften für Aufgaben; ermöglicht flexible Erweiterungen ohne neue Felder in der Datenbank.


25. access_url

Typ: Char. Portal‑URL, über die Kunden Zugriff auf das Projekt erhalten können — praktisch für Collaboration mit externen Stakeholdern.


26. access_token

Typ: Char. Sicherheitstoken für Portalzugriff; sorgt dafür, dass nur berechtigte Personen per Link einsehen können.


27. alias_id

Typ: Many2one (mail.alias). E‑Mail‑Alias für das Projekt: ankommende Mails können so automatisch zu Aufgaben werden.


28. activity_ids

Typ: One2many (mail.activity). Geplante Aktivitäten (Follow‑ups, Erinnerungen) im Projektkontext.


29. activity_state

Typ: Selection. Zusammenfassung des Aktivitätsstatus (z. B. Heute, Überfällig, Geplant), errechnet aus activity_ids.


30. activity_date_deadline

Typ: Date. Datum der nächsten geplanten Aktivität — hilft bei Priorisierung und Zeitplanung.


31. message_ids

Typ: One2many (mail.message). Chatter‑Nachrichten am Projekt für interne Kommunikation und Dokumentation.


32. message_follower_ids

Typ: One2many (mail.followers). Nutzer, die das Projekt beobachten und Benachrichtigungen erhalten.


33. create_uid

Typ: Many2one (res.users). Ersteller des Datensatzes, automatisch gesetzt von Odoo.


34. write_uid

Typ: Many2one (res.users). Nutzer, der zuletzt geändert hat — ebenfalls automatisch gepflegt.

Wie das Modell im Tagesgeschäft genutzt wird


1. Anlage und Verwaltung von Projekten

Vertrieb oder Projektleitung legt ein Projekt an: Name, Verantwortlicher, Zeitfenster und Sichtbarkeit werden definiert. Diese Einstellungen speichert project.project; anschließend werden Aufgaben angelegt und über task_ids dem Projekt zugeordnet.


2. Aufgaben‑Workflow

Aufgaben durchlaufen die in type_ids definierten Phasen. Der Projektleiter verteilt Aufgaben an Collaborators; das Projekt bildet die Basis für Workflow‑Einstellungen und Teamorganisation.


3. Kundenportal

Ist die Sichtbarkeit so eingestellt, dass Portalzugriff möglich ist, können Kunden über die access_url Aufgaben und Meilensteine sehen. Der access_token schützt dabei die Inhalte — praktisch für gemeinsame Projekte mit externen Partnern.


4. Zeiterfassung und Abrechnung

Mit Timesheet verknüpfen sich Projekt und Zeiteinträge; in Kombination mit Sale lässt sich projektbezogen abrechnen. Das partner_id‑Feld verbindet das Projekt direkt mit dem Kunden für Berichte und Rechnungsstellung.


5. E‑Mail‑Integration

Eingehende E‑Mails an den Projektalias werden automatisch in Aufgaben umgewandelt. Die alias_id verknüpft Projekt und Mail‑Alias und vereinfacht so die Erfassung von Aufgaben aus der Kommunikation.

Wie Entwickler das Modell erweitern


Entwickler erweitern project.project in Odoo typischerweise per Modell‑Erweiterung (Inheritance) und fügen gezielt Felder, Logik oder Constraints hinzu.


Modellvererbung

Nutzen Sie _inherit = 'project.project', um das Modell zu erweitern. So fügen Sie neue Felder hinzu, überschreiben Methoden oder ergänzen Validierungen, ohne den Originalcode zu verändern. Das hält Anpassungen wartbar und upgrade‑freundlich.


Felder hinzufügen

Ergänzen Sie neue Felder im erweiterten Modell, z. B. Char, Many2one, Boolean, Integer, Text oder Selection. Denken Sie bei unternehmensübergreifenden Setups an company‑abhängige Felder und an sinnvolle Default‑Werte.


Python‑Erweiterungen

Überschreiben Sie create, write oder unlink nur mit Bedacht und rufen Sie super() auf, um Kernfunktionalität nicht zu unterbrechen. Achten Sie besonders auf computed‑Felder und deren Abhängigkeiten, damit Berechnungen korrekt bleiben.


Odoo Studio

Odoo Studio bietet eine codefreie Möglichkeit, Felder zu ergänzen — ideal für schnelle Anpassungen. Für komplexe Logik oder langlebige Projekte sind deklarative Module allerdings robuster und besser wartbar.

Empfohlene Vorgehensweisen


  • Weisen Sie user_id korrekt zu, um Verantwortlichkeiten transparent zu halten. Klare Eigentumszuweisungen erleichtern Nachverfolgung und Reporting.
  • Legen Sie für jedes Projekt passende type_ids fest, damit die Phasen dem realen Workflow entsprechen und Aufgaben sinnvoll durch die Stufen fließen können.
  • Nutzen Sie privacy_visibility gezielt: Private Projekte schützen sensible Inhalte, während öffentliche Projekte die Zusammenarbeit mit Portal‑Benutzern ermöglichen.
  • Für API‑Integrationen nutzen Sie XML‑RPC oder JSON‑RPC. project.project ist über die Odoo‑API verfügbar — externe Systeme sollten IDs und Referenzen sauber mappen, um Inkonsistenzen zu vermeiden.
  • Bei eigenen Feldern empfiehlt sich ein Modul‑Prefix (x_modulname_ oder x_‑Präfix), damit keine Namenskonflikte mit künftigen Odoo‑Felder entstehen.

Häufige Fehler


  • Aufgaben ohne Projekt zu erstellen ist eine häufige Ursache für Probleme. Achten Sie darauf, dass task.project_id gesetzt wird, sonst fehlen Kontext und Zuordnung.
  • Neue Projekte ohne definierte type_ids führen oft zu blockierten Workflows, weil keine Phasen vorhanden sind, durch die Aufgaben laufen könnten.
  • Achten Sie darauf, privacy_visibility nicht versehentlich öffentlich zu setzen — dadurch könnten vertrauliche Projektinformationen nach außen gelangen.
  • Beim Überschreiben von Kernmethoden darf super() nicht fehlen. Sonst riskieren Sie Inkompatibilitäten mit anderen Modulen oder zukünftigen Odoo‑Upgrades.
  • Pflegen Sie Default‑Werte für neu eingeführte Pflichtfelder. Fehlen diese, schlagen Migrationen oder Bulk‑Operationen auf bestehende Datensätze fehl.

Fazit


Das project.project‑Modell bildet das Herz des Projektmanagements in Odoo: Es speichert Projektdefinitionen, Workflow‑Phasen und Teamzuordnungen. Wer die wichtigsten Felder und Erweiterungsmuster kennt, kann Odoo gezielt konfigurieren, erweitern und integrieren.


Ob Sie Projekte als Berater einrichten oder als Entwickler Module bauen — fundierte Kenntnisse des project.project‑Modells sparen Zeit und vermeiden Fehler in Implementierung und Betrieb.

Brauchen Sie Unterstützung bei Ihrer Odoo‑Einführung?


Dasolo unterstützt Unternehmen bei Implementierung, Customizing und Optimierung von Odoo. Unser Fokus liegt auf Integrationen per API und stabiler Odoo‑Entwicklung — mit tiefem Verständnis der Datenmodelle wie project.project.


Wenn Sie Unterstützung bei Odoo‑Implementierung, individuellen Modulen oder Integrationen benötigen: Wir helfen gern weiter. Demo buchen um Ihr Projekt zu besprechen.

Das project.project Model: Odoo-Projektarchitektur verstehen
Dasolo 11. März 2026
Diesen Beitrag teilen
Anmelden , um einen Kommentar zu hinterlassen