Improve exception handling
authorDavid Bartley <dtbartle@csclub.uwaterloo.ca>
Tue, 18 Dec 2007 06:49:13 +0000 (01:49 -0500)
committerDavid Bartley <dtbartle@csclub.uwaterloo.ca>
Tue, 18 Dec 2007 06:49:13 +0000 (01:49 -0500)
ceo/urwid/groups.py
ceo/urwid/positions.py

index 44052fb..fc387e3 100644 (file)
@@ -115,14 +115,14 @@ class EndPage(WizardPanel):
         for group in data['groups']:
             try:
                 members.change_group_member(action, group, self.state['userid'])
-            except:
+            except ldap.LDAPError:
                 failed.append(group)
         if len(failed) == 0:
             self.headtext.set_text("%s succeeded" % data['action'])
             self.midtext.set_text("Congratulations, the group modification "
                 "has succeeded.")
         else:
-            self.headtext.set_text("%s partially succeeded" % data['action'])
+            self.headtext.set_text("%s Results" % data['action'])
             self.midtext.set_text("Failed to %s member to %s for the "
                 "following groups: %s. This may indicate an attempt to add a "
                 "duplicate group member or to delete a member that was not in "
index 28f324a..953887f 100644 (file)
@@ -76,11 +76,20 @@ class EndPage(WizardPanel):
     def focusable(self):
         return False
     def activate(self):
+        failed = []
         for (position, info) in self.state['positions'].iteritems():
-            members.set_position(position, info)
-        self.headtext.set_text("Positions Updated")
-        self.midtext.set_text("Congratulations, positions have been updated. "
-            "You should rebuild the website in order to update the Positions "
-            "page.")
+            try:
+                members.set_position(position, info)
+            except ldap.LDAPError:
+                failed.append(position)
+        if len(failed) == 0:
+            self.headtext.set_text("Positions Updated")
+            self.midtext.set_text("Congratulations, positions have been "
+                "updated. You should rebuild the website in order to update "
+                "the Positions page.")
+        else:
+            self.headtext.set_text("Positions Results")
+            self.midtext.set_text("Failed to update the following positions: "
+                "%s." % join(failed))
     def check(self):
         pop_window()