Pular para o conteúdo

Modelo project.project: Como Funciona a Arquitetura de Project no Odoo

Guia essencial ao modelo de projetos do Odoo para programadores e consultores funcionais
11 de março de 2026 por
Modelo project.project: Como Funciona a Arquitetura de Project no Odoo
Dasolo
| Nenhum comentário ainda

Introdução


No Odoo, um modelo descreve a estrutura dos dados guardados na base de dados. Tudo o que representa informação de negócio — desde encomendas de venda até projetos e tarefas — vive num modelo que define campos, relações e regras.


Para consultores funcionais e programadores, dominar os modelos do Odoo é fundamental. São eles que desenham a arquitetura de dados: que campos existem, como as tabelas se relacionam e onde a lógica de negócio se aplica. O padrão de funcionamento é consistente entre modelos, o que facilita a aprendizagem e a extensão do sistema.


Este texto centra-se num dos modelos mais usados no Odoo: project.project. Quer esteja a configurar fluxos de trabalho, a integrar sistemas externos ou a desenvolver módulos à medida, é muito provável que venha a interagir com este modelo.

O que é o modelo project.project


O project.project representa um projeto dentro do Odoo — é a entidade que agrega tarefas, marcos e a equipa responsável. Cada projeto criado no sistema corresponde a um registo deste modelo.


O modelo é usado pela aplicação de Projetos: ao criar um projeto no Odoo está a criar um registo project.project. As tarefas ligam-se a esse projeto através da relação apropriada. O registo do projeto determina fases, membros da equipa e regras de visibilidade.


O núcleo do modelo está no módulo de Projectos e outros módulos complementam-no por herança. Por exemplo, o módulo de Vendas acrescenta faturação por projeto, o de Folhas de Tempo adiciona registo de horas, e o de Planeamento traz funcionalidades de Gantt. Cada extensão reutiliza a estrutura base sem duplicar lógica.


A relação entre project.project e project.task é essencial: o projeto define configurações partilhadas e contexto, enquanto a tarefa representa a unidade de trabalho. Juntos são a espinha dorsal do fluxo de trabalho de gestão de projetos no Odoo.

Campos principais do modelo


A seguir estão os campos mais relevantes do project.project. Conhecê-los facilita a configuração, filtragem e personalização dos seus projetos.


1. name

Tipo: Char. Guarda o nome do projeto — é o rótulo primário visível nas vistas e menus e serve como identificador legível para utilizadores.


2. create_date

Tipo: Datetime. Data e hora de criação do registo. Gerido automaticamente pelo Odoo, útil para auditoria e relatórios.


3. write_date

Tipo: Datetime. Data e hora da última alteração. Também gerido automaticamente e essencial para rastrear alterações.


4. active

Tipo: Boolean. Indicador de arquivamento. Quando falso, o projeto fica oculto nas vistas por defeito mas não é eliminado da base de dados.


5. sequence

Tipo: Integer. Determina a ordem de apresentação em listas e seletores; valores mais baixos são mostrados primeiro.


6. color

Tipo: Integer. Índice de cor usado em vistas kanban e listas para distinguir visualmente projetos.


7. user_id

Tipo: Many2one (res.users). Gestor do projeto — o utilizador responsável que costuma aparecer como responsável padrão nas tarefas.


8. company_id

Tipo: Many2one (res.company). Em ambientes multi-empresa indica a que empresa pertence o projeto.


9. partner_id

Tipo: Many2one (res.partner). Cliente associado ao projeto — importante para faturação e relatórios por cliente.


10. description

Tipo: Html. Descrição detalhada do projeto; permite formatação para briefs, notas e instruções.


11. date_start

Tipo: Date. Data de início prevista do projeto, usada em planeamento e relatórios cronológicos.


12. date

Tipo: Date. Data de conclusão ou prazo do projeto, usada para acompanhar entregas.


13. task_ids

