Overslaan naar inhoud

Het project.project Model: Uitleg van Odoo’s Project-architectuur

Uitgebreide handleiding voor het projectmodel van Odoo — gericht op ontwikkelaars en functionele consultants
11 maart 2026 in
Het project.project Model: Uitleg van Odoo’s Project-architectuur
Dasolo
| Nog geen reacties

Inleiding


In Odoo bepalen modellen hoe bedrijfsgegevens georganiseerd en bewaard worden in de database. Alle informatie waar uw team mee werkt — van offertes en urenlijnen tot projecten en taken — krijgt een plaats binnen een model.


Goed begrip van Odoo-modellen is cruciaal voor zowel ontwikkelaars als consultants. Modellen vormen de ruggengraat van de data-architectuur: ze definiëren velden, relaties en de kernlogica. In Odoo volgen modellen een voorspelbare opbouw, wat het onderhoud en uitbreidingen vergemakkelijkt.


Dit artikel zoomt in op één van de meest gebruikte modellen in Odoo: project.project. Of u nu workflows wilt instellen, koppelingen met andere systemen bouwt of maatwerkmodules ontwikkelt, dit model komt altijd aan bod.

Wat is het project.project-model


Het project.project-model staat voor het project zelf in Odoo. Het fungeert als kapstok waaraan taken, mijlpalen en teamgegevens worden vastgemaakt — kortom: elk project is één record in dit model.


De Project-app gebruikt dit model als centrale opslag. Zodra u een project aanmaakt, ontstaat er een project.project-record waaraan taken gekoppeld worden via een relatieveld. Het project bepaalt onder meer de fasering, teamleden en wie het mag zien.


Het model zit in de project-module, en andere modules breiden het uit via Odoo-inherentie. Zo voegt Sale facturatieopties toe, Timesheet urenregistratie en Project Planning planningsfunctionaliteit. Elke module bouwt verder op de kern zonder die te dupliceren.


De koppeling tussen project.project en project.task is fundamenteel: het project bevat gedeelde instellingen en structuur, terwijl taken de concrete werkitems beschrijven. Samen vormen ze de projectmanagementstroom in Odoo.

Belangrijke velden in het model


Onderstaand vind u de sleutelvelden van het project.project-model. Wie deze kent, kan projecten vlot configureren en integreren.


1. naam

Type: Char. Dit is de zichtbare titel van het project, gebruikt in lijsten en formulieren als primaire herkenning van het projectrecord.


2. create_date

Type: Datetime. Geeft weer wanneer het record is aangemaakt. Wordt automatisch gevuld en is handig voor rapportage of auditdoeleinden.


3. write_date

Type: Datetime. Laat zien wanneer het record voor het laatst is aangepast. Handig om wijzigingen en recentheid van data te volgen.


4. active

Type: Boolean. Een archiveringsvlag: staat een project op False, dan wordt het standaard verborgen zonder het fysiek te verwijderen.


5. sequence

Type: Integer. Bepaalt de volgorde in lijsten en dropdowns; lagere waarden verschijnen eerst.


6. color

Type: Integer. Kleurindex voor weergave in kanban of lijsten, handig om projecten visueel te onderscheiden.


7. user_id

Type: Many2one (res.users). De projectverantwoordelijke of manager; vaak de standaardassignee voor nieuwe taken.


8. company_id

Type: Many2one (res.company). Bij multi-company setups geeft dit aan bij welke vennootschap het project hoort.


9. partner_id

Type: Many2one (res.partner). De klant of externe partner gelinkt aan het project — belangrijk voor facturatie en rapportering.


10. description

Type: Html. Een omschrijving van het project, met opmaakmogelijkheden voor briefing en notities.


11. date_start

Type: Date. De startdatum van het project, nuttig voor planning en voortgangsrapporten.


12. date

Type: Date. Einddatum of deadline van het project, gebruikt om tijdigheid te bewaken.


13. task_ids

