Using TW5 for project management - nested lists of checkboxes with strikethrough

1,660 views
Skip to first unread message

Shay Shaked

unread,
Apr 17, 2016, 7:46:07 PM4/17/16
to tiddl...@googlegroups.com
If possible, I would like to learn how to do this without installing someone's plug in, because I'm curious to see how it works. Here is what I need. 


  • I want to create a simple checkbox list, with short sentences. When checked, the sentence next to the box will be shown as strike-through. 
  • Next time I open TW, I want TW to remember the checked items (in the past, it seemed to have reset). 
  • I want to have the option to include nested checkboxes under the "parent" one, which will show indented - very similar to other list. 
  • I want to be able to include a short description under each checkbox item (a sentence). I don't think this is a problem, it's a simple matter of just typing under the line of whatever syntax this is going to look like. 
This is the start. I looking through here and there's info about checkboxes, but not exactly what I'm looking for. How complicated is it to create something like this?

*** Edit

I checked TaskManagementExample and I see TW5 has a very, very close solution to what I want. The problem here is that I have to created tiddler for each task. This is becoming a problem if I just want a simple rundown of my project in one place... I will need to have my sub-tasks nested with the main project, and that's becoming more complicated because I will need to have them tagged three times at the end: as task, as done, and then as the parent tag. 

Does anyone uses TW for project management and can share a sample with me? 

Hegart Dmishiv

unread,
Apr 17, 2016, 8:25:19 PM4/17/16
to TiddlyWiki
Hi Shay,

Have you had a look at the TaskManagementExample?

Hegart.

Shay Shaked

unread,
Apr 17, 2016, 8:30:51 PM4/17/16
to TiddlyWiki
haha I just posted about this. I just finished reading through it and got the idea of kind of how it works :D

Hegart Dmishiv

unread,
Apr 17, 2016, 8:43:25 PM4/17/16
to TiddlyWiki
Hi Shay,

Not sure if this is of any help, and it does rely on a plugin, but it looks really simple to implement. Perhaps even a bit lightweight for what you need?

Hegart.

BJ

unread,
Apr 18, 2016, 4:28:45 AM4/18/16
to TiddlyWiki
HI Shay,
you could use fields (of the current tiddler) instead of tags:

<$checkbox field="status0" checked="closed" unchecked="open" default="open">task0</$checkbox>

I use tiddlyclip to automate  the process of created new numbers - it increment a field called 'new' that is used to automatically create the 'status0' 'status1' for the checkboxes. however there is a new edit tool bar in the prerelease, (I have not tried it) that maybe setup to have a button to insert a new checkbox in a similar way tiddlyclip does.

all the best
BJ

c pa

unread,
Apr 19, 2016, 11:48:33 PM4/19/16
to TiddlyWiki
Try this: create the following tiddlers. Using this you store the task status as a tag in one tiddler (taskmanager)

title: "taskme"
text: <$checkbox tiddler="taskmanager" tag=<<currentTiddler>> > {{!!title}}</$checkbox>

title: mytasks
text:
* {{What am I doing?||taskme}}
* {{I have some time||taskme}}

Shay Shaked

unread,
Jul 31, 2016, 6:36:12 PM7/31/16
to TiddlyWiki
I went over this after some time I forgot about this problem. I don't understand how to use the solutions posted at this point; they are too specific and I feel I need more step by step procedure. I'm continuing research. 

Jed Carty

unread,
Jul 31, 2016, 6:47:22 PM7/31/16
to TiddlyWiki
The way tiddlywiki is designed having one tiddler per task (or sub-task) is the way to do it. The way to go would be to make some sort of input form that you use to add a task and that and the checkboxes themselves would take care of the tagging for you. I am about to go to bed, I will see about making a small demo in the morning.

Shay Shaked

unread,
Aug 2, 2016, 7:05:15 AM8/2/16
to tiddl...@googlegroups.com
Update 10260802: 
They current way to work with checkboxes and tasks in TW5 has one problem with what I want to accomplish. Once a list filter is placed in the code
<$list filter="[!has[draft.of]tag[task]!tag[done]...">

the list presents as a unit, and there's no way for me to add text between the checkboxes or add an additional list under an item on the "parent" list. I'm restricted to one-level simple checklist.

I'm looking into CSS only that  will allow me to change the text-decoration of a line preceded by a checked checkbox to stirkethrough. If I could  define a class of a checkbox and use it this way, perhaps I could bypass the above problem. 

Alternatively, TW5 comes wit a set of tools that place me very close to the solution... 
<$checkbox field="status" checked="open" unchecked="closed" default="closed">Is it open?</$checkbox>
but the field is for the whole tiddler, where I want just the line in question to change status. 

Likewise, if you guys see a simpler solution to my problem, let me know!  Thanks in advance. 

Shay Shaked

unread,
Aug 2, 2016, 9:16:46 AM8/2/16
to TiddlyWiki
<b>Update 20160802.0911</b>

