Skip to content

Commit 4b15644

Browse files
committed
Import WGEditor too, fixup AreaDirector import
- Legacy-Id: 2816
1 parent d0f3b5e commit 4b15644

1 file changed

Lines changed: 37 additions & 7 deletions

File tree

redesign/import-roles.py

Lines changed: 37 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,17 @@
1515
from redesign.person.models import *
1616
from redesign.group.models import *
1717
from redesign.name.models import *
18-
from ietf.idtracker.models import IESGLogin, AreaDirector, IDAuthor, PersonOrOrgInfo
18+
from ietf.idtracker.models import IESGLogin, AreaDirector, IDAuthor, PersonOrOrgInfo, WGEditor
1919

2020
# assumptions:
2121
# - groups have been imported
2222

2323
# PersonOrOrgInfo/PostalAddress/EmailAddress/PhoneNumber are not
2424
# imported, although some information is retrieved from those
2525

26-
# imports IESGLogin, AreaDirector and persons from IDAuthor
26+
# imports IESGLogin, AreaDirector, WGEditor and persons from IDAuthor
2727

28-
# should probably import WGChair, WGEditor, WGSecretary,
28+
# should probably import WGChair, WGSecretary,
2929
# WGTechAdvisor, Role, ChairsHistory, IRTFChair
3030

3131
# make sure names exist
@@ -38,7 +38,8 @@ def name(name_class, slug, name, desc=""):
3838
return obj
3939

4040
area_director_role = name(RoleName, "ad", "Area Director")
41-
41+
inactive_area_director_role = name(RoleName, "ex-ad", "Ex-Area Director", desc="In-active Area Director")
42+
wg_editor_role = name(RoleName, "wgeditor", "Working Group Editor")
4243

4344
# helpers for creating the objects
4445
def get_or_create_email(o, create_fake):
@@ -86,11 +87,14 @@ def get_or_create_email(o, create_fake):
8687

8788
email = get_or_create_email(o, create_fake=False)
8889

89-
# FIXME: import o.login_name, o.user_level
90+
if o.user_level == IESGLogin.INACTIVE_AD_LEVEL:
91+
if not Role.objects.filter(name=inactive_area_director_role, email=email):
92+
# connect them directly to the IESG as we don't really know where they belong
93+
Role.objects.create(name=inactive_area_director_role, group=Group.objects.get(acronym="iesg"), email=email)
9094

95+
# FIXME: import o.login_name, o.user_level
9196

9297
# AreaDirector
93-
Role.objects.filter(name=area_director_role).delete()
9498
for o in AreaDirector.objects.all():
9599
if not o.area:
96100
print "NO AREA", o.person, o.area_id
@@ -101,8 +105,34 @@ def get_or_create_email(o, create_fake):
101105

102106
area = Group.objects.get(acronym=o.area.area_acronym.acronym)
103107

104-
Role.objects.get_or_create(name=area_director_role, group=area, email=email)
108+
if area.state_id == "active":
109+
role_type = area_director_role
110+
else:
111+
# can't be active area director in an inactive area
112+
role_type = inactive_area_director_role
113+
114+
r = Role.objects.filter(name__in=(area_director_role, inactive_area_director_role),
115+
email=email)
116+
if r and r[0].group == "iesg":
117+
r[0].group = area
118+
r[0].name = role_type
119+
r[0].save()
120+
else:
121+
Role.objects.get_or_create(name=role_type, group=area, email=email)
122+
123+
# WGEditor
124+
for o in WGEditor.objects.all():
125+
# if not o.group_acronym:
126+
# print "NO GROUP", o.person, o.group_acronym_id
127+
# continue
105128

129+
print "importing WGEditor", o.group_acronym, o.person
130+
email = get_or_create_email(o, create_fake=False)
131+
132+
group = Group.objects.get(acronym=o.group_acronym.group_acronym.acronym)
133+
134+
Role.objects.get_or_create(name=wg_editor_role, group=group, email=email)
135+
106136
# IDAuthor persons
107137
for o in IDAuthor.objects.all().order_by('id').select_related('person'):
108138
print "importing IDAuthor", o.id, o.person_id, o.person.first_name.encode('utf-8'), o.person.last_name.encode('utf-8')

0 commit comments

Comments
 (0)