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 0000000000000000000000000000000000000000..0f0f2267e77bb5e7a7020102385b3253c33abb73 --- /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 920c4f48a7cd10ddcfc49038a162a0f34e77c408..034fde9dfc4c9156eeb42767614bc4cdd6a4e867 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 f23aeab93173db51c7d1819762e70fb7e106d9fe..1b84b1a7c91b437a4d45ee73e0e65e6aae3faca3 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)):