From f11b558d0037f8ff1dff50e67cd73e2c08aec820 Mon Sep 17 00:00:00 2001 From: Ole Laursen Date: Wed, 24 Aug 2011 20:49:30 +0000 Subject: [PATCH] Refactor slightly to get rid of clunky "ex-ad" role, any future uses should use GroupHistory/RoleHistory instead - Legacy-Id: 3370 --- ietf/idrfc/views_search.py | 6 +++++- ietf/ietfauth/decorators.py | 2 +- ietf/utils/test_data.py | 10 ++++++---- redesign/importing/import-roles.py | 5 ----- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/ietf/idrfc/views_search.py b/ietf/idrfc/views_search.py index ae836a7de..bbfb8e5b0 100644 --- a/ietf/idrfc/views_search.py +++ b/ietf/idrfc/views_search.py @@ -570,7 +570,11 @@ def by_ad(request, name): ad_id = None ad_name = None if settings.USE_DB_REDESIGN_PROXY_CLASSES: - for p in Person.objects.filter(email__role__name__in=("ad", "ex-ad")): + responsible = Document.objects.values_list('ad', flat=True).distinct() + for p in Person.objects.filter(Q(email__role__name="ad", + email__role__group__type="area", + email__role__group__state="active") + | Q(pk__in=responsible)): if name == p.name.lower().replace(" ", "."): ad_id = p.id ad_name = p.name diff --git a/ietf/ietfauth/decorators.py b/ietf/ietfauth/decorators.py index c1b1d66a6..a31041514 100644 --- a/ietf/ietfauth/decorators.py +++ b/ietf/ietfauth/decorators.py @@ -84,7 +84,7 @@ def has_role(user, role_names): return False role_qs = { - "Area Director": Q(email__person=person, name="ad"), + "Area Director": Q(email__person=person, name="ad", group__state="active"), "Secretariat": Q(email__person=person, name="secr", group__acronym="secretariat") } diff --git a/ietf/utils/test_data.py b/ietf/utils/test_data.py index b16935277..af9f7e9df 100644 --- a/ietf/utils/test_data.py +++ b/ietf/utils/test_data.py @@ -70,10 +70,12 @@ def make_test_data(): email = Email.objects.create( address="ad%s@ietf.org" % i, person=p) - Role.objects.create( - name_id="ad" if i <= 5 else "ex-ad", - group=area, - email=email) + if i < 6: + # active + Role.objects.create( + name_id="ad", + group=area, + email=email) # group chair u = User.objects.create(username="marschairman") diff --git a/redesign/importing/import-roles.py b/redesign/importing/import-roles.py index 2bcd8c850..5f57426d7 100755 --- a/redesign/importing/import-roles.py +++ b/redesign/importing/import-roles.py @@ -33,7 +33,6 @@ from ietf.utils.history import * # SDOAuthorizedIndividual area_director_role = name(RoleName, "ad", "Area Director") -inactive_area_director_role = name(RoleName, "ex-ad", "Ex-Area Director", desc="Inactive Area Director") chair_role = name(RoleName, "chair", "Chair") editor_role = name(RoleName, "editor", "Editor") secretary_role = name(RoleName, "secr", "Secretary") @@ -180,10 +179,6 @@ for o in IESGLogin.objects.all(): if o.user_level == IESGLogin.SECRETARIAT_LEVEL: if not Role.objects.filter(name=secretary_role, email=email): Role.objects.create(name=secretary_role, group=Group.objects.get(acronym="secretariat"), email=email) - elif o.user_level == IESGLogin.INACTIVE_AD_LEVEL: - if not Role.objects.filter(name=inactive_area_director_role, email=email): - # connect them directly to the IESG as we don't really know where they belong - Role.objects.create(name=inactive_area_director_role, group=Group.objects.get(acronym="iesg"), email=email) # AreaDirector for o in AreaDirector.objects.all():