Przejdź do zawartości

Model project.project: Jak działa architektura modułu Project w Odoo

Kompletny przewodnik po modelu projektów w Odoo dla programistów i konsultantów funkcjonalnych
11 marca 2026 przez
Model project.project: Jak działa architektura modułu Project w Odoo
Dasolo
| Brak komentarzy na ten moment

Wprowadzenie


W Odoo model to schemat danych — określa, jakie informacje przechowujemy i w jakim formacie trafiają do bazy. Wszystkie elementy pracy biznesowej: zamówienia, zadania czy projekty, to rekordy zapisane w odpowiednich modelach.


Znajomość modeli Odoo jest kluczowa zarówno dla konsultantów funkcjonalnych, jak i programistów. To one determinują pola, zależności między rekordami i biznesowe reguły. Modele w Odoo są zbudowane według powtarzalnych, dobrze rozpoznawalnych wzorców.


W tekście skupiamy się na jednym z centralnych modeli aplikacji projektowej: project.project. Niezależnie czy konfigurujesz procesy, tworzysz moduły czy robisz integracje — prędzej czy później zetkniesz się z tym modelem.

Czym jest model project.project


Model project.project reprezentuje projekt w systemie — to pojemnik na zadania, kamienie milowe i ustawienia zespołu. Każdy projekt w Odoo jest odrębnym rekordem tego modelu.


Model obsługiwany jest przez aplikację Project. Gdy tworzysz projekt w interfejsie, powstaje rekord project.project, a zadania przypisuje się do niego przez pole task_ids. Projekt określa etapy pracy, członków zespołu i zasady widoczności.


Definicja modelu znajduje się w module project. Inne moduły dopisują funkcje przez dziedziczenie modeli — np. sprzedaż dodaje rozliczanie projektów, moduł Timesheet zbiera czas pracy, a planowanie wprowadza wykres Gantta. Dzięki temu rozszerzenia nie duplikują podstawowej struktury.


Relacja między project.project a project.task to fundament zarządzania projektami w Odoo: projekt zawiera wspólne ustawienia i strukturę, a zadania reprezentują poszczególne elementy pracy przypisane do projektu.

Kluczowe pola w modelu


Poniżej wymieniono najważniejsze pola modelu project.project — opanowanie ich ułatwi konfigurację, raportowanie i integracje.


1. name

Typ: Char. Nazwa projektu — główny identyfikator widoczny w listach, nagłówkach i odnośnikach.


2. create_date

Typ: Datetime. Data i godzina utworzenia rekordu. Odoo ustawia automatycznie; przydaje się w audycie i analizach historycznych.


3. write_date

Typ: Datetime. Data ostatniej modyfikacji rekordu. Również automatycznie zarządzane; pomaga śledzić, kiedy dane były zmieniane.


4. active

Typ: Boolean. Flaga archiwizacji — gdy False, projekt jest ukryty w podstawowych widokach, ale nie jest fizycznie usuwany.


5. sequence

Typ: Integer. Kolejność wyświetlania w listach i rozwijalnych menu — niższe wartości pojawiają się wcześniej.


6. color

Typ: Integer. Indeks koloru używany w widokach Kanban i listach, by szybciej wyróżnić projekt wizualnie.


7. user_id

Typ: Many2one (res.users). Kierownik projektu — domyślny przypisany użytkownik i osoba odpowiedzialna za realizację.


8. company_id

Typ: Many2one (res.company). Firma powiązana z projektem w konfiguracjach wielofirmowych.


9. partner_id

Typ: Many2one (res.partner). Klient lub partner biznesowy związany z projektem — ważne przy fakturowaniu i raportowaniu.


10. description

Typ: Html. Opis projektu — można formatować treść HTML, przydatne przy briefach i notatkach projektowych.


11. date_start

Typ: Date. Data rozpoczęcia projektu — wykorzystywana w planowaniu i raportach.


12. date

Typ: Date. Data zakończenia lub termin realizacji projektu — służy do monitoringu statusu.


13. task_ids

Typ: One2many (project.task). Lista zadań należących do projektu — główne powiązanie między projektem a zadaniami.


14. task_count

Typ: Integer. Liczba zadań — pole obliczane na podstawie task_ids; używane do wyświetlania i filtrowania.


