traggo / server

self-hosted tag-based time tracking
https://traggo.net
GNU General Public License v3.0
1.21k stars 58 forks source link

Display aggregate time for a combo of tags #167

Closed jcbaillie closed 7 months ago

jcbaillie commented 7 months ago

Is your feature request related to a problem? Please describe. I have different projects categorized with the project:xxx tags, as well as various types, like type:yyy. I have not found a way to query the database to tell me the total time spent on project:A + type:B (let's say: "how much time did I spend in admin on project A").

Describe the solution you'd like We should be able to define a combo of tags and get the cumulated time over a given period for all tasks that contains ALL the specified tags. Tags can be generic like project:* or specific, like project:A. One implementation possibility with minimal development would be to:

  1. Introduce a new Entry type for the dashboard, which would be called "Aggregate" or something similar
  2. Allow the "Tags" field in the Edit window to accept not only full tags, but labeled tags (like 'project:A', instead of just 'project', and possibly 'project:*' for a wildcard option), in a way similar to the "Enter tags" field of the Timesheet/List window
  3. Display in the Dashboard Entry view the cumulated time for the tasks that match all (AND operator) tags specified over the period

Describe alternatives you've considered Currently, it is only possible to measure the cumulated time of tasks filtered based on a specific tag, like project:A (this time will be shown for example in a dashboard entry defined over the 'project' tag). I don't see an alternative, Traggo seems to be focused on the OR operator on tags, with no option to express AND.

jmattheis commented 7 months ago

Would the feature requested in https://github.com/traggo/server/issues/102 solve your problem?

jcbaillie commented 7 months ago

Yes, it would.

As hinted in #102 at the end of the description, what we would fundamentally need here is a tag boolean algebra, that allows to compose tag value filters with OR, AND and NOT operators. This is probably a bit more work, and requires a proper UI (or perhaps as a first step a simple string field with a well defined grammar for the tag combo syntax + parsing of this string in the code, so no need for a fancy UI in a first iteration).

Anyway, the simple use case in #102 is covering probably 99% of the needs, so if you have already something cooking for that, it would be fantastic.

eitch commented 7 months ago

Or how about just allow to add a filter to the dashboard entry, i.e. the filter would allow be to select a tag value: customer:mycustomer and then i leave the remaining tags as usual in the entry.

Actually seems to be what #102 would do. Should have read the issue

jmattheis commented 7 months ago

Okay, then I'll close this as duplicated of the linked issue.