From 1ac39287d6565d4f3da740b5233f82e35a4e2079 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Sat, 18 Apr 2009 11:22:49 -0500 Subject: [PATCH] Adding cache and sorting of projects --- src/rtm_view.py | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/rtm_view.py b/src/rtm_view.py index bbbdfc3..7fad71f 100644 --- a/src/rtm_view.py +++ b/src/rtm_view.py @@ -25,6 +25,7 @@ import coroutines import toolbox import gtk_toolbox import rtm_backend +import cache_backend import rtm_api @@ -77,6 +78,22 @@ def get_credentials(credentialsDialog): return username, password, token +def project_sort_by_type(projects): + sortedProjects = list(projects) + def advanced_key(proj): + if proj["name"] == "Inbox": + type = 0 + elif proj["name"] == "Sent": + type = 1 + elif not proj["isMeta"]: + type = 2 + else: + type = 3 + return type, proj["name"] + sortedProjects.sort(key=advanced_key) + return sortedProjects + + def item_sort_by_priority_then_date(items): sortedTasks = list(items) sortedTasks.sort( @@ -470,6 +487,7 @@ class GtkRtMilk(object): while True: try: self._manager = rtm_backend.RtmBackend(*credentials) + self._manager = cache_backend.CacheBackend(self._manager) self._credentials = credentials return # Login succeeded except rtm_api.AuthStateMachine.NoData: @@ -513,7 +531,9 @@ class GtkRtMilk(object): self._manager = None def _populate_projects(self): - for project in self._manager.get_projects(): + projects = self._manager.get_projects() + sortedProjects = project_sort_by_type(projects) + for project in sortedProjects: projectName = project["name"] isVisible = project["isVisible"] row = (projectName, ) -- 1.7.9.5