15. type_ids

Typ: Many2many (project.task.type). Zestaw etapów/typów zadań dla projektu — definiuje ścieżkę pracy, np. Do zrobienia, W trakcie, Zakończone.


16. tag_ids

Typ: Many2many (project.tags). Tagowanie projektów do grupowania i szybkiego filtrowania.


17. privacy_visibility

Typ: Selection. Kontrola dostępu: tylko zaproszeni użytkownicy wewnętrzni (prywatny), wszyscy użytkownicy wewnętrzni, lub zaproszeni użytkownicy portalu i wszyscy wewnętrzni (publiczny).


18. collaborator_ids

Typ: One2many (project.collaborator). Członkowie zespołu przypisani do projektu — określają, kto może pracować nad zadaniami.


19. favorite_user_ids

Typ: Many2many (res.users). Użytkownicy oznaczający projekt jako ulubiony — przyśpiesza dostęp na pulpicie.


20. allow_task_dependencies

Typ: Boolean. Pozwala łączyć zadania zależnościami (poprzednik/następnik) — pomocne w planowaniu i kolejności prac.


21. allow_milestones

Typ: Boolean. Włącza możliwość tworzenia kamieni milowych w projekcie — oznaczają istotne etapy dostaw.


22. milestone_ids

Typ: One2many (project.milestone). Lista kamieni milowych projektu — służy do monitorowania kluczowych terminów.


23. rating_active

Typ: Boolean. Pozwala klientom oceniać projekt — źródło informacji zwrotnej.


24. task_properties_definition

Typ: Text (JSON). Definicja niestandardowych właściwości zadań w formacie JSON — pozwala dodawać dodatkowe pola specyficzne dla projektu.


25. access_url

Typ: Char. Link dostępu dla klientów przez portal — ułatwia współpracę zewnętrzną.


26. access_token

Typ: Char. Token bezpieczeństwa do dostępu przez portal — zabezpiecza widok projektu dla uprawnionych osób.


27. alias_id

Typ: Many2one (mail.alias). Alias e‑mailowy przypisany do projektu — przychodzące maile mogą automatycznie tworzyć zadania.


28. activity_ids

Typ: One2many (mail.activity). Zaplanowane aktywności związane z projektem — przypomnienia i follow‑upy.


29. activity_state

Typ: Selection. Podsumowanie stanu aktywności: Dzisiaj, Zaległe lub Zaplanowane — obliczane z aktywności projektu.


30. activity_date_deadline

Typ: Date. Data następnej zaplanowanej aktywności — przydatna do harmonogramowania pracy.


31. message_ids

Typ: One2many (mail.message). Wiadomości z chattera przypisane do projektu — centralne miejsce komunikacji wewnętrznej.


32. message_follower_ids

Typ: One2many (mail.followers). Obserwujący projekt — otrzymują powiadomienia o zmianach.


33. create_uid

Typ: Many2one (res.users). Użytkownik, który utworzył rekord — ustawiane automatycznie przez Odoo.


34. write_uid

Typ: Many2one (res.users). Użytkownik, który ostatnio zmodyfikował rekord — również automatyczne pole.

Jak model wykorzystuje się w procesach biznesowych


1. Tworzenie i zarządzanie projektami

Osoba odpowiedzialna (sprzedawca lub kierownik projektu) zakłada projekt, definiuje nazwę, kierownika, terminy i dostęp. Model project.project przechowuje te ustawienia, a następnie przypisuje do projektu zadania.


2. Przepływ zadań

Zadania przesuwają się między etapami określonymi w type_ids. Kierownik przydziela zadania współpracownikom, a projekt trzyma konfigurację workflow i strukturę zespołu.


3. Portal klienta

Jeśli ustawienie prywatności dopuszcza dostęp przez portal, klient może przeglądać zadania i kamienie milowe przez access_url. Token dostępu zabezpiecza link — użyteczne przy współpracy z klientami zewnętrznymi.


4. Timesheet i rozliczenia

Po zainstalowaniu Timesheet projekt łączy się z wpisami czasu pracy, a moduł Sprzedaż pozwala powiązać projekt z zamówieniami dla rozliczeń projektowych. Pole partner_id wiąże projekt z klientem.


