Daniel Holbach has proposed merging lp:~dholbach/loco-directory/596914 into
lp:loco-directory.
Requested reviews:
loco-directory-dev (loco-directory-dev)
Related bugs:
#596914 TeamAdmin records contstantly recreated
https://bugs.launchpad.net/bugs/596914
--
https://code.launchpad.net/~dholbach/loco-directory/596914/+merge/28070
Your team loco-directory-dev is requested to review the proposed merge of
lp:~dholbach/loco-directory/596914 into lp:loco-directory.
=== modified file 'loco_directory/teams/management/commands/lpupdate.py'
--- loco_directory/teams/management/commands/lpupdate.py 2010-05-17 10:37:59 +0000
+++ loco_directory/teams/management/commands/lpupdate.py 2010-06-21 15:52:25 +0000
@@ -8,6 +8,18 @@
from datetime import datetime
+def update_admins(ld_team, lp_team):
+ ld_admin_names = set([a.lpid for a in ld_team.admins.all()])
+ lp_admin_names = set([a.name for a in lp_team.getMembersByStatus(status='Administrator')])
+ for admin_name in ld_admin_names.difference(lp_admin_names):
+ admin = team.admins.objects.get(lpid=admin_name)
+ admin.delete()
+ for admin_name in lp_admin_names.difference(ld_admin_names):
+ admin = models.TeamAdministrator(lpid=admin_name)
+ admin.save()
+ ld_team.admins.add(admin)
+
+
class Command(NoArgsCommand):
help = "Pull list of LoCo Teams from Launchpad and add them to the DB."
@@ -27,12 +39,7 @@
team = filter(lambda a: a.lp_name == l.name, existing_locos)[0]
team.name = l.display_name
team.owner = l.team_owner.name
- for admin in team.admins.all():
- admin.delete()
- for lp_admin in l.getMembersByStatus(status='Administrator'):
- admin = models.TeamAdministrator(lpid=lp_admin.name)
- admin.save()
- team.admins.add(admin)
+ update_admins(team, l)
if not existing_groups or l.name not in [g.name for g in existing_groups]:
group = Group(name=l.name)
_______________________________________________
Mailing list: https://launchpad.net/~loco-directory-dev
Post to : [email protected]
Unsubscribe : https://launchpad.net/~loco-directory-dev
More help : https://help.launchpad.net/ListHelp