Skip to Content
Odoo Meniu
  • Autentificare
  • Try it free
  • Aplicații
    Finanțe
    • Contabilitate
    • Facturare
    • Cheltuieli
    • Spreadsheet (BI)
    • Documente
    • Semn
    Vânzări
    • CRM
    • Vânzări
    • POS Shop
    • POS Restaurant
    • Abonamente
    • Închiriere
    Site-uri web
    • Constructor de site-uri
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Lanț Aprovizionare
    • Inventar
    • Producție
    • PLM
    • Achiziție
    • Maintenance
    • Calitate
    Resurse Umane
    • Angajați
    • Recrutare
    • Time Off
    • Evaluări
    • Referințe
    • Flotă
    Marketing
    • Social Marketing
    • Marketing prin email
    • SMS Marketing
    • Evenimente
    • Automatizare marketing
    • Sondaje
    Servicii
    • Proiect
    • Foi de pontaj
    • Servicii de teren
    • Centru de asistență
    • Planificare
    • Programări
    Productivitate
    • Discuss
    • Aprobări
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Aplicații Terțe Odoo Studio Platforma Odoo Cloud
  • Industrii
    Retail
    • Book Store
    • Magazin de îmbrăcăminte
    • Magazin de Mobilă
    • Magazin alimentar
    • Magazin de materiale de construcții
    • Magazin de jucării
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Distribuitor de băuturi
    • Hotel
    Proprietate imobiliara
    • Real Estate Agency
    • Firmă de Arhitectură
    • Construcție
    • Estate Managament
    • Grădinărit
    • Asociația Proprietarilor de Proprietăți
    Consultanta
    • Firma de Contabilitate
    • Partener Odoo
    • Agenție de marketing
    • Law firm
    • Atragere de talente
    • Audit & Certification
    Producție
    • Textil
    • Metal
    • Mobilier
    • Mâncare
    • Brewery
    • Cadouri corporate
    Health & Fitness
    • Club Sportiv
    • Magazin de ochelari
    • Centru de Fitness
    • Wellness Practitioners
    • Farmacie
    • Salon de coafură
    Trades
    • Handyman
    • IT Hardware and Support
    • Asigurare socială de stat
    • Cizmar
    • Servicii de curățenie
    • HVAC Services
    Altele
    • Organizație nonprofit
    • Agenție de Mediu
    • Închiriere panouri publicitare
    • Fotografie
    • Închiriere biciclete
    • Asigurare socială
    Browse all Industries
  • Comunitate
    Învăță
    • Tutorials
    • Documentație
    • Certificări
    • Instruire
    • Blog
    • Podcast
    Empower Education
    • Program Educațional
    • Scale Up! Business Game
    • Visit Odoo
    Obține Software-ul
    • Descărcare
    • Compară Edițiile
    • Lansări
    Colaborați
    • Github
    • Forum
    • Evenimente
    • Translations
    • Devino Partener
    • Services for Partners
    • Înregistrează-ți Firma de Contabilitate
    Obține Servicii
    • Găsește un Partener
    • Găsiți un contabil
    • Meet an advisor
    • Servicii de Implementare
    • Referințe ale clienților
    • Suport
    • Actualizări
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Obține un demo
  • Prețuri
  • Ajutor

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

  • CRM
  • e-Commerce
  • Contabilitate
  • Inventar
  • PoS
  • Proiect
  • MRP
All apps
Trebuie să fiți înregistrat pentru a interacționa cu comunitatea.
All Posts Oameni Insigne
Etichete (View all)
odoo accounting v14 pos v15
Despre acest forum
Trebuie să fiți înregistrat pentru a interacționa cu comunitatea.
All Posts Oameni Insigne
Etichete (View all)
odoo accounting v14 pos v15
Despre acest forum
Suport

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

Abonare

Primiți o notificare când există activitate la acestă postare

Această întrebare a fost marcată
xmlpython2.7odoo10
2 Răspunsuri
2344 Vizualizări
Imagine profil
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
Imagine profil
Abandonează
Imagine profil
jhonnel
Autor Cel mai bun răspuns

Thank you very much for your answer.

0
Imagine profil
Abandonează
Imagine profil
Gracious Joseph
Cel mai bun răspuns

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
Imagine profil
Abandonează
Enjoying the discussion? Don't just read, join in!

Create an account today to enjoy exclusive features and engage with our awesome community!

Înscrie-te
Related Posts Răspunsuri Vizualizări Activitate
uncaught typeerror: cannot read properties of undefined (reading 'body') in odoo 10.
xml python2.7 odoo10
Imagine profil
0
feb. 25
2029
Add close button on pop up form view in odoo 10.
xml python2.7 odoo10
Imagine profil
0
iul. 24
1868
Displaying one2many field on the other model based on a condition in odoo 10.
xml python2.7 odoo10
Imagine profil
0
aug. 23
2428
Getting the text value of a text field with a html widget.
xml python2.7 odoo10
Imagine profil
0
mai 23
3903
Remove autosave on attachments when printing report in odoo 10.
xml python2.7 odoo10
Imagine profil
Imagine profil
Imagine profil
2
oct. 22
3024
Comunitate
  • Tutorials
  • Documentație
  • Forum
Open Source
  • Descărcare
  • Github
  • Runbot
  • Translations
Servicii
  • Hosting Odoo.sh
  • Suport
  • Actualizare
  • Custom Developments
  • Educație
  • Găsiți un contabil
  • Găsește un Partener
  • Devino Partener
Despre Noi
  • Compania noastră
  • Active de marcă
  • Contactați-ne
  • Locuri de muncă
  • Evenimente
  • Podcast
  • Blog
  • Clienți
  • Aspecte juridice • Confidențialitate
  • Securitate
الْعَرَبيّة 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 este o suită de aplicații de afaceri open source care acoperă toate nevoile companiei dvs.: CRM, comerț electronic, contabilitate, inventar, punct de vânzare, management de proiect etc.

Propunerea de valoare unică a Odoo este să fie în același timp foarte ușor de utilizat și complet integrat.

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