From 73cff705c49139c96fc397cae45d31f69e99f000 Mon Sep 17 00:00:00 2001 From: A R R R Associates Date: Sun, 19 Jul 2026 08:27:18 +0530 Subject: [PATCH] Fix empty category filter in service catalogue pagination --- .../templates/services/catalogue_list.html | 10 +++++----- app/modules/services/ui.py | 14 ++++++++++++-- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/app/modules/services/templates/services/catalogue_list.html b/app/modules/services/templates/services/catalogue_list.html index 7d9714a..a3b4855 100644 --- a/app/modules/services/templates/services/catalogue_list.html +++ b/app/modules/services/templates/services/catalogue_list.html @@ -137,7 +137,7 @@
- + {% if category_id %}{% endif %} @@ -150,7 +150,7 @@ {% if first_page > 1 %} - + {% if category_id %}{% endif %}
{% if first_page > 2 %}{% endif %} @@ -159,7 +159,7 @@ {% for page_number in range(first_page, last_page + 1) %}
- + {% if category_id %}{% endif %} @@ -171,14 +171,14 @@ {% if last_page < pages %} {% if last_page < pages - 1 %}{% endif %} - + {% if category_id %}{% endif %}
{% endif %}
- + {% if category_id %}{% endif %} diff --git a/app/modules/services/ui.py b/app/modules/services/ui.py index 732afd2..cf4dde6 100644 --- a/app/modules/services/ui.py +++ b/app/modules/services/ui.py @@ -288,7 +288,17 @@ def category_edit_submit(request: Request, category_id: int, name: str = Form(.. @router.get('/catalogue') -def catalogue_list(request: Request, q: str = '', category_id: int | None = None, recurrence_type: str = '', engagement_type: str = '', page: int = 1, per_page: int = 20): +def catalogue_list(request: Request, q: str = '', category_id: str = '', recurrence_type: str = '', engagement_type: str = '', page: int = 1, per_page: int = 20): + category_id_value: int | None = None + category_id_text = (category_id or '').strip() + if category_id_text: + try: + parsed_category_id = int(category_id_text) + if parsed_category_id > 0: + category_id_value = parsed_category_id + except (TypeError, ValueError): + category_id_value = None + db = CommonSessionLocal() try: user = get_current_user(request, db=db) @@ -296,7 +306,7 @@ def catalogue_list(request: Request, q: str = '', category_id: int | None = None return RedirectResponse(url='/login', status_code=303) if not _can_view_services(db, user): return _redirect_denied() - payload = list_catalogue_payload(db, q=q, category_id=category_id, recurrence_type=recurrence_type, engagement_type=engagement_type, page=page, per_page=per_page) + payload = list_catalogue_payload(db, q=q, category_id=category_id_value, recurrence_type=recurrence_type, engagement_type=engagement_type, page=page, per_page=per_page) tenant_id = _active_tenant_id(request, user) can_create_catalogue = _is_system_admin(db, user) and _has_perm(db, user, 'services.create') can_manage_firm_services = _can_manage_firm_services(db, user)