Skip to Content
Odoo Menu
  • Zaloguj się
  • Wypróbuj za darmo
  • Aplikacje
    Finanse
    • Księgowość
    • Fakturowanie
    • Wydatki
    • Arkusz kalkulacyjny (BI)
    • Dokumenty
    • Podpisy
    Sprzedaż
    • CRM
    • Sprzedaż
    • PoS Sklep
    • PoS Restauracja
    • Subskrypcje
    • Wypożyczalnia
    Strony Internetowe
    • Kreator Stron Internetowych
    • eCommerce
    • Blog
    • Forum
    • Czat na Żywo
    • eLearning
    Łańcuch dostaw
    • Magazyn
    • Produkcja
    • PLM
    • Zakupy
    • Konserwacja
    • Jakość
    Zasoby Ludzkie
    • Pracownicy
    • Rekrutacja
    • Urlopy
    • Ocena pracy
    • Polecenia Pracownicze
    • Flota
    Marketing
    • Marketing Społecznościowy
    • E-mail Marketing
    • SMS Marketing
    • Wydarzenia
    • Automatyzacja Marketingu
    • Ankiety
    Usługi
    • Projekt
    • Ewidencja czasu pracy
    • Usługi Terenowe
    • Helpdesk
    • Planowanie
    • Spotkania
    Produktywność
    • Dyskusje
    • Zatwierdzenia
    • IoT
    • VoIP
    • Baza wiedzy
    • WhatsApp
    Aplikacje trzecich stron Studio Odoo Odoo Cloud Platform
  • Branże
    Sprzedaż detaliczna
    • Księgarnia
    • Sklep odzieżowy
    • Sklep meblowy
    • Sklep spożywczy
    • Sklep z narzędziami
    • Sklep z zabawkami
    Żywienie i hotelarstwo
    • Bar i Pub
    • Restauracja
    • Fast Food
    • Pensjonat
    • Dystrybutor napojów
    • Hotel
    Agencja nieruchomości
    • Agencja nieruchomości
    • Biuro architektoniczne
    • Budowa
    • Zarządzanie nieruchomościami
    • Ogrodnictwo
    • Stowarzyszenie właścicieli nieruchomości
    Doradztwo
    • Biuro księgowe
    • Partner Odoo
    • Agencja marketingowa
    • Kancelaria prawna
    • Agencja rekrutacyjna
    • Audyt i certyfikacja
    Produkcja
    • Tekstylia
    • Metal
    • Meble
    • Jedzenie
    • Browar
    • Prezenty firmowe
    Zdrowie & Fitness
    • Klub sportowy
    • Salon optyczny
    • Centrum fitness
    • Praktycy Wellness
    • Apteka
    • Salon fryzjerski
    Transakcje
    • Złota rączka
    • Wsparcie Sprzętu IT
    • Systemy energii słonecznej
    • Szewc
    • Firma sprzątająca
    • Usługi HVAC
    Inne
    • Organizacja non-profit
    • Agencja Środowiskowa
    • Wynajem billboardów
    • Fotografia
    • Leasing rowerów
    • Sprzedawca oprogramowania
    Przeglądaj wszystkie branże
  • Community
    Ucz się
    • Samouczki
    • Dokumentacja
    • Certyfikacje
    • Szkolenie
    • Blog
    • Podcast
    Pomóż w nauce innym
    • Program Edukacyjny
    • Scale Up! Gra biznesowa
    • Odwiedź Odoo
    Skorzystaj z oprogramowania
    • Pobierz
    • Porównaj edycje
    • Wydania
    Współpracuj
    • Github
    • Forum
    • Wydarzenia
    • Tłumaczenia
    • Zostań partnerem
    • Usługi dla partnerów
    • Zarejestruj swoją firmę rachunkową
    Skorzystaj z usług
    • Znajdź partnera
    • Znajdź księgowego
    • Spotkaj się z doradcą
    • Usługi wdrożenia
    • Opinie klientów
    • Wsparcie
    • Aktualizacje
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Zaplanuj demo
  • Cennik
  • Pomoc

Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:

  • CRM
  • e-Commerce
  • Księgowość
  • Zapasy
  • PoS
  • Projekt
  • MRP
All apps
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
Wszystkie posty Osoby Odznaki
Tagi (Zobacz wszystko)
odoo accounting v14 pos v15
O tym forum
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
Wszystkie posty Osoby Odznaki
Tagi (Zobacz wszystko)
odoo accounting v14 pos v15
O tym forum
Pomoc

Dynamic template call/embeding

Zaprenumeruj

Otrzymaj powiadomienie o aktywności w tym poście

To pytanie dostało ostrzeżenie
qwebtemplatesreportrenderrender_template
1 Odpowiedz
9799 Widoki
Awatar
Maxime MARAIS

Hi all,

I'm creating a module in order to print a invoice based on a template chosen dynamically and configured in the partner's information. Adding a field on partner model to define a template to use is achieved and works well. 

Now, I'm trying to connect both. The concept is to add a new template inheriting account.report_invoice_document with a low priority and, within this template, to call/embed a dynamically defined template by replacing all its <div class="page">.

