Przejdź do zawartości
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
    • Sztuczna inteligencja
    • IoT
    • VoIP
    • Wiedza
    • 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
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

Add edit button on print preview in odoo 10 qweb report.

Zaprenumeruj

Otrzymaj powiadomienie o aktywności w tym poście

To pytanie dostało ostrzeżenie
xmlpython2.7odoo10
2 Odpowiedzi
3450 Widoki
Awatar
jhonnel

Hi good day everyone!,


Hoping you are fine. I just want to ask on how can I add an edit button or how an odoo 10 report can be editable in print preview.


Thank you very much in advance.


Sincerely yours,

0
Awatar
Odrzuć
Awatar
jhonnel
Autor Najlepsza odpowiedź

Thank you very much for your answer.

0
Awatar
Odrzuć
Awatar
Gracious Joseph
Najlepsza odpowiedź

In Odoo 10, adding an "Edit" button to a QWeb report's print preview requires custom development because Odoo's QWeb reports are inherently designed to generate static PDF documents for printing or exporting. However, you can implement a solution by either embedding the "Edit" functionality into the report view or redirecting users to the form view of the record from which the report is generated.

Here’s how you can achieve this:

Option 1: Add an "Edit" Button to the HTML Web Preview

Odoo’s print preview before downloading or printing a PDF is rendered as HTML. You can inject an "Edit" button that redirects users back to the edit form of the record.

Steps:

  1. Locate the QWeb Template:
    • Find the report template in the custom module or Odoo's built-in addons. Typically, it is located in the views folder of the module and defined in an XML file.
    • For example, if your report is named "sale_order.report_saleorder_document," locate this template.
  2. Add the "Edit" Button in the QWeb Report: Add an "Edit" button at the top or desired location within the QWeb template.
    <t t-call="web.html_container">
        <t t-foreach="docs" t-as="doc">
            <div>
                <!-- Edit Button -->
                <button 
                    type="button" 
                    class="btn btn-primary" 
                    onclick="window.location.href='/web#id=%d&view_type=form&model=sale.order'" t-esc="doc.id">
                    Edit
                </button>
            </div>
        </t>
    </t>
    

    Explanation:

    • The button uses JavaScript to redirect the user back to the form view of the record.
    • Replace sale.order with the model name of the record the report is generated for.
  3. Add Logic to Make Button Conditional (Optional): If you want the "Edit" button to appear only for users with specific access rights:
    <t t-if="user.has_group('base.group_user')">
        <button type="button" class="btn btn-primary" onclick="...">Edit</button>
    </t>
    
  4. Reload the Report:
    • Restart your Odoo server.
    • Open the report and confirm the "Edit" button appears as expected.

Option 2: Make the Report Directly Editable

If you want to allow inline editing of certain fields directly in the report view, you can:

  1. Use JavaScript and CSS to render editable fields.
  2. Submit the edited data to the backend when saved.

Example Implementation:

  1. Add Editable Fields in QWeb:
    <div contenteditable="true" data-field="customer_name" data-id="t-esc="doc.id">
        <t t-esc="doc.partner_id.name"/>
    </div>
    
  2. Save Changes via JavaScript: Add a button to save the changes and send them to the server:
    <button onclick="saveChanges()">Save</button>
    <script>
        function saveChanges() {
            var data = document.querySelector('[data-field="customer_name"]').innerText;
            var recordId = document.querySelector('[data-field="customer_name"]').dataset.id;
            fetch('/save/field', {
                method: 'POST',
                body: JSON.stringify({ id: recordId, field: 'partner_id', value: data }),
                headers: { 'Content-Type': 'application/json' },
            }).then(response => {
                if (response.ok) alert('Saved successfully!');
            });
        }
    </script>
    
  3. Implement Backend Logic: Create a controller in Odoo to handle the data submission.
    from odoo import http
    from odoo.http import request
    
    class ReportController(http.Controller):
        @http.route('/save/field', type='json', auth='user')
        def save_field(self, **kwargs):
            record = request.env['sale.order'].browse(kwargs.get('id'))
            if record.exists():
                record.write({kwargs.get('field'): kwargs.get('value')})
            return {'status': 'success'}
    

Option 3: Redirect Users from the Report Action

Add an "Edit" button outside the report preview (e.g., in the action menu).

Steps:

  1. Create a new server action to redirect users back to the record's form view.
  2. Use Python code to trigger this action.

Considerations

  1. Security:
    • Ensure that only authorized users can edit records.
    • Validate inputs on the server-side to prevent malicious data submissions.
  2. User Experience:
    • If you’re embedding editable fields directly in the report, ensure they are intuitive and responsive.
  3. Customization Limitation:
    • For heavily customized reports, consider building a custom widget for in-place editing.

By following these methods, you can add an "Edit" button or make the report preview editable in Odoo 10. Let me know if you need further guidance or specific implementation details!

0
Awatar
Odrzuć
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ść
uncaught typeerror: cannot read properties of undefined (reading 'body') in odoo 10.
xml python2.7 odoo10
Awatar
0
lut 25
2989
Add close button on pop up form view in odoo 10.
xml python2.7 odoo10
Awatar
0
lip 24
2633
Displaying one2many field on the other model based on a condition in odoo 10.
xml python2.7 odoo10
Awatar
0
sie 23
3197
Getting the text value of a text field with a html widget.
xml python2.7 odoo10
Awatar
0
maj 23
4802
Remove autosave on attachments when printing report in odoo 10.
xml python2.7 odoo10
Awatar
Awatar
Awatar
2
paź 22
3892
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 Svenska ภาษาไทย 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