Tipo: One2many (project.task). Lista das tarefas associadas — é a ligação principal entre projeto e tarefas.


14. task_count

Tipo: Integer. Contador de tarefas calculado a partir de task_ids; útil para visualização rápida e filtros.


15. type_ids

Tipo: Many2many (project.task.type). As fases ou tipos de tarefa do projeto — definem o fluxo (por exemplo: Por Fazer, Em Curso, Concluído).


16. tag_ids

Tipo: Many2many (project.tags). Etiquetas para categorizar projetos, facilitando pesquisas e filtros.


17. privacy_visibility

Tipo: Selection. Controla visibilidade: apenas utilizadores convidados, todos os utilizadores internos, ou público (inclui utilizadores de portal convidado).


18. collaborator_ids

Tipo: One2many (project.collaborator). Membros da equipa atribuídos ao projeto — define quem pode trabalhar nele.


19. favorite_user_ids

Tipo: Many2many (res.users). Utilizadores que marcaram o projeto como favorito — ajuda ao acesso rápido no painel.


20. allow_task_dependencies

Tipo: Boolean. Permite ligar tarefas entre si como predecessoras/sucessoras — relevante para planeamento e dependências.


21. allow_milestones

Tipo: Boolean. Ativa a criação de milestones no projeto — pontos-chave que sinalizam entregas importantes.


22. milestone_ids

Tipo: One2many (project.milestone). Lista de milestones do projeto, usada para acompanhar marcos do cronograma.


23. rating_active

Tipo: Boolean. Permite que clientes avaliem o projeto, útil para recolha de feedback.


24. task_properties_definition

Tipo: Text (JSON). Definições de propriedades personalizadas para tarefas — permite adicionar campos específicos por projeto.


25. access_url

Tipo: Char. URL público para acesso ao projeto via portal — usado em colaboração com clientes.


26. access_token

Tipo: Char. Token de segurança para o link do portal, garantindo que apenas quem tem autorização aceda.


27. alias_id

Tipo: Many2one (mail.alias). Alias de e-mail do projeto — mensagens recebidas podem gerar tarefas automaticamente.


28. activity_ids

Tipo: One2many (mail.activity). Atividades agendadas ligadas ao projeto — usadas para follow-ups e lembretes.


29. activity_state

Tipo: Selection. Estado resumo das atividades: Hoje, Atrasadas ou Planeadas — calculado a partir de activity_ids.


30. activity_date_deadline

Tipo: Date. Data da próxima atividade agendada, importante para planeamento operacional.


31. message_ids

Tipo: One2many (mail.message). Mensagens do chatter associadas ao projeto — central para comunicação interna.


32. message_follower_ids

Tipo: One2many (mail.followers). Utilizadores que seguem o projeto e recebem notificações.


33. create_uid

Tipo: Many2one (res.users). Utilizador que criou o registo — definido automaticamente pelo Odoo.


34. write_uid

Tipo: Many2one (res.users). Utilizador que modificou o registo por último — também definido automaticamente.

Como este modelo se encaixa nos processos empresariais


1. Criação e gestão de projetos

Quando um gestor ou comercial cria um projeto, define nome, gestor, prazos e regras de visibilidade. O registo do modelo armazena essas definições e, a seguir, são acrescentadas tarefas que ficam ligadas ao projeto.


2. Fluxo de tarefas

As tarefas transitam pelas fases definidas em type_ids. O gestor atribui tarefas aos colaboradores e configura o fluxo de trabalho e responsabilidades a nível do projeto.


3. Portal do cliente

Se a visibilidade permitir acesso via portal, os clientes conseguem ver tarefas e milestones através do access_url, protegido pelo access_token. É uma funcionalidade útil para projetos com colaboração externa.


4. Folhas de tempo e faturação

