First stab at importing roles
- Legacy-Id: 2711
This commit is contained in:
parent
c71f1d9f97
commit
df9dba63d8
|
@ -14,7 +14,9 @@ from redesign.group.models import *
|
|||
from redesign.name.models import *
|
||||
from ietf.idtracker.models import AreaGroup, IETFWG, Area, AreaGroup, Acronym, AreaWGURL, IRTF
|
||||
|
||||
# Group replaces IETFWG, Area, AreaGroup, Acronym, IRTF
|
||||
# imports IETFWG, Area, AreaGroup, Acronym
|
||||
|
||||
# FIXME: should also import IRTF
|
||||
|
||||
# make sure we got the names
|
||||
GroupStateName.objects.get_or_create(slug="bof", name="BOF") # is this a state?
|
||||
|
@ -29,10 +31,9 @@ GroupTypeName.objects.get_or_create(slug="area", name="Area")
|
|||
GroupTypeName.objects.get_or_create(slug="wg", name="WG")
|
||||
GroupTypeName.objects.get_or_create(slug="rg", name="RG")
|
||||
GroupTypeName.objects.get_or_create(slug="team", name="Team")
|
||||
|
||||
# FIXME: what about AG (area group?)?
|
||||
|
||||
|
||||
|
||||
# Area
|
||||
for o in Area.objects.all():
|
||||
group, _ = Group.objects.get_or_create(acronym=o.area_acronym.acronym)
|
||||
|
@ -80,3 +81,4 @@ for o in IETFWG.objects.all():
|
|||
|
||||
group.save()
|
||||
|
||||
# FIXME: IRTF
|
||||
|
|
91
redesign/import-roles.py
Executable file
91
redesign/import-roles.py
Executable file
|
@ -0,0 +1,91 @@
|
|||
#!/usr/bin/python
|
||||
|
||||
import sys, os, re, datetime
|
||||
|
||||
basedir = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
|
||||
sys.path = [ basedir ] + sys.path
|
||||
|
||||
from ietf import settings
|
||||
settings.USE_DB_REDESIGN_PROXY_CLASSES = False
|
||||
|
||||
from django.core import management
|
||||
management.setup_environ(settings)
|
||||
|
||||
from redesign.person.models import *
|
||||
from redesign.group.models import *
|
||||
from redesign.name.models import *
|
||||
from ietf.idtracker.models import IESGLogin, AreaDirector
|
||||
|
||||
# assumptions:
|
||||
# - groups have been imported
|
||||
|
||||
# PersonOrOrgInfo/PostalAddress/EmailAddress/PhoneNumber are not imported
|
||||
|
||||
# imports IESGLogin, AreaDirector
|
||||
|
||||
# should import IDAuthor, WGChair, WGEditor,
|
||||
# WGSecretary, WGTechAdvisor, Role, ChairsHistory, IRTFChair
|
||||
|
||||
# make sure names exist
|
||||
def name(name_class, slug, name, desc=""):
|
||||
# create if it doesn't exist, set name
|
||||
obj, _ = name_class.objects.get_or_create(slug=slug)
|
||||
obj.name = name
|
||||
obj.desc = desc
|
||||
obj.save()
|
||||
return obj
|
||||
|
||||
area_director_role = name(RoleName, "ad", "Area Director")
|
||||
|
||||
|
||||
# helpers for creating the objects
|
||||
def get_or_create_email(o, old_person):
|
||||
email = o.person.email()[1]
|
||||
if not email:
|
||||
print "NO EMAIL FOR %s %s" % (o.__class__, o.id)
|
||||
return None
|
||||
|
||||
e, _ = Email.objects.get_or_create(address=email)
|
||||
if not e.person:
|
||||
n = u"%s %s" % (o.person.first_name, o.person.last_name)
|
||||
aliases = Alias.objects.filter(name=n)
|
||||
if aliases:
|
||||
p = aliases[0].person
|
||||
else:
|
||||
p = Person.objects.create(name=n, ascii=n)
|
||||
Alias.objects.create(name=n, person=p)
|
||||
# FIXME: fill in address?
|
||||
|
||||
e.person = p
|
||||
e.save()
|
||||
|
||||
return e
|
||||
|
||||
|
||||
# IESGLogin
|
||||
for o in IESGLogin.objects.all():
|
||||
print "importing IESGLogin", o.id, o.first_name, o.last_name
|
||||
|
||||
if not o.person:
|
||||
print "NO PERSON", o.person_id
|
||||
continue
|
||||
|
||||
email = get_or_create_email(o, o.person)
|
||||
|
||||
# FIXME: import o.user_level
|
||||
# FIXME: import o.login_name, o.user_level
|
||||
|
||||
|
||||
# AreaDirector
|
||||
Role.objects.filter(name=area_director_role).delete()
|
||||
for o in AreaDirector.objects.all():
|
||||
print "importing AreaDirector", o.area, o.person
|
||||
email = get_or_create_email(o, o.person)
|
||||
if not o.area:
|
||||
print "NO AREA", o.area_id
|
||||
continue
|
||||
|
||||
area = Group.objects.get(acronym=o.area.area_acronym.acronym)
|
||||
|
||||
Role.objects.get_or_create(name=area_director_role, group=area, email=email)
|
||||
|
Loading…
Reference in a new issue