Shiraz Dynamic Tables - Do not show a particular tag

Here is the dynamic table I use to show tasks without a due date:

<<table-dynamic filter:"[tag[todo]!tag[done]due[]]" fields:"tbl-checkbox title tags">>

All is well except that it shows ‘todo’ tag in every entry.

How can I make the dynamic table show all tags except ‘todo’?

This is a question about filter and table-dynamic has nothing to do with!

  • In the example you provided [tag[todo]!tag[done]... means all tiddlers has todo tag but not done tag
  • Then what do you mean by due[]? I think it returns tiddlers which have an empty due field!

Test first with your filter and see if you get the correct results or not! e.g

<$list filter="[tag[todo]due[]]">

</$list>
1 Like

Each item in the list is being asked to display

fields:“tbl-checkbox title tags”
so surely you should no be surprised to see “todo” as it happens to be a tag?

This is a case which demonstrates the value of using fields for tiddler types, rather than tags, so tags are left free for ad hoc organisation.

I use the object-type field eg object-type=todo in this case a tiddler can only be a todo or something else. If this was the way you listed todo items object-type[todo] in your filter, yes it is a fieldname[value] operator then todo would not be in your tags.

@Mohammad Sure, The table displays the tag field. All records will carry ‘todo’ tag because the filter says so. What I want is the table should not display ‘todo’ tag.

Currently the table shows:

|Task 1 | todo sometag anothetag |
|Task 2 | todo anothertag |

I want it to show:

|Task 1 | sometag anothetag |
|Task 2 | anothertag |

Can this be done?

@TW_Tones I agree. I, too, would put that in a field. But this is coming from a plugin I use — Projectify. The plugin is setting tags. The table displays ‘todo’ in every row. I wanted to avoid that.

1 Like

Yes, it possible but at the cost of writing a custom template like mytags and then instruct it to exclude the todo tag! So you can clode tags column template now and see how to do the job!

I expect you solution may use this filter “[all[current]tags[]] -[[todo]]”

Eg;
[Edited] to fix order of the output

<$list filter="[all[]has[tags]]">
   <$link/> 
   <$list filter="[all[current]tags[]] -[[todo]]" variable=each-tag>
       <$macrocall $name=tag tag=<<each-tag>>/>
   </$list><br>
</$list>
1 Like

@TW_Tones Yes. That was what I wanted. I have added some table elements thus:

<table class="table-borderless table-lines table-hover-cyan w-100">
  <tr>
    <th>Task
    </th>
    <th>Tags
    </th>
  </tr>
  <$list filter="[tag[todo]!tag[done]due[]!tag[Inbox]!priority[1]]">
    <tr>
      <td><$link/>
      </td>
      <$list filter="[all[current]tags[]] -[[todo]]" variable=each-tag>
        <td><$macrocall $name=tag tag=<<each-tag>>/>
        </td>
      </$list>
    </tr>
  </$list>
</table>

to produce the table.

@Mohammad What I was not able to get was how to generate this table using the Dynamic Table macro.

1 Like

@Mohammad Thanks.

I looked it the $:/plugins/kookma/shiraz/templates/body/tags.

But cloning and editing it is way beyond my current level of expertise. :slight_smile:

  • Open $:/plugins/kookma/shiraz/templates/body/tags
  • See line 2, it is <$list filter="[title<currentRecord>tags[]]">
  • Change it to <$list filter="[title<currentRecord>tags[]] -todo">

Warning

  • this will affect the tags column template for all table uses tags in their fields list
  • when you update the plugin, note this will remain there and will work instead of plugin $:/plugins/kookma/shiraz/templates/body/tags

@Mohammad Thanks! That did the trick.

Is not there a way I can apply this only to a particular table? That would also mean that I won’t have to worry about:

You have to develop your own template!

@Mohammad Thanks.

Come to think of it, I already know the template I need. I can clone it and call it ‘tags-notodo’. The question is how do I assign it to the field? Because the macro will still carry ‘tags’ as a a field.

@deshmukh every template tiddler has a tbl-column-list
table-dynamic scan that list and determines which filed shall be processed with that template!

See Shiraz 2.4.3 — create stylish contents in Tiddlywiki