Com o módulo de Folhas de Tempo, as entradas de tempo ligam-se ao projeto; com Vendas, pode associar projetos a encomendas para faturação por projeto. O partner_id mantém a ligação ao cliente para efeitos contabilísticos.


5. Integração por e-mail

E-mails enviados para o alias do projeto podem criar tarefas automaticamente. A configuração do alias_id permite automatizar a captura de trabalho originado por mensagens.

Como os programadores estendem este modelo


Os programadores estendem project.project usando padrões do Odoo, com a herança de modelos como mecanismo central.


Herança de modelo

Para estender, declare que a sua classe herda de project.project em vez de alterar o ficheiro original. Assim adiciona campos, sobrescreve métodos ou impõe restrições mantendo o núcleo intacto — prática que facilita atualizações e manutenção.


Adicionar campos

Adicione campos no módulo de extensão usando tipos apropriados (Char, Many2one, Boolean, Integer, Text, Selection). Em ambientes multi-empresa, considere campos dependentes de company_id para evitar inconsistências.


Extensões em Python

Sobrescreva métodos como create, write ou unlink para inserir lógica adicional, usando super() para não interromper o comportamento base. Preste atenção a campos calculados e às suas dependências para evitar erros de consistência.


Odoo Studio

O Odoo Studio permite criar campos e vistas sem código — prático para personalizações rápidas. Para lógica complexa e evolução a longo prazo, preferem-se módulos personalizados porque são mais resilientes a upgrades.

Boas práticas


  • Defina claro o user_id para responsabilizar gestores. Atribuição explícita facilita rastreio e governança.
  • Configure type_ids por projeto para garantir que as fases reflitam os seus processos reais.
  • Use privacy_visibility corretamente para proteger dados sensíveis — projetos privados devem limitar o acesso a seguidores e administradores.
  • Ao integrar via API, prefira XML-RPC ou JSON-RPC e mapeie cuidadosamente os IDs externos. O projecto project.project está disponível na API e é seguro integrá-lo desde que faça validações adequadas.
  • Para campos personalizados, utilize prefixos como x_ ou o prefixo do seu módulo para evitar colisões com campos que o Odoo possa introduzir em versões futuras.

Erros frequentes


  • Criar tarefas sem as ligar a um projeto. Uma tarefa isolada sem project_id perde contexto e pode quebrar relatórios e regras de acesso.
  • Não definir type_ids. Projetos sem fases tornam o fluxo de tarefas inutilizável e complicam a gestão de progresso.
  • Configurar privacy_visibility como público quando devia ser privado. Isso pode expor informação sensível a utilizadores não autorizados.
  • Sobrescrever métodos do core sem chamar super(). Esse erro pode causar incompatibilidades com outros módulos e dificultar atualizações.
  • Adicionar campos obrigatórios sem valores por defeito. Isso causa falhas em registros existentes quando o módulo é instalado ou atualizado.

Conclusão


O model project.project é o ponto central da gestão de projetos no Odoo: armazena definições do projeto, fases de trabalho e a estrutura da equipa. Saber quais os campos importantes e como o modelo é estendido por módulos facilita configurar, personalizar e integrar o Odoo conforme as necessidades da empresa.


Seja a sua função configurar projetos como consultor funcional ou desenvolver módulos como programador, dominar project.project reduz retrabalho e diminui riscos de implantação.

Precisa de ajuda com a sua implementação Odoo?


A Dasolo apoia empresas na implementação, personalização e otimização do Odoo. Temos experiência em integrações via API e desenvolvimento de módulos, com conhecimento profundo da arquitetura de dados e modelos como project.project.


Se precisa de apoio na sua implementação Odoo, no desenvolvimento de módulos à medida ou em integrações, podemos ajudar. Agende uma demonstração para conversar sobre o seu projeto.

Modelo project.project: Como Funciona a Arquitetura de Project no Odoo
Dasolo 11 de março de 2026
Compartilhar esta publicação
Iniciar sessão para deixar um comentário