Skip to content

Commit

Permalink
Add filtering persistence to order pagination in portal
Browse files Browse the repository at this point in the history
Ensure the "filterby" parameter is retained across order pagination to maintain user-selected filters. Introduced `_prepare_sale_portal_rendering_values` and `fix_pager_filer` methods to handle filter propagation on pagination links.
  • Loading branch information
dhongu committed Jan 17, 2025
1 parent 81ca407 commit 762aab4
Showing 1 changed file with 31 additions and 0 deletions.
31 changes: 31 additions & 0 deletions deltatech_website_sale_status/controllers/portal.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,40 @@ def _prepare_orders_domain(self, partner):
@http.route()
def portal_my_orders(self, page=1, date_begin=None, date_end=None, sortby=None, filterby=None, **kw):
request.update_context(show_order_fiter=True)
if not filterby:
filterby = "all"
result = super().portal_my_orders(
page=page, date_begin=date_begin, date_end=date_end, sortby=sortby, filterby=filterby, **kw
)

result.qcontext["filterby"] = request.params.get("filterby", "all")
return result

def _prepare_sale_portal_rendering_values(
self, page=1, date_begin=None, date_end=None, sortby=None, quotation_page=False, **kwargs
):
filterby = kwargs.get("filterby", "all")
if not filterby:
filterby = "all"
kwargs["filterby"] = filterby

values = super()._prepare_sale_portal_rendering_values(
page=page, date_begin=date_begin, date_end=date_end, sortby=sortby, quotation_page=quotation_page, **kwargs
)

values["filterby"] = filterby
values["pager"] = self.fix_pager_filer(values["pager"], filterby)

return values

def fix_pager_filer(self, pager, filterby):
pager["page"]["url"] = pager["page"]["url"] + "&filterby=" + filterby
pager["page_first"]["url"] = pager["page_first"]["url"] + "&filterby=" + filterby
pager["page_start"]["url"] = pager["page_start"]["url"] + "&filterby=" + filterby
pager["page_previous"]["url"] = pager["page_previous"]["url"] + "&filterby=" + filterby
pager["page_next"]["url"] = pager["page_next"]["url"] + "&filterby=" + filterby
pager["page_end"]["url"] = pager["page_end"]["url"] + "&filterby=" + filterby
pager["page_last"]["url"] = pager["page_last"]["url"] + "&filterby=" + filterby
for page in pager["pages"]:
page["url"] = page["url"] + "&filterby=" + filterby
return pager

0 comments on commit 762aab4

Please sign in to comment.