From aa82d77b28c223d831c74e928fb5cd0a7db797d0 Mon Sep 17 00:00:00 2001 From: Fredrik Jonsson <frjo@xdeb.org> Date: Wed, 13 Apr 2022 09:54:21 +0200 Subject: [PATCH] Add is_active true to all user querysets. --- .../migrations/0096_only_active_users.py | 57 +++++++++++++++++++ hypha/apply/funds/models/utils.py | 10 ++-- hypha/apply/users/models.py | 20 +++---- 3 files changed, 72 insertions(+), 15 deletions(-) create mode 100644 hypha/apply/funds/migrations/0096_only_active_users.py diff --git a/hypha/apply/funds/migrations/0096_only_active_users.py b/hypha/apply/funds/migrations/0096_only_active_users.py new file mode 100644 index 000000000..0f0f2267e --- /dev/null +++ b/hypha/apply/funds/migrations/0096_only_active_users.py @@ -0,0 +1,57 @@ +# Generated by Django 3.2.13 on 2022-04-13 12:16 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion +import modelcluster.fields + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('funds', '0095_only_external_review_option'), + ] + + operations = [ + migrations.AlterField( + model_name='applicationbase', + name='reviewers', + field=modelcluster.fields.ParentalManyToManyField(blank=True, limit_choices_to={'groups__name': 'Reviewer', 'is_active': True}, related_name='applicationbase_reviewers', to=settings.AUTH_USER_MODEL), + ), + migrations.AlterField( + model_name='applicationsubmission', + name='lead', + field=models.ForeignKey(limit_choices_to={'groups__name': 'Staff', 'is_active': True}, on_delete=django.db.models.deletion.PROTECT, related_name='submission_lead', to=settings.AUTH_USER_MODEL), + ), + migrations.AlterField( + model_name='applicationsubmission', + name='partners', + field=models.ManyToManyField(blank=True, limit_choices_to={'groups__name': 'Partner', 'is_active': True}, related_name='submissions_partner', to=settings.AUTH_USER_MODEL), + ), + migrations.AlterField( + model_name='assignedreviewers', + name='reviewer', + field=models.ForeignKey(limit_choices_to={'groups__name__in': ['Staff', 'Reviewer', 'Community reviewer'], 'is_active': True}, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), + ), + migrations.AlterField( + model_name='labbase', + name='lead', + field=models.ForeignKey(limit_choices_to={'groups__name': 'Staff', 'is_active': True}, on_delete=django.db.models.deletion.PROTECT, related_name='lab_lead', to=settings.AUTH_USER_MODEL), + ), + migrations.AlterField( + model_name='labbase', + name='reviewers', + field=modelcluster.fields.ParentalManyToManyField(blank=True, limit_choices_to={'groups__name': 'Reviewer', 'is_active': True}, related_name='labs_reviewer', to=settings.AUTH_USER_MODEL), + ), + migrations.AlterField( + model_name='roundbase', + name='lead', + field=models.ForeignKey(limit_choices_to={'groups__name': 'Staff', 'is_active': True}, on_delete=django.db.models.deletion.PROTECT, related_name='roundbase_lead', to=settings.AUTH_USER_MODEL), + ), + migrations.AlterField( + model_name='roundbase', + name='reviewers', + field=modelcluster.fields.ParentalManyToManyField(blank=True, limit_choices_to={'groups__name': 'Reviewer', 'is_active': True}, related_name='roundbase_reviewer', to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/hypha/apply/funds/models/utils.py b/hypha/apply/funds/models/utils.py index 920c4f48a..034fde9df 100644 --- a/hypha/apply/funds/models/utils.py +++ b/hypha/apply/funds/models/utils.py @@ -26,11 +26,11 @@ REVIEW_GROUPS = [ REVIEWER_GROUP_NAME, COMMUNITY_REVIEWER_GROUP_NAME, ] -LIMIT_TO_STAFF = {'groups__name': STAFF_GROUP_NAME} -LIMIT_TO_REVIEWERS = {'groups__name': REVIEWER_GROUP_NAME} -LIMIT_TO_PARTNERS = {'groups__name': PARTNER_GROUP_NAME} -LIMIT_TO_COMMUNITY_REVIEWERS = {'groups__name': COMMUNITY_REVIEWER_GROUP_NAME} -LIMIT_TO_REVIEWER_GROUPS = {'groups__name__in': REVIEW_GROUPS} +LIMIT_TO_STAFF = {'groups__name': STAFF_GROUP_NAME, 'is_active': True} +LIMIT_TO_REVIEWERS = {'groups__name': REVIEWER_GROUP_NAME, 'is_active': True} +LIMIT_TO_PARTNERS = {'groups__name': PARTNER_GROUP_NAME, 'is_active': True} +LIMIT_TO_COMMUNITY_REVIEWERS = {'groups__name': COMMUNITY_REVIEWER_GROUP_NAME, 'is_active': True} +LIMIT_TO_REVIEWER_GROUPS = {'groups__name__in': REVIEW_GROUPS, 'is_active': True} def admin_url(page): diff --git a/hypha/apply/users/models.py b/hypha/apply/users/models.py index f23aeab93..1b84b1a7c 100644 --- a/hypha/apply/users/models.py +++ b/hypha/apply/users/models.py @@ -25,35 +25,35 @@ from .utils import send_activation_email class UserQuerySet(models.QuerySet): def staff(self): return self.filter( - Q(groups__name=STAFF_GROUP_NAME) | Q(is_superuser=True) + Q(groups__name=STAFF_GROUP_NAME, is_active=True) | Q(is_superuser=True, is_active=True) ).distinct() def staff_admin(self): - return self.filter(groups__name=TEAMADMIN_GROUP_NAME) + return self.filter(groups__name=TEAMADMIN_GROUP_NAME, is_active=True) def reviewers(self): - return self.filter(groups__name=REVIEWER_GROUP_NAME) + return self.filter(groups__name=REVIEWER_GROUP_NAME, is_active=True) def partners(self): - return self.filter(groups__name=PARTNER_GROUP_NAME) + return self.filter(groups__name=PARTNER_GROUP_NAME, is_active=True) def community_reviewers(self): - return self.filter(groups__name=COMMUNITY_REVIEWER_GROUP_NAME) + return self.filter(groups__name=COMMUNITY_REVIEWER_GROUP_NAME, is_active=True) def applicants(self): - return self.filter(groups__name=APPLICANT_GROUP_NAME) + return self.filter(groups__name=APPLICANT_GROUP_NAME, is_active=True) def approvers(self): - return self.filter(groups__name=APPROVER_GROUP_NAME) + return self.filter(groups__name=APPROVER_GROUP_NAME, is_active=True) def finances_level_1(self): - return self.filter(groups__name=FINANCE_GROUP_NAME).exclude(groups__name=APPROVER_GROUP_NAME) + return self.filter(groups__name=FINANCE_GROUP_NAME, is_active=True).exclude(groups__name=APPROVER_GROUP_NAME) def finances_level_2(self): - return self.filter(groups__name=FINANCE_GROUP_NAME).filter(groups__name=APPROVER_GROUP_NAME) + return self.filter(groups__name=FINANCE_GROUP_NAME, is_active=True).filter(groups__name=APPROVER_GROUP_NAME) def contracting(self): - return self.filter(groups__name=CONTRACTING_GROUP_NAME) + return self.filter(groups__name=CONTRACTING_GROUP_NAME, is_active=True) class UserManager(BaseUserManager.from_queryset(UserQuerySet)): -- GitLab