Introduktion
I Odoo definerer modeller, hvordan data er struktureret og gemt i databasen. Hver enkelt del af forretningsdata, du arbejder med, fra salgsordrer til projekter til opgaver, lever i en model.
At forstå Odoo-modeller er essentielt for både udviklere og funktionelle konsulenter. Modellerne er fundamentet for Odoo's dataarkitektur. De definerer Odoo-felter, relationer og forretningslogik. Hver model i Odoo følger de samme mønstre.
Denne artikel fokuserer på en af de vigtigste modeller i Odoo: project.project. Uanset om du bygger tilpassede moduler, integrerer eksterne systemer eller konfigurerer projektarbejdsgange, vil du arbejde med denne model.
Hvad er projekt.project-modellen
Projekt.project-modellen repræsenterer et projekt i Odoo. Det er beholderen for opgaver, milepæle og team samarbejde. Hvert projekt er en post i denne model.
Denne model i Odoo bruges af Project-appen. Når du opretter et projekt i Odoo, opretter du en projekt.project-post. Opgaver er knyttet til det projekt gennem task_ids-feltet. Projektet definerer arbejdsflow-faser, teammedlemmer og synlighedsregler.
Modellen er defineret i projektmodulet. Andre moduler udvider det gennem Odoo-modelarv. Salg tilføjer projektbaseret fakturering. Tidsregistrering tilføjer tidsregistrering. Projektplanlægning tilføjer Gantt-planlægning. Hvert modul tilføjer, hvad det har brug for, uden at duplikere den grundlæggende struktur.
At forstå forholdet mellem projekt.project og projekt.task er nøglen. Projektet indeholder delte indstillinger. Opgaven indeholder individuelle arbejdsopgaver. Begge er centrale for Odoo projektledelsesworkflow.
Nøglefelter i modellen
Her er de vigtigste Odoo-felter i projekt.project-modellen. At forstå disse vil hjælpe dig med at arbejde effektivt med projekter.
1. navn
Type: Char. Dette felt gemmer navnet på projektet. Det vises i mange Odoo-visninger og er den primære identifikator for projektposten.
2. create_date
Type: Datetime. Gemmer datoen og tidspunktet for, hvornår posten blev oprettet. Administreres automatisk af Odoo. Nyttig til rapportering og revision.
3. write_date
Type: Datetime. Gemmer datoen og tidspunktet for den sidste ændring. Også administreret automatisk. Hjælper med at spore, hvornår data sidst blev opdateret.
4. aktiv
Type: Boolean. Soft delete flag. When False, the project is archived and hidden from default views. Records are not physically deleted.
5. sekvens
Type: Integer. Visningsrækkefølge til sortering. Bruges i projektlister og dropdowns. Lavere værdier vises først.
6. farve
Type: Integer. Farveindeks for projektet. Bruges i visninger og kanban-tavler til visuelt at skelne mellem projekter.
7. bruger_id
Type: Many2one (res.users). Projektlederen. Denne bruger er ansvarlig for projektet og vises ofte som den standard tildelte.
8. virksomhed_id
Type: Many2one (res.company). I multi-virksomhedsopsætninger angiver dette, hvilken Odoo-virksomhed projektet tilhører.
9. partner_id
Type: Many2one (res.partner). Kunden eller klienten knyttet til projektet. Bruges til fakturering og rapportering.
10. beskrivelse
Type: Html. Projektbeskrivelse. Kan inkludere HTML til formatering. Bruges til projektbeskrivelser og noter.
11. start_dato
Type: Dato. Projektets startdato. Bruges til planlægning og rapportering.
12. dato
Type: Dato. Projektets deadline eller slutdato. Bruges til sporing og rapportering.
13. opgave_ids
Type: One2many (projekt.opgave). Listen over opgaver i projektet. Dette er den primære relation mellem projekter og opgaver.
14. opgave_antallet
Type: Integer. Antal opgaver. Beregnet ud fra opgave_ids. Bruges til visning og filtrering.
15. type_ids
Type: Many2many (projekt.opgave.type). Opgavestadier eller typer for projektet. Definerer arbejdsgangen (f.eks. At Gøre, I Gang, Færdig).
16. tag_ids
Type: Many2many (project.tags). Projekt tags til kategorisering. Bruges til filtrering og organisering af projekter.
17. privacy_visibility
Type: Selection. Kontrollerer, hvem der kan få adgang til projektet. Muligheder: Inviterede interne brugere (privat), Alle interne brugere eller Inviterede portalbrugere og alle interne brugere (offentlig).
18. collaborator_ids
Type: One2many (project.collaborator). Teammedlemmer tildelt projektet. Definerer, hvem der kan arbejde på projektet.
19. favorite_user_ids
Type: Many2many (res.users). Brugere, der har markeret projektet som favorit. Bruges til hurtig adgang på dashboardet.
20. allow_task_dependencies
Type: Boolean. Når sand, kan opgaver linkes til andre opgaver som forgængere eller efterfølgere. Bruges til projektplanlægning.
21. allow_milestones
Type: Boolean. Når sand, kan milepæle oprettes i projektet. Milepæle markerer nøgleleverancer.
22. milestone_ids
Type: One2many (project.milestone). Milepælene i projektet. Bruges til at spore nøgleleverancer.
23. rating_active
Type: Boolean. Når sand, kan kunderne bedømme projektet. Bruges til kundefeedback.
24. task_properties_definition
Type: Text (JSON). Tilpassede opgaveegenskaber for projektet. Definerer ekstra felter, der kan tilføjes til opgaver.
25. access_url
Type: Char. URL'en for kunder til at få adgang til projektet via portalen. Bruges til kundesamarbejde.
26. access_token
Type: Char. Sikkerhedstoken til portaladgang. Sikrer, at kun autoriserede brugere kan se projektet.
27. alias_id
Type: Many2one (mail.alias). E-mail-alias for projektet. Indgående e-mails opretter automatisk opgaver.
28. activity_ids
Type: One2many (mail.activity). Planlagte aktiviteter på projektet. Bruges til opfølgninger og påmindelser.
29. activity_state
Type: Selection. Oversigt over aktivitetsstatus: I dag, Forsinket eller Planlagt. Beregnet ud fra activity_ids.
30. activity_date_deadline
Type: Date. Datoen for den næste planlagte aktivitet. Bruges til aktivitetsplanlægning.
31. message_ids
Type: One2many (mail.message). Chatterbeskeder på projektet. Bruges til intern kommunikation.
32. message_follower_ids
Type: One2many (mail.followers). Brugere der følger projektet. De modtager notifikationer.
33. create_uid
Type: Many2one (res.users). Den bruger, der oprettede posten. Automatisk indstillet af Odoo.
34. write_uid
Type: Many2one (res.users). Den bruger, der sidst har ændret posten. Automatisk indstillet af Odoo.
Hvordan denne model bruges i forretningsarbejdsgange
1. Projektoprettelse og -styring
Når en sælger eller projektleder opretter et projekt, angiver de navnet, lederen, datoerne og synligheden. Modellen project.project gemmer alt dette. Opgaver tilføjes derefter og knyttes til projektet.
2. Opgaveworkflow
Opgaver bevæger sig gennem faser defineret af type_ids. Projektlederen tildeler opgaver til samarbejdspartnere. Projektet indeholder workflow-konfigurationen og teamstrukturen.
3. Kundeportal
Når privacy_visibility tillader portaladgang, kan kunder se opgaver og milepæle via access_url. access_token sikrer linket. Dette er nyttigt for klientprojekter.
4. Tidsregistrering og fakturering
Med Timesheet-modulet knyttes project.project til tidsregistreringer. Med Salg kan projekter knyttes til salgsordrer for projektbaseret fakturering. partner_id-feltet forbinder projektet med kunden.
5. E-mailintegration
Indgående e-mails til projektaliaset opretter automatisk opgaver. alias_id-feltet forbinder projektet med dets mailalias. Dette strømliner oprettelsen af opgaver fra e-mails.
Hvordan udviklere udvider denne model
Udviklere udvider project.project ved hjælp af flere mønstre. Odoo-modelarv er den primære mekanisme.
Model Arv
Brug _inherit = 'project.project' for at udvide modellen. Dette er Odoo modelarv i aktion. Tilføj nye Odoo felter, overskriv metoder eller tilføj begrænsninger. Den arvede model i Odoo holder dine ændringer i et separat modul for nem opgradering. Når du arver en model i Odoo, udvider du den uden at ændre den originale.
Tilføjelse af Felter
Definer nye Odoo felter i din arvede model. Brug den rigtige felttype: Char, Many2one, Boolean, Integer, Text, Selection. Overvej virksomhedafhængige felter til multi-virksomhed.
Python Udvidelser
Overskriv create, write eller unlink for at tilføje logik. Brug super() for at kalde den originale. Vær forsigtig med beregnede felter og deres afhængigheder.
Odoo Studio
Odoo Studio lader dig tilføje felter uden kode. Godt til hurtige tilpasninger. For kompleks logik eller opgraderinger er brugerdefinerede moduler mere vedligeholdelige.
Bedste praksis
- Indstil user_id for projektleder tildeling. Klar ejerskab forbedrer ansvarlighed.
- Konfigurer type_ids for hvert projekt. Definer faser, der matcher dit workflow.
- Brug privacy_visibility korrekt. Private projekter begrænser adgangen til følgere og administratorer.
- Når du bygger API-integrationer, brug XML-RPC eller JSON-RPC API. project.project modellen er fuldt eksponeret som en API-model i Odoo. Kortlæg eksterne ID'er omhyggeligt.
- For tilpassede felter, brug
x_præfikset eller et modulpræfiks for at undgå konflikter med fremtidige Odoo-versioner.
Almindelige fejl
- Opretter opgaver uden at knytte dem til et projekt. Hver opgave skal have et project_id.
- Glemmer at indstille type_ids. Nye projekter må ikke have nogen faser, så opgaver kan ikke bevæge sig gennem workflow.
- Indstiller privacy_visibility til offentlig, når det burde være privat. Dette kan eksponere følsomme data.
- Overskriver kerne metoder uden at kalde super(). Dette kan bryde andre moduler eller fremtidige opgraderinger.
- Tilføjer krævede tilpassede felter uden standarder. Eksisterende poster vil fejle validering ved opgradering.
Konklusion
Modellen project.project er central for Odoo projektledelse. Den gemmer projektdefinitioner, workflow faser og teamstruktur. At forstå dens felter og hvordan moduler udvider den vil hjælpe dig med at konfigurere, tilpasse og integrere Odoo effektivt.
Uanset om du er en funktionel konsulent, der opsætter projekter, eller en udvikler, der bygger tilpassede moduler, vil en solid forståelse af project.project spare tid og forhindre fejl.
Har du brug for hjælp med din Odoo-implementering?
Dasolo hjælper virksomheder med at implementere, tilpasse og optimere Odoo. Vi specialiserer os i API-integrationer og Odoo-udvikling. Vores team har dyb erfaring med Odoo-dataarkitekturen og modeller som project.project.
Hvis du har brug for hjælp til din Odoo-implementering, tilpassede moduler eller integrationer, er vi her for at hjælpe. Book en demo for at diskutere dit projekt.