Files
suite/rma_sale/controllers/portal.py
2021-10-07 20:25:55 +00:00

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