Overslaan naar inhoud
Odoo Menu
  • Aanmelden
  • Probeer het gratis
  • Apps
    Financiën
    • Boekhouding
    • Facturatie
    • Onkosten
    • Spreadsheet (BI)
    • Documenten
    • Ondertekenen
    Verkoop
    • CRM
    • Verkoop
    • Kassasysteem winkel
    • Kassasysteem Restaurant
    • Abonnementen
    • Verhuur
    Websites
    • Websitebouwer
    • E-commerce
    • Blog
    • Forum
    • Live Chat
    • E-learning
    Bevoorradingsketen
    • Voorraad
    • Productie
    • PLM
    • Inkoop
    • Onderhoud
    • Kwaliteit
    Personeelsbeheer
    • Werknemers
    • Werving & Selectie
    • Verlof
    • Evaluaties
    • Aanbevelingen
    • Wagenpark
    Marketing
    • Sociale media-marketing
    • E-mailmarketing
    • Sms-marketing
    • Evenementen
    • Marketingautomatisering
    • Enquêtes
    Diensten
    • Project
    • Urenstaten
    • Buitendienst
    • Helpdesk
    • Planning
    • Afspraken
    Productiviteit
    • Chat
    • Artificiële Intelligentie
    • IoT
    • VoIP
    • Kennis
    • WhatsApp
    Apps van derden Odoo Studio Odoo Cloud Platform
  • Bedrijfstakken
    Detailhandel
    • Boekhandel
    • kledingwinkel
    • Meubelwinkel
    • Supermarkt
    • Bouwmarkt
    • Speelgoedwinkel
    Horeca & Hospitality
    • Bar en café
    • Restaurant
    • Fastfood
    • Gastenverblijf
    • Drankenhandelaar
    • Hotel
    Vastgoed
    • Makelaarskantoor
    • Architectenbureau
    • Bouw
    • Vastgoedbeheer
    • Tuinieren
    • Vereniging van mede-eigenaren
    Consulting
    • Accountantskantoor
    • Odoo Partner
    • Marketingbureau
    • Advocatenkantoor
    • Talentenwerving
    • Audit & Certificering
    Productie
    • Textiel
    • Metaal
    • Meubels
    • Eten
    • Brouwerij
    • Relatiegeschenken
    Gezondheid & Fitness
    • Sportclub
    • Opticien
    • Fitnesscentrum
    • Wellness-medewerkers
    • Apotheek
    • Kapper
    Diensten
    • Klusjesman
    • IT-hardware & ondersteuning
    • Zonne-energiesystemen
    • Schoenmaker
    • Schoonmaakdiensten
    • HVAC-diensten
    Andere
    • Non-profitorganisatie
    • Milieuagentschap
    • Verhuur van Billboards
    • Fotograaf
    • Fietsleasing
    • Softwareverkoper
    Alle bedrijfstakken bekijken
  • Community
    Leren
    • Tutorials
    • Documentatie
    • Certificeringen
    • Training
    • Blog
    • Podcast
    Versterk het onderwijs
    • Onderwijsprogramma
    • Scale Up! Business Game
    • Odoo bezoeken
    Download de Software
    • Downloaden
    • Vergelijk edities
    • Releases
    Werk samen
    • Github
    • Forum
    • Evenementen
    • Vertalingen
    • Partner worden
    • Diensten voor partners
    • Registreer je accountantskantoor
    Diensten
    • Vind een partner
    • Vind een boekhouder
    • Een adviseur ontmoeten
    • Implementatiediensten
    • Klantreferenties
    • Ondersteuning
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Vraag een demo aan
  • Prijzen
  • Help
Je moet geregistreerd zijn om te kunnen communiceren met de community.
Alle posts Personen Badges
Labels (Bekijk alle)
odoo accounting v14 pos v15
Over dit forum
Je moet geregistreerd zijn om te kunnen communiceren met de community.
Alle posts Personen Badges
Labels (Bekijk alle)
odoo accounting v14 pos v15
Over dit forum
Help

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

Inschrijven

Ontvang een bericht wanneer er activiteit is op deze post

Deze vraag is gerapporteerd
xmlpython2.7odoo10
2 Antwoorden
3452 Weergaven
Avatar
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
Avatar
Annuleer
Avatar
jhonnel
Auteur Beste antwoord

Thank you very much for your answer.

0
Avatar
Annuleer
Avatar
Gracious Joseph
Beste antwoord

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
Avatar
Annuleer
Geniet je van het gesprek? Blijf niet alleen lezen, doe ook mee!

Maak vandaag nog een account aan om te profiteren van exclusieve functies en deel uit te maken van onze geweldige community!

Aanmelden
Gerelateerde posts Antwoorden Weergaven Activiteit
uncaught typeerror: cannot read properties of undefined (reading 'body') in odoo 10.
xml python2.7 odoo10
Avatar
0
feb. 25
2991
Add close button on pop up form view in odoo 10.
xml python2.7 odoo10
Avatar
0
jul. 24
2633
Displaying one2many field on the other model based on a condition in odoo 10.
xml python2.7 odoo10
Avatar
0
aug. 23
3197
Getting the text value of a text field with a html widget.
xml python2.7 odoo10
Avatar
0
mei 23
4804
Remove autosave on attachments when printing report in odoo 10.
xml python2.7 odoo10
Avatar
Avatar
Avatar
2
okt. 22
3894
Community
  • Tutorials
  • Documentatie
  • Forum
Open Source
  • Downloaden
  • Github
  • Runbot
  • Vertalingen
Diensten
  • Odoo.sh Hosting
  • Ondersteuning
  • Upgrade
  • Gepersonaliseerde ontwikkelingen
  • Onderwijs
  • Vind een boekhouder
  • Vind een partner
  • Partner worden
Over ons
  • Ons bedrijf
  • Merkelementen
  • Neem contact met ons op
  • Vacatures
  • Evenementen
  • Podcast
  • Blog
  • Klanten
  • Juridisch • Privacy
  • Beveiliging
الْعَرَبيّة 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 is een suite van open source zakelijke apps die aan al je bedrijfsbehoeften voldoet: CRM, E-commerce, boekhouding, inventaris, kassasysteem, projectbeheer, enz.

Odoo's unieke waardepropositie is om tegelijkertijd zeer gebruiksvriendelijk en volledig geïntegreerd te zijn.

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