added short name lookups for tasks

This commit is contained in:
Josh Holtrop 2011-01-03 12:15:54 -05:00
parent 99d37c6268
commit 1acaefb193
2 changed files with 28 additions and 3 deletions

View File

@ -150,11 +150,36 @@ WHERE name = ? AND parentid = ?
parentid = task.taskid
return task
def getTaskByShortName(self, name):
if name.find(':') >= 0:
return self.getTaskByName(name)
task = None
c = self.conn.cursor()
c.execute('''
SELECT id, name, longname, parentid
FROM tasks
WHERE name = ?
''', (name,))
count = 0
for row in c:
count += 1
task = Task(*row)
if count > 1:
return None
c.close()
self.conn.commit()
return task
def getParentTaskByName(self, name):
parts = name.split(':')
parentname = ':'.join(parts[:-1])
return self.getTaskByName(parentname)
def getParentTaskByShortName(self, name):
parts = name.split(':')
parentname = ':'.join(parts[:-1])
return self.getTaskByShortName(parentname)
def createTask(self, name, longname, parentid):
c = self.conn.cursor()
if parentid is not None and parentid != '':

6
dwtt
View File

@ -61,9 +61,9 @@ def main(argv):
def processStart(cmd, store):
processOut(cmd, store)
task = store.getTaskByName(cmd.argstr)
task = store.getTaskByShortName(cmd.argstr)
if task is None:
parent = store.getParentTaskByName(cmd.argstr)
parent = store.getParentTaskByShortName(cmd.argstr)
if parent is None:
return 'Could not find task "%s"' % \
(':'.join(cmd.argstr.split(':')[:-1]))
@ -94,7 +94,7 @@ def processTask(cmd, store):
store.updateTask(task.taskid, nameparts[-1], longname)
return False
if len(nameparts) > 1:
parenttask = store.getParentTaskByName(fullname)
parenttask = store.getParentTaskByShortName(fullname)
if parenttask is None:
return 'Parent task not found'
store.createTask(nameparts[-1].strip(), longname, parenttask.taskid)