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.pylintrcespecí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_readem vez desearch+read. - Atenue pré-buscas (
prefetch) ajustandolimiteorder.
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 shellpara 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-odooe 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!