Odoo: Dicas e Truques Avançados para Desenvolvedores e Ad...

23 de abril de 2025 por
Odoo: Dicas e Truques Avançados para Desenvolvedores e Ad...
Opencloud - 509851380, Ricardo Martins

Odoo: Dicas e Truques Avançados para Desenvolvedores e Administradores

O Odoo é uma plataforma flexível e poderosa, mas há sempre espaço para “atalhos” e boas práticas que aumentam a produtividade, melhoram a performance e facilitam a manutenção. Neste artigo, vamos partilhar dicas técnicas e truques pouco divulgados, desde a criação rápida de módulos até ao cálculo de somas em campos computados, passando por pipelines de integração contínua. Pronto para otimizar o seu Odoo?


1. Otimizar o Fluxo de Criação de Módulos

Ponto de partida: o comando scaffold do próprio Odoo gera a estrutura base de um módulo em segundos.

```bash

No directório de addons

odoo-bin scaffold nome_do_modulo addons/ ```

Benefícios: - Templates de ficheiros (__init__.py, __manifest__.py, pastas de views e security). - Consistência entre módulos. - Foco imediato na lógica de negócio.

Dica SEO: inclua no manifest campos como depends, data e demo para clarificar dependências e acelerar testes.


2. Automatizar Qualidade de Código

Manter código limpo e padronizado reduz bugs e acelera code reviews.

  1. Pylint-Odoo
    Configure um .pylintrc específico para Odoo: ini load-plugins=pylint_odoo disable=missing-docstring,invalid-name
  2. Black & isort
    Automatize formatação e ordenação de imports: bash black . --line-length 100 isort .

Integre estas ferramentas num pre-commit hook para garantir que cada push cumpre as regras.


3. Melhorar Performance de Views e Consultas

3.1 Campos Computados com Store

Ao definir um campo computado, o parâmetro store=True gera colunas SQL, evitando recomputações em cada leitura.

```python from odoo import api, fields, models

class SaleOrder(models.Model): _inherit = 'sale.order'

total_products = fields.Float(
    string='Total Produtos',
    compute='_compute_total_products',
    store=True
)

@api.depends('order_line.price_subtotal')
def _compute_total_products(self):
    for order in self:
        order.total_products = sum(
            line.price_subtotal for line in order.order_line
        )

```

3.2 Limitar o Volume de Dados

  • Use domínios (domain) e search_read em vez de search + read.
  • Atenue pré-buscas (prefetch) ajustando limit e order.

4. Somar Valores dentro de uma Célula (QWeb)

Para relatórios em PDF, é comum somar valores diretamente na view. Exemplo num template QWeb:

```xml
Total Geral:

```

Desta forma, a soma acumula linha a linha sem recorrer a código Python extra.


5. Ferramentas de Debug e Logging

  • Execute odoo-bin shell para testar métodos isoladamente, inspecionar modelos e simular ambientes.
  • No ficheiro odoo.conf, defina níveis de logging: ini [options] log_level = info log_handler = :INFO,werkzeug:WARNING logfile = /var/log/odoo/odoo.log
  • Utilize import pdb; pdb.set_trace() em funções críticas para breakpoints em execução.

6. Integração Contínua (CI/CD) para Módulos Odoo

Automatize testes e deploy:

  1. No GitLab CI / GitHub Actions, instale dependências, corra pylint, pytest-odoo e gere relatórios.
  2. Após aprovação, push automático para branch de produção.
  3. Use containers Docker para isolar versões de Odoo e addons.

7. Conclusão & Próximos Passos

Estas dicas e truques visam elevar a sua eficiência diária no desenvolvimento e administração do Odoo. Se pretende uma implementação profissional, suporte contínuo ou formação especializada, a equipa da OpenCloud está pronta a ajudar.
Visite www.opencloud.pro para descobrir como podemos impulsionar o seu ERP, otimizar processos e garantir uma solução escalável e fiável.

Está preparado para levar o seu Odoo ao nível seguinte? Entre em contacto connosco e agende uma demonstração gratuita!


Read Next