mcndt / obsidian-toggl-integration

A Toggl integration plugin for the popular knowledge base application Obsidian.
GNU General Public License v3.0
270 stars 19 forks source link

As a user, I want to query Toggl Reports in a codeblock to use as part of daily/weekly/... review notes. #27

Closed mcndt closed 2 years ago

mcndt commented 2 years ago

Before I make a feature request, I wanted to make sure I understood this roadmap item. If implemented, would this enable a user to display, for instance, all the Toggl entries for a specific date in an Obisidian note? If so, I'd strongly +1 this feature.

I would love to include a Toggl code block in my daily and weekly review notes. Thanks! Jack

Originally posted by @jebeaudoin in https://github.com/mcndt/obsidian-toggl-integration/discussions/26

cor commented 2 years ago

I would love this functionality!

tonyxiao commented 2 years ago

That would be so sick!

shabegom commented 2 years ago

How dare you call me a "user"! But yeah would love this or some way to log Toggl times to my DNP.

mcndt commented 2 years ago

@tonyxiao @cor @shabegom

Hey everyone, as I am starting my final graduate year I am eager to develop this feature because I myself would get a lot of use out of it. I have just whipped up a first draft of the query language for creating these reports and I would like some feedback from y'all to see if this covers all your needs 😄

What I think is still lacking currently, but that I am not sure is useful is:

These reports are also heavily drawn from Toggl's own report pages. If you have any more creative or different ways you would like to visualize your time entries please let me know.

Summary reports

very similar to summary report on track.toggl.com

// report type = summary
SUMMARY 

// Add one of these as time interval selector
WEEKLY                          // get summary for this week
MONTHLY                         // get summary for this month
FROM {date0} TO {date1}         // get summary for date range
PREVIOUS {x days, x weeks, ...} // get summary for previous dates

// Optional, add one of these to narrow query
[INCLUDE 'project A', 'project B', ...] // whitelist projects
[EXCLUDE 'project A', 'project B', ...] // blacklist projects

// Optional, add any of these to limit visualizations
[HIDE PIE]   // hides colored area plot 
[HIDE BAR]   // hides time bars (e.g. bar plot with bars for each day of week)
[HIDE LIST]  // hides list of projects with totals

For example, to get an overview of the last week, do not include the project “hobby project” without the pie plot:

SUMMARY WEEKLY
EXCLUDE 'hobby project'
HIDE PIE

Detailed reports

Similar to track.toggl.com/timer list view, but can also be grouped by project.

// report type = time entry list
LIST

// Add one of these as time interval selector.
WEEKLY                          // get summary for this week
MONTHLY                         // get summary for this month
FROM {date0} TO {date1}         // get summary for date range
PREVIOUS {x days, x weeks, ...} // get summary for previous dates

// Optional, add one of these to narrow query
[INCLUDE 'project A', 'project B', ...] // whitelist projects
[EXCLUDE 'project A', 'project B', ...] // blacklist projects

// Optional, group the time entries by project or day. 
// This will show a header for each group with some aggregate stats,
// e.g. total duration per group
[GROUP BY {(DATE|PROJECT)}]

// Optional, change sort order by date
[SORT {ASC|DESC}]

// Optional, limit the amount of results
[LIMIT {N}] // Limit the amount of results

Example: give me all time entries from the past 7 days for the project “Obsidian Plugin Development”:

LIST PREVIOUS "7 days"
INCLUDE "Obsidian Plugin Development"
GROUP BY DATE
shabegom commented 2 years ago

I think this is looks excellent!

LIST FROM <% tp.file.title %> TO <% tp.file.title %>
INCLUDE "Super Secret Project"
mcndt commented 2 years ago

@shabegom That's an excellent use case that I forgot to include. I'll make sure it is minimal effort to get a day report, I'm not a fan of having to do a range of one date either!

tonyxiao commented 2 years ago

I would love to be able to filter by 'user', I'm in a Toggl workspace with multiple users (including people I manage) and I'd love to be able to both see my time as well as theirs.

mcndt commented 2 years ago

@tonyxiao I will keep that in mind! For now my focus will be developing the query language as presented here (a bit of a technical learning opportunity by itself), but when that is finished I can consider adding support for multiple users.

mcndt commented 2 years ago

Hi everyone. There have been quite a few months of inactivity on this project as I have been preoccupied with my Master dissertation. However, with the holidays I have been able to get a lot of work done on this feature.

If all goes well, I think I can release this feature set by the end of January.

Here's a preview:

image

renders into:

image

jebeaudoin commented 2 years ago

C’est formidable!

On Sun, Jan 2, 2022 at 1:20 PM Maxime Cannoodt @.***> wrote:

Hi everyone. There have been quite a few months of inactivity on this project as I have been preoccupied with my Master dissertation. However, with the holidays I have been able to get a lot of work done on this feature.

If all goes well, I think I can release this feature set by the end of January.

Here's a preview:

[image: image] https://user-images.githubusercontent.com/23149353/147885485-5cb0fc8b-b24e-4764-ad93-1ed4a7829a44.png

renders into:

[image: image] https://user-images.githubusercontent.com/23149353/147885493-674a7037-788d-4288-ae5c-000f26ae40eb.png

— Reply to this email directly, view it on GitHub https://github.com/mcndt/obsidian-toggl-integration/issues/27#issuecomment-1003755488, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACT3WG2DARDBUJEBTACLE2TUUCJQHANCNFSM5DGI34WQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

mcndt commented 2 years ago

This feature is now available in 0.4.0! Don't hesitate to shoot me feedback regarding bugs or use cases on the release discussion page:

https://github.com/mcndt/obsidian-toggl-integration/discussions/38

BrianBatchelder commented 11 months ago

I think you need to update your Development Roadmap. This (and one other issue) are shown as "Next Release" when, in fact, I believe you have already released them.