From 40f46b5fb01f07ea728857f1b59814e9b48e44b2 Mon Sep 17 00:00:00 2001 From: Fredrik Jonsson Date: Sun, 15 Mar 2026 21:22:53 +0100 Subject: [PATCH] Use count() instead of len() where possible. --- hypha/apply/dashboard/services.py | 2 +- hypha/apply/projects/templatetags/project_tags.py | 2 +- hypha/apply/projects/views/payment.py | 2 +- hypha/apply/todo/services.py | 4 ++-- hypha/apply/todo/views.py | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/hypha/apply/dashboard/services.py b/hypha/apply/dashboard/services.py index 7f9ad5bfca..377f7296cb 100644 --- a/hypha/apply/dashboard/services.py +++ b/hypha/apply/dashboard/services.py @@ -9,7 +9,7 @@ def get_paf_for_review(user, is_paf_approval_sequential): paf_approvals = PAFApprovals.objects.annotate( roles_count=Count("paf_reviewer_role__user_roles") ).filter( - roles_count=len(list(user.groups.all())), + roles_count=user.groups.count(), approved=False, ) diff --git a/hypha/apply/projects/templatetags/project_tags.py b/hypha/apply/projects/templatetags/project_tags.py index 8edf3e0e7e..950f1e01f5 100644 --- a/hypha/apply/projects/templatetags/project_tags.py +++ b/hypha/apply/projects/templatetags/project_tags.py @@ -171,7 +171,7 @@ def user_next_step_on_project(project, user, request=None): else: matched_roles = PAFReviewersRole.objects.annotate( roles_count=Count("user_roles") - ).filter(roles_count=len(user.groups.all())) + ).filter(roles_count=user.groups.count()) for group in user.groups.all(): matched_roles = matched_roles.filter(user_roles__id=group.id) if not matched_roles: diff --git a/hypha/apply/projects/views/payment.py b/hypha/apply/projects/views/payment.py index 489cbab52b..884dbc4493 100644 --- a/hypha/apply/projects/views/payment.py +++ b/hypha/apply/projects/views/payment.py @@ -319,7 +319,7 @@ def form_valid(self, form): related=self.object, ) - if len(self.project.invoices.all()) == 1: + if self.project.invoices.count() == 1: # remove Project waiting invoices task for applicant on first invoice remove_tasks_for_user( code=PROJECT_WAITING_INVOICE, diff --git a/hypha/apply/todo/services.py b/hypha/apply/todo/services.py index 5ccfadf8ee..f323305605 100644 --- a/hypha/apply/todo/services.py +++ b/hypha/apply/todo/services.py @@ -23,7 +23,7 @@ def validate_user_uniqueness(code, user, related_obj): # if same task is already assigned to user's user_group user_group_matching_tasks = matching_tasks.annotate( group_count=Count("user_group") - ).filter(group_count=len(user.groups.all())) + ).filter(group_count=user.groups.count()) for group in user.groups.all(): user_group_matching_tasks = user_group_matching_tasks.filter( user_group__id=group.id @@ -45,7 +45,7 @@ def validate_user_groups_uniqueness(code, user_groups, related_obj): ) user_group_matching_tasks = matching_tasks.annotate( group_count=Count("user_group") - ).filter(group_count=len(user_groups)) + ).filter(group_count=user_groups.count()) for group in user_groups: user_group_matching_tasks = user_group_matching_tasks.filter( user_group__id=group.id diff --git a/hypha/apply/todo/views.py b/hypha/apply/todo/views.py index be8640c78c..623df62028 100644 --- a/hypha/apply/todo/views.py +++ b/hypha/apply/todo/views.py @@ -147,7 +147,7 @@ def remove_tasks_for_user_group(code, user_group, related_obj): ) user_group_matching_tasks = matching_tasks.annotate( group_count=Count("user_group") - ).filter(group_count=len(user_group.all())) + ).filter(group_count=user_group.count()) for group in user_group.all(): user_group_matching_tasks = user_group_matching_tasks.filter( user_group__id=group.id @@ -190,7 +190,7 @@ def get_tasks_for_user(user): group_count=Count("user_group") ) user_group_tasks = Task.objects.annotate(group_count=Count("user_group")).filter( - group_count=len(user.groups.all()) + group_count=user.groups.count() ) for group in user.groups.all(): user_group_tasks = user_group_tasks.filter(user_group__id=group.id)