Type: One2many (project.task). Lijst met taken binnen het project; dit is de primaire relatie tussen project en taken.


14. task_count

Type: Integer. Aantal taken, berekend uit task_ids — nuttig voor dashboards en filtering.


15. type_ids

Type: Many2many (project.task.type). De fasen of type-stadia voor het project, die het werkproces bepalen (bv. To Do, In Progress, Done).


16. tag_ids

Type: Many2many (project.tags). Tags voor categorisatie en snelle filtering van projecten.


17. privacy_visibility

Type: Selection. Regelt wie toegang heeft: enkel uitgenodigde interne gebruikers, alle interne gebruikers, of ook portalgebruikers.


18. collaborator_ids

Type: One2many (project.collaborator). Teamleden die aan het project samenwerken en taken kunnen uitvoeren.


19. favorite_user_ids

Type: Many2many (res.users). Gebruikers die het project als favoriet markeerden voor snelle toegang.


20. allow_task_dependencies

Type: Boolean. Staat afhankelijkheden toe tussen taken (voorganger/opvolger), belangrijk voor planning en kritieke paden.


21. allow_milestones

Type: Boolean. Schakelaar om mijlpalen toe te staan; handig om levermomenten te markeren.


22. milestone_ids

Type: One2many (project.milestone). De lijst met mijlpalen binnen het project voor voortgangscontrole.


23. rating_active

Type: Boolean. Laat klanten een beoordeling geven over het project — bruikbaar voor klanttevredenheidsmetingen.


24. task_properties_definition

Type: Text (JSON). Vrije definitie voor extra taakvelden per project, als u taken wilt verrijken met project-specifieke eigenschappen.


25. access_url

Type: Char. Publieke link voor klanten om het project via het portal te bekijken.


26. access_token

Type: Char. Beveiligingstoken gekoppeld aan de access_url zodat alleen gemachtigden het project zien.


27. alias_id

Type: Many2one (mail.alias). E-mailalias voor het project; binnenkomende mails kunnen automatisch taken genereren.


28. activity_ids

Type: One2many (mail.activity). Geplande opvolgactiviteiten gekoppeld aan het project voor reminders en opvolging.


29. activity_state

Type: Selection. Samenvatting van activiteitenstatus (bijv. Vandaag, Achterstallig, Gepland), afgeleid van activity_ids.


30. activity_date_deadline

Type: Date. Datum van de eerstvolgende activiteit — handig voor prioritering.


31. message_ids

Type: One2many (mail.message). Chatterberichten en conversaties rond het project voor interne communicatie.


32. message_follower_ids

Type: One2many (mail.followers). Gebruikers die het project volgen en notificaties ontvangen.


33. create_uid

Type: Many2one (res.users). De gebruiker die het record aanmaakte; wordt automatisch gezet.


34. write_uid

Type: Many2one (res.users). De gebruiker die het laatst wijzigde; automatisch bijgehouden door Odoo.

Hoe dit model in bedrijfsprocessen wordt gebruikt


1. Projectaanmaak en -beheer

Bij het aanmaken van een project voegt een verkoop- of projectverantwoordelijke de naam, manager, datums en zichtbaarheid toe. Die informatie leeft in het project.project-record; daarna koppelt u taken en vormt u het team.


2. Taakworkflow

Taken doorlopen de fasen die u op projectniveau definieert via type_ids. Managers wijzen taken toe aan medewerkers en stellen de workflowregels en verantwoordelijkheden in.


3. Klantportaal

Als privacyinstellingen portaltoegang toestaan, kunnen klanten via de toegangslink taken en mijlpalen raadplegen. Het access_token beschermt die link zodat enkel genodigden toegang hebben.


4. Urenregistratie en facturatie

Met de Timesheet-module koppelt u uren aan projecten; in combinatie met Sale kunt u projecten linken aan verkooporders voor projectgestuurde facturatie. De partner_id verbindt het project met de juiste klant.


