ForumsTips & TricksWhy Contexts Don't Work (and what will!)


Why Contexts Don't Work (and what will!)
Author Message
cyounkins

Posted: Jul 06, 2009
Score: 0 Reference
Posted by Rory:
Simple boolean operators are clearly not good enough to match tasks based on a bunch of tabs, but it seems it would be pretty easy to match based on subsets.

For example, you may enter your current situation as the tags for home, phone and computer. It seems like it would be really easy to match any task whose tags are a subset of the supplied tags.

e.g. This would match all tasks with tags:

home
phone
computer
home phone


So I started to do this. I even wrote a python script to make the combinations for a given set of needs/tags.

Here are two issues I'm finding with using this:
1. Inputting them into the search fields is very tedious.
2. When using the "Tag is blah" tests, the order of the tags now matters. This is because Toodledo really has no support for multiple tags for a task. In your example above, a task tagged "phone home" would not be matched because the tags are reversed. :-( (One cannot use the "contains" clause because it will match tasks that have extra needs.)

Again, we come back to the fact that the current tag system and boolean search operators are not equipped to do this kind of subset testing. However, I do believe that an upgrade to the tag system, instead of contexts, will do exactly what I am looking for.
-------
So here's how we can upgrade the tag system to support the wonderful functionality of subset testing. First, enable the use of multiple tags for a given task, separated by commas. Now each word or phrase is a discrete tag for the given task, and ordering doesn't matter, except perhaps for sorting.

Next, add a "tags are a subset of" search functionality, where the user can specify a number of tags (in my case, things I have), and each task will be tested to see if its tags are a subset of the given search tags.

Here is some sample code to do this in python. "self" refers to the current object ("this" in Java). search_tags and self.tags are lists. The "in" operator tests if an item is in a list.

class Task():
def is_subset_of_tags(self, search_tags):
for task_tag in self.tags:
if task_tag not in search_tags:
return False
return True

------
Again, I'd like the dev team to know that I'd be willing to help them with this and other work with Toodledo for free. I love Toodledo and would like the chance to give back. While I'm excited about subset tag testing, I'm also a team player. :-)
cyounkins

Posted: Jul 06, 2009
Score: 0 Reference
Posted by cyounkins:
class Task():
def is_subset_of_tags(self, search_tags):
for task_tag in self.tags:
if task_tag not in search_tags:
return False
return True


I guess you're stripping leading whitespace. Fine then. :P

class Task():
__def is_subset_of_tags(self, search_tags):
____for task_tag in self.tags:
______if task_tag not in search_tags:
________return False
____return True
toodledo

Posted: Jul 07, 2009
Score: 0 Reference
I don't think tags are the answer. They serve a different purpose and if you misuse them you effectively take that functionality away.

I'm a long-time LifeBalance user. The way LifeBalance solves this problem is by allowing a context to contain other contexts. That way I can have @phone and @computer and then have @work and @home which contain both. As a result I was able to see all phone calls I had to make whether I was at work, at home or on a bus with just my mobile.

And yes, I do miss this functionality *very much*.


This message was edited Jul 07, 2009.
You cannot reply yet

U Back to topic home

R Post a reply

Skip to Page:  1   2  

To participate in these forums, you must be signed in.