5. Integracja e‑mailowa

Wiadomości przychodzące na alias projektu mogą automatycznie tworzyć zadania — alias_id łączy projekt z aliasem pocztowym i ułatwia rejestrację zadań z korespondencji.

Jak programiści rozszerzają ten model


Programiści rozbudowują project.project przy użyciu mechanizmów Odoo, przede wszystkim przez dziedziczenie modeli.


Dziedziczenie modelu

W module rozszerzającym użyj _inherit = 'project.project' aby dodać pola, nadpisać metody czy dodać ograniczenia. Dzięki temu modyfikacje pozostają w oddzielnym module, co ułatwia przyszłe aktualizacje i nie modyfikuje oryginalnego kodu.


Dodawanie pól

W rozszerzonym modelu deklarujesz nowe pola: Char, Many2one, Boolean, Integer, Text, Selection itd. W środowiskach wielofirmowych warto rozważyć pola zależne od company_id.


Rozszerzenia w Pythonie

Nadpisuj metody create, write czy unlink, aby dodać logikę biznesową — zawsze wywołuj super(), dbaj o poprawne zależności dla pól obliczanych i o wydajność operacji masowych.


Odoo Studio

Odoo Studio pozwala dodawać pola bez kodu — szybkie rozwiązanie dla prostych potrzeb. Dla złożonych reguł lub dłuższej perspektywy lepszym wyborem są niestandardowe moduły.

Najlepsze praktyki


  • Przypisz user_id jako kierownika projektu — jasne przypisanie odpowiedzialności ułatwia zarządzanie i raportowanie.
  • Skonfiguruj type_ids dla każdego projektu tak, aby etapy odpowiadały rzeczywistemu procesowi pracy w zespole.
  • Używaj privacy_visibility z rozwagą — niewłaściwe ustawienie może poskutkować ujawnieniem wrażliwych informacji.
  • Przy integracjach API korzystaj z XML‑RPC lub JSON‑RPC — model project.project jest dostępny przez API, ale pamiętaj o mapowaniu zewnętrznych identyfikatorów i uprawnień.
  • Dla własnych pól stosuj prefixy x_ lub prefiks modułu, aby uniknąć konfliktów z przyszłymi wersjami Odoo.

Najczęstsze błędy


  • Tworzenie zadań bez powiązania z projektem. Każde zadanie powinno mieć project_id — brak przypisania utrudnia organizację i raportowanie.
  • Zaniedbanie ustawienia type_ids. Nowy projekt bez etapów uniemożliwi płynne przechodzenie zadań przez workflow.
  • Ustawienie privacy_visibility na publiczne, gdy powinno być prywatne — ryzyko ujawnienia danych klientów lub wewnętrznych informacji.
  • Nadpisywanie metod systemowych bez wywołania super() — może to złamać logikę innych modułów i utrudnić aktualizacje.
  • Dodawanie wymagających pól niestandardowych bez wartości domyślnych — migracja istniejących rekordów może zakończyć się błędami walidacji.

Podsumowanie


Model project.project jest sercem zarządzania projektami w Odoo — przechowuje definicję projektu, etapy pracy i strukturę zespołu. Znajomość jego pól oraz sposobu rozbudowy przez moduły pozwala efektywnie konfigurować, dostosowywać i integrować Odoo.


Zarówno konsultant konfigurujący procesy, jak i programista tworzący rozszerzenia zyskują na sprawnym opanowaniu project.project — to oszczędza czas i zapobiega typowym błędom.

Potrzebujesz wsparcia przy wdrożeniu Odoo?


Dasolo pomaga firmom we wdrożeniach, customizacji i optymalizacji Odoo. Specjalizujemy się w integracjach API i rozwoju modułów, ze szczególnym naciskiem na właściwą architekturę danych i pracę z modelami takimi jak project.project.


Jeśli potrzebujesz wsparcia przy wdrożeniu Odoo, tworzeniu modułów czy integracjach — chętnie pomożemy. Umów demo aby porozmawiać o Twoim projekcie.

Model project.project: Jak działa architektura modułu Project w Odoo
Dasolo 11 marca 2026
Udostępnij ten artykuł
Zaloguj się by zostawić komentarz