diff --git a/addons/sale/controllers/portal.py b/addons/sale/controllers/portal.py index 3d662c016fc..36bd0c4fa27 100644 --- a/addons/sale/controllers/portal.py +++ b/addons/sale/controllers/portal.py @@ -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