This template could be something like the following (these examples do not work and cause an Internal Server Error when trying to print the invoice)

<odoo>
    <template id="custom_invoice_dynamic" inherit_id="account.report_invoice_document" priority="999">
        <xpath expr="//div[@class='page']" position="replace">
            <div class="page">
                <t t-call="get_template()"></t>
            </div>
        </xpath>
    </template>
</odoo>

or

<odoo>
    <template id="custom_invoice_dynamic" inherit_id="account.report_invoice_document" priority="999">
        <xpath expr="//div[@class='page']" position="replace">
            <div class="page">
                <t t-raw="get_template()"></t>
            </div>
        </xpath>
    </template>
</odoo>

With <t t-call="get_template()">, it fails, QWeb engine trying to find a template named "get_template()".

It seems I may have more luck with <t t-raw="get_template()"> as expressions enclosed into t-raw are interpreted.

I tried to define get_template in an AbstractModel, but this fails:

QWebException: 'NoneType' object is not callable Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/odoo/addons/base/ir/ir_qweb/qweb.py", line 315, in _compiled_fn
    return compiled(self, append, values, options, log)
  File "<template>", line 1, in template_account_report_invoice_document_1365
  File "<template>", line 3, in body_call_content_1364 TypeError: 'NoneType' object is not callable
Error to render compiling AST TypeError: 'NoneType' object is not callable Template: account.report_invoice_document Path: /templates/t/t/div/t Node: <t t-raw="get_template()"/>

The thing is I'm not very at ease with Odoo programming. I tried to understand the "Custom Reports" section in https://www.odoo.com/documentation/10.0/reference/reports.html but this documentation is not really clear to me. I miss something, for sure.

File : custom_invoice_report.py (imported through __init__.py)

from odoo import models, fields, api

class CustomInvoiceReport(models.AbstractModel):
    _name = "report.custom_invoice.custom_invoice_dynamic"
    _template = "custom_invoice.custom_invoice_dynamic"
    def get_template(self):
        # TEMPORARY RETURNS CONSTANT FOR DEVELOPMENT PURPOSE
        return 'custom_invoice.test'
    @api.multi
    def render_html(self, docids, data=None):
        report_obj = self.env['report']
        report = report_obj._get_report_from_name(self._template)
        docargs = {
            'get_template': self.get_template,
            'doc_ids': self._ids,
            'doc_model': report.model,
            'docs': self,
        }
        return report_obj.render(self._template, docargs)

Could someone help me, please? 

Thanks.

1
Awatar
Odrzuć
Awatar
salah BELHAMICHE
Najlepsza odpowiedź

There is an issue about that in v10 , check the following link: 

\https://github.com/odoo/odoo/issues/16641

0
Awatar
Odrzuć
Maxime MARAIS
Autor

Woh... Thanks for pointing this ! Do you know about a turn-around?

Podoba Ci się ta dyskusja? Dołącz do niej!

Stwórz konto dzisiaj, aby cieszyć się ekskluzywnymi funkcjami i wchodzić w interakcje z naszą wspaniałą społecznością!

Zarejestruj się
Powiązane posty Odpowiedzi Widoki Czynność
QWeb format text and field in same line Rozwiązane
qweb templates report odooV8
Awatar
Awatar
1
gru 23
19782
Error in creating a custom paperformat Rozwiązane
qweb templates report paperformat
Awatar
Awatar
1
sie 17
7497
Insert a pdf file/page into the qweb report view template
pdf view qweb templates report
Awatar
Awatar
Awatar
3
kwi 25
3200
Template Render Error Rozwiązane
error templates render render_template templatefallback
Awatar
1
sie 24
2608
How to set a page in landscape orientation in a portrait report template? (Odoo 16)
qweb templates report landscape odoo16
Awatar
Awatar
Awatar
2
maj 24
3669
Społeczność
  • Samouczki
  • Dokumentacja
  • Forum
Open Source
  • Pobierz
  • Github
  • Runbot
  • Tłumaczenia
Usługi
  • Hosting Odoo.sh
  • Wsparcie
  • Aktualizacja
  • Indywidualne rozwiązania
  • Edukacja
  • Znajdź księgowego
  • Znajdź partnera
  • Zostań partnerem
O nas
  • Nasza firma
  • Zasoby marki
  • Skontaktuj się z nami
  • Oferty pracy
  • Wydarzenia
  • Podcast
  • Blog
  • Klienci
  • Informacje prawne • Prywatność
  • Bezpieczeństwo Odoo
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk slovenščina Español (América Latina) Español ภาษาไทย Türkçe українська Tiếng Việt

Odoo to pakiet aplikacji biznesowych typu open source, które zaspokoją wszystkie potrzeby Twojej firmy: CRM, eCommerce, księgowość, inwentaryzacja, punkt sprzedaży, zarządzanie projektami itp.

Unikalną wartością Odoo jest to, że jest jednocześnie bardzo łatwe w użyciu i w pełni zintegrowane.

Website made with

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now