Need help with filter code with Projectify

Can anyone please help me with following code:

<<timeline subfilter:"tag[done]!has[draft.of]sort[]">>

<$button actions='<$action-deletetiddler $filter="[tag[done]]"/>'>
Delete all done Tasks
</$button>

I want that it filters all tasks tagged done excluding tasks that are part of a project. I use the Projectify plugin.

The problem is that the tasks are tagged according the heading of their project they belong to. They have no common tag I can filter. But hierarchically they are always standing under the project tag. All project tiddlers are tagged project.

This info does not help with your direct problem, but helps you formatting your code blocks.

There is some about code block formatting at this thread: Create Code-Blocks Using Backticks in Discourse Threads

Tanks so far. Didn’t realize the syntax error. Wrote on my smartphone. :sweat_smile:

Take a look at the list of filter definitions defined in $:/plugins/nico/projectify/macros/filters.

todo-list-drop-tags looks close to what you need.

1 Like

I look into it. Thanks. :+1:
I only hope I understand the content and how to modify it, because I’m only an enduser not a programmer. :sweat_smile:

@Silverhawk85 I think the todo items do have a common tag, that is the project name which tags all its items. So either obtain the project name or add it to your filter;

tag[Project name]tag[done]!has[draft.of]sort[]

Just open a done tiddler and you will see.

This is what I wanted to avoid.
Manually adding new project names to the filter everytime I create a new project.

I read on Grok TittlyWiki that a hierarchic structure can be built with tags. That is the case here, as I understand.

All Projects are tagged “Project” which is the parent tag of all Task Tiddlers which are part of an Project. The child tag in this case is “done” which also defines a tiddler as a done task. Other child tags are the project names, which are not common over all projects.

So I thought there could be a filter expression like:
Search all Tiddlers which aren’t part of the parent tag Project and are tagged done.

What I want to achieve is to create a single button that deletes all everyday tasks after they have been completed in order to keep my wiki clean and only keep those tasks that are part of a project as proof of work.

Maybe I’m thinkig to complicated and there is an other, easier way to achieve this. :wink:

Disclaimer: I don’t use Projectify, so my answer here might work… or not!

If tag structure is “Project” tagging every project, in turn tagging every task, then something like this might find done tasks linked to a project:

{{{ [tag[Project]tagging[]tag[done]] }}}

Which means:

  • find every tiddler tagged “Project”
  • then find every tiddler tagged by these projects
  • then find tiddlers tagged “done” among these.

If the code above lists the tiddlers you want to remove from your original filter, you can combine them like this:

{{{ [[tag[done]] :except[tag[Project]tagging[]tag[done]] }}}

You can check if the result is correct by pasting the full line in a new tiddler, and if it works, replace your filter="..." parameter by the new filter (enclosed between triple curly brackets above).

Hope this helps,

Fred

Hmm, doesn’t work somehow.
But I found an other solution:

Everyday tasks all go, in my case, to the inbox while project tasks go straight to their projects.
Inbox tasks all have the Tag “Inbox” so I simply set the filter to all Tiddlers that contain “Inbox” and “done” tags. Not so elegant but it works for me. :slight_smile: