[FIX] sale: allow overriding portal domain

Before this commit the only way to modify the domain is to completely override portal_my_quotes/portal_my_orders.
Since this function is so big this is not clean/easy to do.
By creating a separate function we can simply override it and we can reuse the same domain in two places.

closes odoo/odoo#84886

X-original-commit: ff50844da0e4423372746e767f482a2a71148be4
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
This commit is contained in:
root
2022-02-18 14:29:13 +00:00
committed by Yannick Tivisse
parent 61f429c274
commit c33419cfd2
+18 -16
View File
@@ -23,18 +23,26 @@ class CustomerPortal(portal.CustomerPortal):
SaleOrder = request.env['sale.order']
if 'quotation_count' in counters:
values['quotation_count'] = SaleOrder.search_count([
('message_partner_ids', 'child_of', [partner.commercial_partner_id.id]),
('state', 'in', ['sent', 'cancel'])
]) if SaleOrder.check_access_rights('read', raise_exception=False) else 0
values['quotation_count'] = SaleOrder.search_count(self._prepare_quotations_domain(partner)) \
if SaleOrder.check_access_rights('read', raise_exception=False) else 0
if 'order_count' in counters:
values['order_count'] = SaleOrder.search_count([
('message_partner_ids', 'child_of', [partner.commercial_partner_id.id]),
('state', 'in', ['sale', 'done'])
]) if SaleOrder.check_access_rights('read', raise_exception=False) else 0
values['order_count'] = SaleOrder.search_count(self._prepare_orders_domain(partner)) \
if SaleOrder.check_access_rights('read', raise_exception=False) else 0
return values
def _prepare_quotations_domain(self, partner):
return [
('message_partner_ids', 'child_of', [partner.commercial_partner_id.id]),
('state', 'in', ['sent', 'cancel'])
]
def _prepare_orders_domain(self, partner):
return [
('message_partner_ids', 'child_of', [partner.commercial_partner_id.id]),
('state', 'in', ['sale', 'done'])
]
#
# Quotations and Sales Orders
#
@@ -52,10 +60,7 @@ class CustomerPortal(portal.CustomerPortal):
partner = request.env.user.partner_id
SaleOrder = request.env['sale.order']
domain = [
('message_partner_ids', 'child_of', [partner.commercial_partner_id.id]),
('state', 'in', ['sent', 'cancel'])
]
domain = self._prepare_quotations_domain(partner)
searchbar_sortings = self._get_sale_searchbar_sortings()
# default sortby order
@@ -97,10 +102,7 @@ class CustomerPortal(portal.CustomerPortal):
partner = request.env.user.partner_id
SaleOrder = request.env['sale.order']
domain = [
('message_partner_ids', 'child_of', [partner.commercial_partner_id.id]),
('state', 'in', ['sale', 'done'])
]
domain = self._prepare_orders_domain(partner)
searchbar_sortings = self._get_sale_searchbar_sortings()
# default sortby order