Hello everyone, it is possible to add 2 filters to the web portal similar to modulo(portal) --> portal_searchbar -> searchbar_filters. Do you know how I can add so that I filter through both filters?
V14
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- CRM
- e-Commerce
- Akuntansi
- Inventaris
- PoS
- Project
- MRP
Pertanyaan ini telah diberikan tanda
Yes, in Odoo 14 , it's absolutely possible to add multiple filters (like a dropdown for status + date range or category) to the Portal view using portal_searchbar . You'll just need to extend the controller and the template logic properly.
Extend Controller
Inherit and override the web.controllers.portal method serving your portal page:
from odoo import http
from odoo.http import request
from odoo.addons.portal.controllers.portal import CustomerPortal
class CustomPortal(CustomerPortal):
@http.route(['/my/records'], type='http', auth="user", website=True)
def portal_my_records(self, **kwargs):
# Extract filters
filter_state = kwargs.get('filter_state', 'all')
filter_type = kwargs.get('filter_type', 'all')
domain = []
if filter_state != 'all':
domain += [('state', '=', filter_state)]
if filter_type != 'all':
domain += [('type', '=', filter_type)]
records = request.env['your.model'].sudo().search(domain)
values = {
'records': records,
'filter_state': filter_state,
'filter_type': filter_type,
'searchbar_filters_state': {
'all': 'All Status',
'draft': 'Draft',
'done': 'Done',
},
'searchbar_filters_type': {
'all': 'All Types',
'internal': 'Internal',
'external': 'External',
}
}
return request.render("your_module.portal_my_records_template", values)
Modify Portal Template:
In your portal_my_records_template.xml:
<t t-call="portal.portal_layout">
<div class="o_portal_searchbar_form">
<form method="get">
<select name="filter_state">
<t t-foreach="searchbar_filters_state.items()" t-as="filter">
<option t-att-value="filter[0]" t-att-selected="filter[0] == filter_state and 'selected' or None">
<t t-esc="filter[1]"/>
</option>
</t>
</select>
<select name="filter_type">
<t t-foreach="searchbar_filters_type.items()" t-as="filter">
<option t-att-value="filter[0]" t-att-selected="filter[0] == filter_type and 'selected' or None">
<t t-esc="filter[1]"/>
</option>
</t>
</select>
<button type="submit">Filter</button>
</form>
</div>
<!-- Your table showing the filtered records -->
</t>
i hope it is use full
Hi,
Refer to the following blog that explains how we can add the filter in the Odoo customer portal.
* https://www.cybrosys.com/blog/how-to-add-a-filter-option-in-odoo-18-website-portal
Hope it helps
Menikmati diskusi? Jangan hanya membaca, ikuti!
Buat akun sekarang untuk menikmati fitur eksklufi dan agar terlibat dengan komunitas kami!
DaftarPost Terkait | Replies | Tampilan | Aktivitas | |
---|---|---|---|---|
|
1
Mei 24
|
2565 | ||
|
2
Feb 24
|
2111 | ||
|
0
Apr 23
|
1467 | ||
|
6
Feb 23
|
18232 | ||
[Quick Help] How to add more field in sigh up page ?
Diselesaikan
|
|
1
Nov 22
|
4645 |