5. E-mailintegratie

E-mails die naar het projectalias gestuurd worden, kunnen automatisch als taken verschijnen. De alias_id verzorgt die koppeling en versnelt taakcreatie vanuit e-mail.

Hoe ontwikkelaars het model uitbreiden


Ontwikkelaars breiden project.project uit met verschillende technieken, waarbij modelinherentie centraal staat.


Modelinherentie

Door _inherit = 'project.project' te gebruiken, maakt u een uitbreiding van het bestaand model. Zo voegt u velden toe, past u gedragsregels aan of voegt u constraints toe zonder het originele model te wijzigen, wat upgrades en onderhoud vereenvoudigt.


Veldtoevoeging

Voeg nieuwe velden toe in uw geërfde model en kies het juiste type (Char, Many2one, Boolean, Integer, Text, Selection). Denk aan bedrijfsspecifieke velden in multi-company om fouten te vermijden.


Python-uitbreidingen

Overschrijf methodes zoals create, write of unlink om extra logica in te bouwen, maar roep altijd super() aan om bestaande workflow en andere modules niet te breken. Let extra op berekende velden en dependencies.


Odoo Studio

Met Odoo Studio voegt u snel velden toe zonder code — ideaal voor snelle aanpassingen. Voor uitgebreide logica en toekomstbestendigheid blijft maatwerk in modules aan te raden.

Aanbevolen werkwijzen


  • Wijs user_id correct toe zodat er altijd een duidelijke projectverantwoordelijke is; dat versterkt eigenaarschap en opvolging.
  • Stel per project passende type_ids in zodat de fasen overeenkomen met uw werkproces en taken vlot door de workflow kunnen stromen.
  • Gebruik privacy_visibility bewust: privaat zetten beperkt zichtbaarheid tot volgers en beheerders en beschermt gevoelige projecten.
  • Bij API-koppelingen gebruikt u XML-RPC of JSON-RPC om records te lezen en schrijven. Het project.project-model is via de API beschikbaar — let op correcte mapping van externe ID's.
  • Voor eigen velden gebruikt u best een x_ of moduleprefix om naamconflicten met toekomstige Odoo-versies te vermijden.

Veelvoorkomende fouten


  • Taken aanmaken zonder projectkoppeling. Zorg dat elke taak een project_id heeft, anders mist u context en raken rapporten verstoord.
  • Vergeten type_ids in te stellen. Zonder fasen kunnen taken niet door een workflow bewegen, wat het beheer bemoeilijkt.
  • privacy_visibility per ongeluk publiek zetten. Dat kan vertrouwelijke projectgegevens blootstellen.
  • Kernmethodes overschrijven zonder super(). Daardoor kunnen andere modules of toekomstige upgrades onverwacht falen.
  • Verplichte custom velden toevoegen zonder default. Bestaande records kunnen daardoor bij module-upgrades valideren en fouten geven.

Slotwoord


Het project.project-model is het hart van projectbeheer in Odoo: het bewaart definities, workflows en teams. Door de velden en uitbreidingsmogelijkheden te kennen, configureert en integreert u Odoo efficiënter.


Of u nu projecten inricht als functioneel consultant of modules bouwt als ontwikkelaar: goed inzicht in project.project voorkomt fouten en spaart uw team veel tijd.

Hulp nodig bij uw Odoo-implementatie?


Dasolo ondersteunt bedrijven bij implementatie, maatwerk en optimalisatie van Odoo. We specialiseren ons in API-koppelingen en custom development en kennen de Odoo-datalaag en modellen zoals project.project door en door.


Heeft u hulp nodig bij uw Odoo-implementatie, integraties of maatwerk? Wij begeleiden u graag. Plan een demo om uw project te bespreken.

Het project.project Model: Uitleg van Odoo’s Project-architectuur
Dasolo 11 maart 2026
Deel deze post
Aanmelden om een reactie achter te laten