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.
- Pylint-Odoo
Configure um.pylintrc
específico para Odoo:ini load-plugins=pylint_odoo disable=missing-docstring,invalid-name
- 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 desearch
+read
. - Atenue pré-buscas (
prefetch
) ajustandolimit
eorder
.
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:
- No GitLab CI / GitHub Actions, instale dependências, corra
pylint
,pytest-odoo
e gere relatórios. - Após aprovação, push automático para branch de produção.
- 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!