Better projects order management

pull/15/head
Benjamin Van Ryseghem 2014-07-16 02:15:50 +02:00
parent 85e9d48722
commit 09fc8cfebf
1 changed files with 9 additions and 6 deletions

View File

@ -142,16 +142,17 @@ class Project(object):
if self._subProjects == None: if self._subProjects == None:
self._subProjects = [] self._subProjects = []
initialIndent = self.indent initialIndent = self.indent
initialOrder = self.itemOrder initialOrder = self._todoist._orderedProjects.index(self)
order = initialOrder + 1 order = initialOrder + 1
maxSize = len(self._todoist._orderedProjects) maxSize = len(self._todoist._orderedProjects)
if order < maxSize: if order < maxSize:
current = self._todoist._orderedProjects[order] current = self._todoist._orderedProjects[order]
while ((current.indent > initialIndent) and (order < maxSize)): while ((current.indent > initialIndent) and (order < maxSize)):
current = self._todoist._orderedProjects[order] current = self._todoist._orderedProjects[order]
self._subProjects.append(current) if current != None:
current.parent = self self._subProjects.append(current)
order = order + 1 current.parent = self
order = order + 1
return self._subProjects return self._subProjects
@ -209,12 +210,14 @@ class TodoistData(object):
def __init__(self, initial_data): def __init__(self, initial_data):
self._SetLabelData(initial_data) self._SetLabelData(initial_data)
self._projects = dict() self._projects = dict()
self._orderedProjects = dict()
for project in initial_data['Projects']: for project in initial_data['Projects']:
p = Project(project) p = Project(project)
p.setTodoist(self) p.setTodoist(self)
self._projects[project['id']] = p self._projects[project['id']] = p
self._orderedProjects[project['item_order']] = p
self._orderedProjects = sorted(self._projects.values(), key=lambda project: project.itemOrder)
for project in self._projects.values(): for project in self._projects.values():
project.subProjects() project.subProjects()