diff --git a/app/modules/clients/templates/clients/list.html b/app/modules/clients/templates/clients/list.html index 8eadf9e..f93ac67 100644 --- a/app/modules/clients/templates/clients/list.html +++ b/app/modules/clients/templates/clients/list.html @@ -34,7 +34,7 @@ {% include "modules/clients/templates/clients/partials/table.html" %} - {% if meta and not partner_client_view %} + {% if meta and not compact_client_view %}
{% if meta.total > 0 %} diff --git a/app/modules/clients/templates/clients/partials/table.html b/app/modules/clients/templates/clients/partials/table.html index da038d8..0ec7545 100644 --- a/app/modules/clients/templates/clients/partials/table.html +++ b/app/modules/clients/templates/clients/partials/table.html @@ -136,6 +136,98 @@ apply(); })(); +{% elif firm_admin_client_view %} +
+
+ + + + + + + +
+ +
+ {{ rows|length }} clients + Firm client administration +
+ +
+ + + + + + + + + + + + {% for row in rows %} + {% set row_status = (row.status or 'inactive')|lower %}{% set row_group = (row.client_group_name or '')|lower %}{% set row_partner = (row.partner_name or '')|lower %}{% set row_branch = (row.branch_name or '')|lower %} + + + + + + + + + + {% else %}{% endfor %} + + +
CodeClientGroupPartnerBranchStatus
{{ row.client_code }}
{{ row.client_name }}
{{ row.pan or row.gstin or '-' }}
{% if row.client_group_name %}{{ row.client_group_name }}
{{ row.group_relationship or row.client_group_code }}
{% else %}-{% endif %}
{{ row.partner_name or row.effective_partner_id or '-' }}{{ row.branch_name or row.assoc_firm_branch_id or row.branch_id or '-' }}{% if row_status == 'active' %}Active{% elif row_status == 'archived' %}Archived{% else %}Inactive{% endif %}Open
No clients found.
+
+
+ {% else %}
diff --git a/app/modules/clients/ui.py b/app/modules/clients/ui.py index a64fb64..3d45d68 100644 --- a/app/modules/clients/ui.py +++ b/app/modules/clients/ui.py @@ -322,6 +322,8 @@ def clients_list( role_names = _role_names(db, user) partner_client_view = is_partner_role(role_names) + firm_admin_client_view = "firm admin" in role_names and not partner_client_view + compact_client_view = partner_client_view or firm_admin_client_view scope = build_scope(request, user, has) scope = _apply_role_scope(scope, user, role_names) @@ -348,13 +350,13 @@ def clients_list( allow_all_clients=scope.allow_all_clients, partner_id=None if is_partner_role(role_names) else filters.partner_id, viewer_partner_id=_viewer_partner_id(user, role_names), - q="" if partner_client_view else filters.q, - status="" if partner_client_view else filters.status, - client_type="" if partner_client_view else filters.client_type, - client_group_id=None if partner_client_view else filters.client_group_id, + q="" if compact_client_view else filters.q, + status="" if compact_client_view else filters.status, + client_type="" if compact_client_view else filters.client_type, + client_group_id=None if compact_client_view else filters.client_group_id, include_archived=filters.include_archived, - page=1 if partner_client_view else filters.page, - per_page=5000 if partner_client_view else filters.per_page, + page=1 if compact_client_view else filters.page, + per_page=5000 if compact_client_view else filters.per_page, sort_by=filters.sort_by, sort_order=filters.sort_order, ) @@ -371,6 +373,8 @@ def clients_list( can_export=has("clients.export"), can_import=has("clients.import"), partner_client_view=partner_client_view, + firm_admin_client_view=firm_admin_client_view, + compact_client_view=compact_client_view, q=filters.q, status=filters.status, client_type=filters.client_type,