I have an idea. I'm trying to have the toc-expandable property to work with the filter list the task management currently works with. The problem is that I don't know how to do it, the list filter is a different than the toc expandable.

Anyone has an idea?

Sorry, I'm traveling so I can't edit this post well. Thanks!

Jed Carty

unread,
Aug 2, 2016, 9:47:16 AM8/2/16
to TiddlyWiki
Make two tiddlers. The Task List Tiddler, called whatever you want it to be, and the child tasks template called 'childTasks' with the following code:

Task List tiddler:

<ul>
<$list filter='[tag[task]!has[parent]]'>
<$list filter='[is[current]!tag[done]]'>
<li>
<$checkbox tiddler=<
<currentTiddler>> tag=done><$view field='description'><$view field='title'/></$view></$checkbox><br>
{{||childTasks}}
</li>
</$list>
<$list filter='[is[current]tag[done]]'>
<li>
<$checkbox tiddler=<
<currentTiddler>> tag=done>~~<$view field='description'><$view field='title'/></$view>~~</$checkbox><br>
{{||childTasks}}
</li>
</$list>
</$list>
</ul>



Child tasks template:

<ul>
<$list filter='[tag[task]parent{!!title}]'>
<$list filter='[is[current]!tag[done]]'>
<li>
<$checkbox tiddler=<
<currentTiddler>> tag=done><$view field='description'><$view field='title'/></$view></$checkbox><br>
{{||childTasks}}
</li>
</$list>
<$list filter='[is[current]tag[done]]'>
<li>
<$checkbox tiddler=<
<currentTiddler>> tag=done>~~<$view field='description'><$view field='title'/></$view>~~</$checkbox><br>
{{||childTasks}}
</li>
</$list>
</$list>
</ul>


Then if a tiddler is tagged with `Task` and doesn't have a parent field it will be listed as a root task, if a tiddler has the tag Task and a parent field it will be listed as a sub-entry of the parent task.

Shay Shaked

unread,
Aug 3, 2016, 7:44:00 AM8/3/16
to tiddl...@googlegroups.com
Jed, this looks way more complicated than I originally imagined. I guess then that the toc-selective-expandable micro can't work with a list filter? I don't understand the code fully: t
  • The has property, and rather or not "parent" is actually something that is built into the code or is just anything you call it? if so, what does the has[] looks for? I understand tag[].
  • <<currentTidller>> means put a name in there, or does TW knows we're talking about the Tiddler this code is in?
  • {{||.....}} is this line of code actually defines another Tiddler inside this code?
  • is [] property, same question as the has[] what does it do, and does it follow by user's input or is current actually defined? (I assume it's looking for user input)
  • fields: title is self-explanatory, but what is the description? the body of the tiddler?  
I have more questions on the child tiddler, but I think these are the same basically. It's not that I don't' trust you of course, but I want to understand what you're doing. I've been looking in tiddlywiki.com but the explanations there trust that I have a certain basic vocabulary that I don't. I find that I have patient especially with TW because I love what it does, and I enjoy learning it. Hope you don't mind. 

Thank you!  

update: your code actually helps me looking for the right parts in TW. For example, when I say property, I mean operator. I'm still not sure about the field (is there a list of those)..? Thanks again. I'm trying to s squeeze the time to learn these things. 

Jed Carty

unread,
Aug 3, 2016, 9:10:32 AM8/3/16
to TiddlyWiki
What I wrote is a much simpler version of the toc macros. So using that wouldn't really make it simpler. And the toc macros are set up to do a specific thing and aren't flexible in the way that would let you do what you want. I think it is possible using the macros, but you would need some interesting code and it would be more of an experiment in strange coding than something usable.

So ,now your questions:

!has[parent] in the filter means tiddlers that don't have a parent field

<<currentTiddler>> is a variable used by tiddlywiki, you can copy and paste exactly what I posted.

{{ ||...}} is transclusion as a template. It is what let's the toc and other things have an arbitrary number of sub items instead of coding a set number. It is sort of analogous to a function in other languages.

is[current] refers to the current tiddler, it means use whatever the current tiddler is.

description is just some field, if you want it called something different it can be changed.

A field can have whatever name you want. They are name:value pairs. There are some common to all tiddlers but you can add any you want. The ones used by almost all of them are: title, created, modified, text, tags, creator and modifier

Shay Shaked

unread,
Aug 3, 2016, 5:57:34 PM8/3/16
to tiddl...@googlegroups.com
OK, after a lot of trial an error it works. First, I identified that I have a problem with the parent field. I didn't realize I need to put in parent and then define also the name of the tiddler I need to describe as the parent. It's just a matter of understanding how things works. Now that I've done that, I do see tasks nested. Hmm. Now I'm just not sure why I need the Child tasks template. Next I'm working on creating titles as links again, that was useful. 

edit: I changed the $view field to  <$link to={{!!title}}><$view field="title"/></$link>. I changed it both tiddlers where it seems to show, and now I have myself the links again. Excellent. 
Reply all
Reply to author
Forward
0 new messages