Refactor slightly to get rid of clunky "ex-ad" role, any future uses

should use GroupHistory/RoleHistory instead
 - Legacy-Id: 3370
This commit is contained in:
Ole Laursen 2011-08-24 20:49:30 +00:00
parent dba085791a
commit f11b558d00
4 changed files with 12 additions and 11 deletions

View file

@ -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

View file

@ -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")
}

View file

@ -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")

View file

@ -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():