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 parentid = task.taskid
return task 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): def getParentTaskByName(self, name):
parts = name.split(':') parts = name.split(':')
parentname = ':'.join(parts[:-1]) parentname = ':'.join(parts[:-1])
return self.getTaskByName(parentname) 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): def createTask(self, name, longname, parentid):
c = self.conn.cursor() c = self.conn.cursor()
if parentid is not None and parentid != '': if parentid is not None and parentid != '':

6
dwtt
View File

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