Commit cd587fd6 authored by Jacek Sowiński's avatar Jacek Sowiński

Allow 'pri' to prioritize multiple todos at once.

Fixes issue #5
parent 2a9be13f
...@@ -30,30 +30,39 @@ class PriorityCommand(Command): ...@@ -30,30 +30,39 @@ class PriorityCommand(Command):
if not super(PriorityCommand, self).execute(): if not super(PriorityCommand, self).execute():
return False return False
number = None numbers = None
priority = None priority = None
try: try:
number = self.argument(0) numbers = self.args[:-1]
priority = self.argument(1) priority = self.args[-1]
todo = self.todolist.todo(number)
if is_valid_priority(priority): if len(numbers) > 0:
old_priority = todo.priority() todos = []
self.todolist.set_priority(todo, priority) for number in numbers:
todos.append(self.todolist.todo(number))
if old_priority and priority and old_priority != priority: if is_valid_priority(priority):
self.out("Priority changed from {} to {}".format( for todo in todos:
old_priority, priority)) old_priority = todo.priority()
elif not old_priority: self.todolist.set_priority(todo, priority)
self.out("Priority set to {}.".format(priority))
self.out(self.printer.print_todo(todo)) if old_priority and priority and old_priority != priority:
self.out("Priority changed from {} to {}".format(
old_priority, priority))
elif not old_priority:
self.out("Priority set to {}.".format(priority))
self.out(self.printer.print_todo(todo))
else:
self.error("Invalid priority given.")
else: else:
self.error("Invalid priority given.") self.error(self.usage())
except IndexError:
self.error(self.usage())
except InvalidCommandArgument: except InvalidCommandArgument:
self.error(self.usage()) self.error(self.usage())
except (InvalidTodoException): except (InvalidTodoException):
if number and priority: if len(numbers) > 0 and priority:
self.error( "Invalid todo number given.") self.error( "Invalid todo number given.")
else: else:
self.error(self.usage()) self.error(self.usage())
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment