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,
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
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,
Thank you very much for your answer.
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:
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.
<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>
<t t-if="user.has_group('base.group_user')"> <button type="button" class="btn btn-primary" onclick="...">Edit</button> </t>
If you want to allow inline editing of certain fields directly in the report view, you can:
<div contenteditable="true" data-field="customer_name" data-id="t-esc="doc.id"> <t t-esc="doc.partner_id.name"/> </div>
<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>
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'}
Add an "Edit" button outside the report preview (e.g., in the action menu).
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!
Create an account today to enjoy exclusive features and engage with our awesome community!
Sign upRelated Posts | Replies | Views | Activity | |
---|---|---|---|---|
|
0
Feb 25
|
516 | ||
|
0
Jul 24
|
722 | ||
|
0
Aug 23
|
1121 | ||
|
0
May 23
|
2391 | ||
|
2
Oct 22
|
1708 |