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

Reply via email to