Bertrand Rousseau has proposed merging lp:~bertrand-rousseau/gtg/bug-988235
into lp:gtg.
Requested reviews:
Gtg developers (gtg)
Related bugs:
Bug #988235 in Getting Things GNOME!: "Changing tag color doesn't refresh
task list"
https://bugs.launchpad.net/gtg/+bug/988235
For more details, see:
https://code.launchpad.net/~bertrand-rousseau/gtg/bug-988235/+merge/104853
This branch fixes bug 988235 (task & tag refresh in the browser). This is
coupled to another commit in liblarch:
https://github.com/liblarch/liblarch/pull/3 (get_nodes() function is required
to make this work)
To test it you will need to checkout my liblarch branch on github:
https://github.com/broussea/liblarch
--
https://code.launchpad.net/~bertrand-rousseau/gtg/bug-988235/+merge/104853
Your team Gtg developers is requested to review the proposed merge of
lp:~bertrand-rousseau/gtg/bug-988235 into lp:gtg.
=== modified file 'GTG/core/tag.py'
--- GTG/core/tag.py 2012-04-22 11:56:25 +0000
+++ GTG/core/tag.py 2012-05-05 23:33:19 +0000
@@ -81,16 +81,26 @@
@param att_value: The value of the attribute. Will be converted to a
string.
"""
+ modified = False
if att_name == "name":
raise Exception("The name of tag cannot be set manually")
elif att_name == "parent":
self.add_parent(att_value)
+ modified = True
else:
# Attributes should all be strings.
val = unicode(str(att_value), "UTF-8")
self._attributes[att_name] = val
if self._save:
self._save()
+ modified = True
+ if modified:
+ self.modified()
+ # notify all related tasks tools
+ for task_id in self.get_related_tasks():
+ my_task = self.req.get_task(task_id)
+ assert my_task is not None, "Unknown task id: %s" % task_id
+ my_task.modified()
def get_attribute(self, att_name):
"""Get the attribute C{att_name}.
@@ -147,20 +157,23 @@
return self.__get_count()
def __get_count(self, tasktree=None):
+ return len(self.get_related_tasks(tasktree=tasktree))
+
+ def get_related_tasks(self, tasktree=None):
if not tasktree:
tasktree = self.req.get_tasks_tree()
sp_id = self.get_attribute("special")
if sp_id == "all":
- toreturn = tasktree.get_n_nodes(\
+ toreturn = tasktree.get_nodes(\
withfilters=['active'], include_transparent=False)
elif sp_id == "notag":
- toreturn = tasktree.get_n_nodes(\
+ toreturn = tasktree.get_nodes(\
withfilters=['notag'], include_transparent=False)
elif sp_id == "sep" :
- toreturn = 0
+ toreturn = []
else:
tname = self.get_name()
- toreturn = tasktree.get_n_nodes(\
+ toreturn = tasktree.get_nodes(\
withfilters=[tname], include_transparent=False)
return toreturn
_______________________________________________
Mailing list: https://launchpad.net/~gtg
Post to : [email protected]
Unsubscribe : https://launchpad.net/~gtg
More help : https://help.launchpad.net/ListHelp