TL;DR: I would like to be able to specify the lack of a tag to check a checkbox widget i.e. <$checkbox !tag="incomplete"> or to be able to simply invert the checked value <$checkbox tag="incomplete" invert="true">
I had a couple of helper tiddlers and buttons for generating task lists by topic. They were
GenericTaskListComplete
<$list filter="[!has[draft.of]tag{!!title}tag[task]tag[complete]sort[created]]">
<$checkbox tag="complete"><$link to={{!!title}}><$view field="title"/></$link></$checkbox><br/>
</$list>
GenericTaskListIncomplete
<$list filter="[!has[draft.of]tag{!!title}tag[task]!tag[complete]sort[created]]">
<$checkbox tag="complete"> <$link to={{!!title}}><$view field="title"/></$link></$checkbox><br/>
</$list>
Articles (for example)
!Read Me
{{||GenericTaskListIncomplete}}
!Read
{{||GenericTaskListComplete}}
!Other
{{||GenericList}} //<-- anything that is not tagged as a task
Which was good...Except when I wanted to stop the tiddler from being a task and i'd have to remove both the "task" and "complete" tags. Also "complete" tags end up littering up my TW. I would rather that incomplete tasks stood out and that i only had to remove one tag on completed tasks :)
So I would prefer to do it this way:
If something is tagged as a "task" and "incomplete" it should be unchecked and once completed the "incomplete" tag removed and have it checked. this is mostly possible aside from the checked boxes being inverted.
GenericTaskListComplete
<$list filter="[!has[draft.of]tag{!!title}tag[task]!tag[incomplete]sort[created]]">
<$checkbox tag="incomplete"><$link to={{!!title}}><$view field="title"/></$link></$checkbox><br/>
</$list>
GenericTaskListIncomplete
<$list filter="[!has[draft.of]tag{!!title}tag[task]tag[incomplete]sort[created]]">
<$checkbox tag="incomplete"> <$link to={{!!title}}><$view field="title"/></$link></$checkbox><br/>
</$list>
Obviously i could just make a checkbox1 widget and maintain that, but would there be any possibility of getting something like a "tag doesn't contain" parameter into the checkbox core? In fact a simple "invert=`true`" param would be even easier.
Thanks,
James