mirror of
https://gitlab.com/hibou-io/hibou-odoo/suite.git
synced 2025-01-20 12:37:31 +02:00
54 lines
2.0 KiB
Python
54 lines
2.0 KiB
Python
# Part of Hibou Suite Professional. See LICENSE_PROFESSIONAL file for full copyright and licensing details.
|
|
|
|
from operator import itemgetter
|
|
|
|
import odoo.addons.rma.controllers.portal as rma_portal
|
|
from odoo.http import request
|
|
from odoo.tools.translate import _
|
|
from odoo.osv.expression import OR
|
|
from odoo.tools import groupby as groupbyelem
|
|
|
|
original_rma_portal_searchbar_filters = rma_portal.rma_portal_searchbar_filters
|
|
original_rma_portal_searchbar_inputs = rma_portal.rma_portal_searchbar_inputs
|
|
original_rma_portal_search_domain = rma_portal.rma_portal_search_domain
|
|
original_rma_portal_searchbar_groupby = rma_portal.rma_portal_searchbar_groupby
|
|
original_rma_portal_group_rmas = rma_portal.rma_portal_group_rmas
|
|
|
|
|
|
def rma_portal_searchbar_filters():
|
|
res = original_rma_portal_searchbar_filters()
|
|
res['sale'] = {'label': _('Sale Order'), 'domain': [('sale_order_id', '!=', False)]}
|
|
return res
|
|
|
|
|
|
def rma_portal_searchbar_inputs():
|
|
res = original_rma_portal_searchbar_inputs()
|
|
res['sale'] = {'input': 'sale', 'label': _('Search Sale Order')}
|
|
return res
|
|
|
|
|
|
def rma_portal_search_domain(search_in, search):
|
|
search_domain = original_rma_portal_search_domain(search_in, search)
|
|
if search_in in ('sale', 'all'):
|
|
search_domain = OR([search_domain, [('sale_order_id', 'ilike', search)]])
|
|
return search_domain
|
|
|
|
|
|
def rma_portal_searchbar_groupby():
|
|
res = original_rma_portal_searchbar_groupby()
|
|
res['sale'] = {'input': 'sale', 'label': _('Sale Order')}
|
|
return res
|
|
|
|
|
|
def rma_portal_group_rmas(rmas, groupby):
|
|
if groupby == 'sale':
|
|
return [request.env['rma.rma'].concat(*g) for k, g in groupbyelem(rmas, itemgetter('sale_order_id'))]
|
|
return original_rma_portal_group_rmas(rmas, groupby)
|
|
|
|
|
|
rma_portal.rma_portal_searchbar_filters = rma_portal_searchbar_filters
|
|
rma_portal.rma_portal_searchbar_inputs = rma_portal_searchbar_inputs
|
|
rma_portal.rma_portal_search_domain = rma_portal_search_domain
|
|
rma_portal.rma_portal_searchbar_groupby = rma_portal_searchbar_groupby
|
|
rma_portal.rma_portal_group_rmas = rma_portal_group_rmas
|