Pular para o conteúdo
Skillpedia
Sites e telas (frontend)48 mil · #3735

odoo-qweb-templates

Ajuda seu agente a criar relatórios e páginas web no Odoo. Ele usa um sistema de templates para gerar documentos e emails.

O que ela faz

Esta ferramenta ajuda a criar modelos de documentos (como faturas em PDF, e-mails e páginas de site) para o sistema Odoo. Ela gera o código necessário para exibir informações de forma organizada e dinâmica.

Quando usar

  • ✓Criar um novo relatório em PDF personalizado.
  • ✓Desenvolver um modelo de e-mail automático.
  • ✓Adicionar conteúdo dinâmico a uma página do site.

Exemplo do que pedir para a IA

“Crie um modelo QWeb para uma fatura em PDF que mostre o nome do cliente e o total.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/odoo-qweb-templates/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/odoo-qweb-templates/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Você descreve o documento que precisa (relatório, e-mail ou página). A ferramenta gera o código QWeb e as configurações necessárias para que o Odoo o utilize.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill odoo-qweb-templates

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/odoo-qweb-templates/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Modelos QWeb do Odoo

Visão Geral

QWeb é o principal motor de templates do Odoo, usado para relatórios em PDF, páginas de sites e modelos de e-mail. Esta habilidade gera XML QWeb correto e bem estruturado com diretivas apropriadas, suporte a tradução e vinculações de ações de relatório.

Quando Usar Esta Habilidade

  • Criar um relatório PDF personalizado (fatura, comprovante de entrega, certificado).
  • Construir um modelo de e-mail QWeb acionado por ações de fluxo de trabalho.
  • Projetar páginas de sites do Odoo com conteúdo dinâmico.
  • Depurar erros de renderização QWeb (problemas t-if, t-foreach).

Como Funciona

  1. Ativar: Mencione @odoo-qweb-templates e descreva o relatório ou template necessário.
  2. Gerar: Receba um registro ir.actions.report completo e um template QWeb.
  3. Depurar: Cole um template com defeito para identificar e corrigir problemas de renderização.

Exemplos

Exemplo 1: Relatório PDF Personalizado

<!-- Report Action -->
<record id="action_report_patient_card" model="ir.actions.report">
    <field name="name">Patient Card</field>
    <field name="model">hospital.patient</field>
    <field name="report_type">qweb-pdf</field>
    <field name="report_name">hospital_management.report_patient_card</field>
    <field name="binding_model_id" ref="model_hospital_patient"/>
</record>

<!-- QWeb Template -->
<template id="report_patient_card">
    <t t-call="web.html_container">
        <t t-foreach="docs" t-as="doc">
            <t t-call="web.external_layout">
                <div class="page">
                    <h2>Patient Card</h2>
                    <table class="table table-bordered">
                        <tr>
                            <td><strong>Name:</strong></td>
                            <td><t t-field="doc.name"/></td>
                        </tr>
                        <tr>
                            <td><strong>Doctor:</strong></td>
                            <td><t t-field="doc.doctor_id.name"/></td>
                        </tr>
                        <tr>
                            <td><strong>Status:</strong></td>
                            <td><t t-field="doc.state"/></td>
                        </tr>
                    </table>
                </div>
            </t>
        </t>
    </t>
</template>

Exemplo 2: Renderização Condicional

<!-- Show a warning block only if the patient is not confirmed -->
<t t-if="doc.state == 'draft'">
    <div class="alert alert-warning">
        <strong>Warning:</strong> This patient has not been confirmed yet.
    </div>
</t>

Melhores Práticas

  • ✅ Faça: Use t-field para campos de modelo — Odoo formata automaticamente datas, valores monetários e booleanos corretamente.
  • ✅ Faça: Use t-out (Odoo 15+) para saída HTML segura de strings que não são campos. Use t-esc apenas no Odoo 14 e versões anteriores (ele escapa o HTML da saída).
  • ✅ Faça: Chame web.external_layout para relatórios PDF para incluir automaticamente o cabeçalho, rodapé e logotipo da empresa.
  • ✅ Faça: Use _lt() (tradução preguiçosa) para literais de string traduzíveis dentro de helpers de relatório Python, não inline t-esc.
  • ❌ Não faça: Use expressões Python brutas dentro do QWeb — calcule valores no modelo ou em um helper de relatório _get_report_values().
  • ❌ Não faça: Esqueça t-as ao usar t-foreach; sem ele, você não pode acessar o registro atual no corpo do loop.
  • ❌ Não faça: Use t-esc onde você pretende renderizar conteúdo HTML — ele escapará as tags e as imprimirá como texto bruto.

Limitações

  • Não cobre roteamento de controladores de site para páginas QWeb dinâmicas — isso requer conhecimento de http.route Python.
  • O QWeb de modelo de e-mail tem um escopo de variável diferente do QWeb de relatório (object vs docs) — esta habilidade foca principalmente em relatórios PDF.
  • O JavaScript QWeb (usado em widgets Kanban/Form) é um motor diferente; esta habilidade cobre apenas QWeb do lado do servidor.
  • Não cobre a configuração do wkhtmltopdf para problemas de renderização de PDF (tamanho da página, margens, sobreposição de cabeçalho/rodapé).
Perguntas frequentes

O que é QWeb?

QWeb é a linguagem que o Odoo usa para criar modelos de documentos, como relatórios em PDF e e-mails, permitindo que informações sejam exibidas de forma dinâmica.

O que são 'diretivas' como t-if e t-foreach?

São comandos especiais no QWeb que controlam como o conteúdo é exibido. Por exemplo, 't-if' mostra algo apenas se uma condição for verdadeira, e 't-foreach' repete um bloco de conteúdo para cada item em uma lista.

Posso usar isso para qualquer tipo de documento no Odoo?

Principalmente para relatórios em PDF, modelos de e-mail e páginas de site. Não cobre a parte de programação Python para páginas web complexas ou configurações de impressão de PDF.

Detalhes

Descrição original do autor

Expert in Odoo QWeb templating for PDF reports, email templates, and website pages. Covers t-if, t-foreach, t-field, and report actions.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#3735
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas