Added "assign" command
authorAaron Bentley <aaron.bentley@utoronto.ca>
Fri, 18 Mar 2005 01:06:49 +0000 (01:06 +0000)
committerAaron Bentley <aaron.bentley@utoronto.ca>
Fri, 18 Mar 2005 01:06:49 +0000 (01:06 +0000)
becommands/assign.py [new file with mode: 0644]
libbe/bugdir.py
libbe/cmdutil.py

diff --git a/becommands/assign.py b/becommands/assign.py
new file mode 100644 (file)
index 0000000..5b07088
--- /dev/null
@@ -0,0 +1,33 @@
+"""Assign an indivitual or group to fix a bug"""
+from libbe import bugdir, cmdutil, names 
+__desc__ = __doc__
+
+def execute(args):
+    assert(len(args) in (0, 1, 2))
+    if len(args) == 0:
+        print help()
+        return
+    bug = cmdutil.get_bug(args[0])
+    if len(args) == 1:
+        bug.assigned = names.creator()
+    elif len(args) == 2:
+        if args[1] == "none":
+            bug.assigned = None
+        else:
+            bug.assigned = args[1]
+    bug.save()
+
+
+def help():
+    return """be assign bug-id [assignee]
+
+Assign a person to fix a bug.
+
+By default, the bug is self-assigned.  If an assignee is specified, the bug
+will be assigned to that person.
+
+Assignees should be the person's Bugs Everywhere identity, the string that
+appears in Creator fields.
+
+To un-assign a bug, specify "none" for the assignee.
+"""
index 58fa877532832b32a7139b69a13e60f279dd9004..addefe026e4db29daf9bc72686e6b661fca5f8ca 100644 (file)
@@ -113,6 +113,7 @@ class Bug(object):
         self.target = dict.get("target")
         self.status = dict.get("status")
         self.severity = dict.get("severity")
+        self.assigned = dict.get("assigned")
 
     def get_path(self, file):
         return os.path.join(self.path, self.uuid, file)
@@ -129,6 +130,7 @@ class Bug(object):
 
     def save(self):
         map = {}
+        self.add_attr(map, "assigned")
         self.add_attr(map, "summary")
         self.add_attr(map, "creator")
         self.add_attr(map, "target")
index 3fbfb50dac4a15703756ba20d0c538e1ba9d3352..7b25e353fc19f6ed2b55730a999849636952e8ff 100644 (file)
@@ -46,9 +46,13 @@ def bug_summary(bug, bugs):
         target = ""
     else:
         target = "  target: %s" % target
-    return "ID: %s  Severity: %s%s  Creator: %s \n%s\n" % \
-            (unique_name(bug, bugs), bug.severity, target, bug.creator,
-             bug.summary)
+    if bug.assigned is None:
+        assigned = ""
+    else:
+        assigned = "  Assigned: %s" % bug.assigned
+    return "ID: %s  Severity: %s%s%s  Creator: %s \n%s\n" % \
+            (unique_name(bug, bugs), bug.severity, assigned, target,
+             bug.creator, bug.summary)
 
 def iter_commands():
     for name, module in plugin.iter_plugins("becommands"):