Commit Graph

408 Commits

Author SHA1 Message Date
bdfcc61dd2
Refactor and simplify work hour computation in overview report
This is to prepare a generalization of how to specify work hours, namly
using a function from date to available work hours on that day.
2024-10-03 17:40:46 +02:00
9d03f2d953
Show available work hours in overview report to easy comparison
This is also helpful to plausibilize the shown entries, e.g. checking
whether holidays were accidentally included.
2024-10-03 17:30:56 +02:00
e9627e69fd
Mark entries with high utilization in workload overview report
That makes spotting over-utilization easier.
2024-10-03 10:32:42 +02:00
ca1b3613f9
Add simple computation of utilization to workload overview report
This way, it should be easier to spot days where utilzation is too high
to take any more work.
2024-10-03 10:32:29 +02:00
f948f3dca3
Make skip-matches also skip computations in workload overview report
This avoids unnecessary computations.
2024-10-03 09:54:15 +02:00
d0b126ec54
Add missing id: prefix when adding DATE references to checklists
Forgot this, oops.
2024-09-19 15:47:47 +02:00
dbda1928ce
Catch errors on user clock choice to ensure continuous clocking 2024-09-15 13:09:12 +02:00
75b54128bd
Ignore SOMEWHEN items in checklist backlinks
Since these are deferred items, they don't have to show up in checklists.
2024-08-25 09:07:46 +02:00
d01b3bdc09
Add clocktable formatter to filter entries with small clocking time
Whenever I try to check what I actually in the past couple of days, I
try to use a clocktable for this.  However, those clocktables are
usually littered with small entries, i.e. entries where I only spent a
couple of minutes on (example: a quick chat with a colleague).  Those
entries clutter the view for the relevant entries, making it hard to
make sense of past activities.

Restricting the clocktable to a certain depth somehow helps, but major
single tasks are hidden this way, and I usually want to see those.

The custom formatter added in this commit tries to alleviate this
situation by providing a mechanism to filter out those entries using a
minimum clocktime threshold.  Let's see how this feature plays out.
2024-08-17 16:07:17 +02:00
33b7d5d8d3
Allow to skip entries in workload-overview-reports
This is especially useful when skipping weekends, but also allows for
future extensions where based on the date more complex skipping criteria
can be implemented, e.g. for holidays or vacations.
2024-08-02 18:42:59 +02:00
f110d147fa
Improve implementation to find next started or open checkbox
The algorithm has been simplified and has been commented where
appropriate (from my point of view).  An extensive docstring has been
added to describe the intention of the approch and its recursive nature.
2024-07-12 08:58:01 +02:00
4a1509981b
Descend into sublists when searching for first open checkbox 2024-07-11 21:53:56 +02:00
21200d8bc4
Try to refine Org QL query for currently active DATE entries
`ts-now` should be better than `today`, as it includes the current time.
2024-07-10 15:24:08 +02:00
7309cee413
Insert active concurrent DATE entries when inserting checklist
Those DATE entries may be relevant to the item at hand.

Caveat: the query to determine active, concurrent DATE entries is not
quite right yet, two disjoint time ranges that do not include today but
cover the past and the future would also be considered as concurrent
active date.  This needs to be fixed.
2024-07-06 13:50:33 +02:00
94187697e6
Remove checklist entry for relevant backlinks when there are none
The original motivation to keep this entry was to signify that backlinks
where searched for, but none where found.  However, I now think that it
is enough to just rely on the code to search for relevant backlinks, and
where there are none, to just print nothing.
2024-07-06 12:51:51 +02:00
2318ffa199
Add handling for ledger errors when converting to Org tables 2024-07-06 12:03:46 +02:00
7d75bae3ed
Hide drawers when jumping to current clock via custom function
Open drawers confuse me.
2024-07-06 09:42:32 +02:00
6f4baa885e
Conduct a bit of refactoring for ledger to Org table converter 2024-07-01 20:52:40 +02:00
e7c08b088d
Introduce helper function to format Ledger CLI output as Org table
This function is ideal, but it's doing the job.  It can be used to
format output of calls to ledger as follows:

    #+begin_src emacs-lisp :results value raw table
    (db/ledger-cli-to-org-table-list
     (concat "ledger -f finance.ledger "
             "--period monthly --depth 2 "
             "--display 'd >= [2024-07-01]' "
             "--empty "
             "lisp ^Expense"))
    #+end_src
2024-07-01 20:11:40 +02:00
1f348e256d
Disable refile verification when jumping to any Org item
Any item could be of interest, not only those that are valid refile
targets.

This might be slow.  May we should not be using the refile mechanism to
jump to any item?
2024-04-01 11:16:15 +02:00
63eeefcb8e
Ignore backlink items tagged HOLD in default checklist
Items tagged with HOLD should be ignored in normal processes and should
thus not appear as backlinks.  Items tagged WAIT are supposed to appear,
though, and are not excluded from the list of relevant backlinks.
2024-03-25 17:48:50 +01:00
8876f04756
Harden shortcut to jump to any Org heading from anywhere
In the previous implementation, when in some buffer which is not an Org
buffer that accidentally contains lines that partially match the regular
expression describing an Org heading, errors could occur when the Org
refile cache was empty.  To address this issue, let's temporarily switch
to some Org buffer before generating the list of all Org heading
targets.
2024-03-16 17:08:00 +01:00
7d398a66c8
Replace counsel Org heading dispatch by org-refile
This is nice enough and removes the last dependency to counsel :)
2024-03-09 15:04:21 +01:00
aadca01244
Simplify Org clocking hydra
No need to define an anonymous function her, just make the call
directly.
2024-03-09 15:03:10 +01:00
1cc7abd4d7
Clarify that remaining time is computed over clocked time of subtree 2024-01-22 19:52:27 +01:00
af05bd2106
Collect custom Org key bindings in a custom hydra 2024-01-07 17:12:27 +01:00
b7d190c513
Introduce separate hydra for Org jump commands
`hydra-org-clock` thus only hosts keybindings for clock-related
commands, while the new `hydra-org-jump` is for jumping to Org items in
various ways.  Feels cleaner to me this way.
2024-01-01 17:04:55 +01:00
5ebeeef3fd
Ensure point is on current clock when setting default task
Not sure whether this is the case otherwise.

Also add output when the default task is set, to see when it's set
accidentally.
2023-12-10 19:04:07 +01:00
d1e3409e80
Only search for parent task for clock continuation when necessary
Avoid unnessary work by leveraging the fact that `setq` returns the new
value of the variable being set :D
2023-12-08 17:45:10 +01:00
498f4b78c4
Automatically clock into interrupted task only when not closed yet
This is to avoid jumping back to old task that are still pointed at by
`org-clock-interrupted-task` that have long been closed.  Let's see
whether this is enough to handle this case.
2023-12-08 17:43:59 +01:00
7128144ee0
Fix errors in some docstrings 2023-12-08 17:27:29 +01:00
482cebea68
Fix docstring for clock continuation function
Forgot to adapt this previously.
2023-12-06 16:40:56 +01:00
416ba934f9
Resume clock at interrupted task when available 2023-12-06 16:31:05 +01:00
2407f4196f
Fix typo in hydra docstring 2023-11-05 12:04:38 +01:00
a959152d21
Increase highlighting of valid keys in Org clock hydra
This improves spotting the available keys, I think.
2023-11-04 09:35:40 +01:00
f14a5b6237
Make default Org clock hydra a bit more descriptive 2023-11-03 16:55:24 +01:00
44b78dbef1
Make main Org hydra a bit more consistent and self documenting
In particular, use “j” instead of “c” for jumping to the current clock, like the
standard Org bindings use it.
2023-11-01 21:06:35 +01:00
aeff0883bb
Fix missing description in main Org hydra 2023-10-23 17:37:38 +02:00
badbb85da0
Ensure org-password-manager is loaded when loading password by ID
Otherwise, `org-password-manager-default-password-wait-time` may be undefined
during runtime.
2023-08-18 19:21:14 +02:00
a6324a668d
Move custom org-password function to db-org
This is where it belongs, even if there's a warning about free variable
referencing.
2023-08-17 17:06:42 +02:00
e30ab3f260
Ensure inserting links works when the source buffer is narrowed 2023-08-15 18:11:47 +02:00
d6ffc0ba40
Avoid duplicate backlink targets in backlink reports
I am not sure yet when duplicate entries happen, but they do happen
occasionally.
2023-08-12 10:52:58 +02:00
e892a849c1
Allow to set an initial input when inserting a link to another item
This will allow to bind `db/org-add-link-to-other-item` with different initial
inputs to different keys to have often used selection directly at hand.

Setting the initial input is a bit tricky, though, because
`org-refile-get-location` does not allow to set it.  Instead, we have to
temporarily overwrite `completing-read` with the corresponding parameter set
directly.
2023-07-29 20:08:19 +02:00
c0660fe0f6
Give argument of db/org-get-location a more descriptive name
It's not a universal arguments, so calling it ARG is not only just
non-informative, but also misleading.
2023-07-29 19:50:12 +02:00
56f60e97d3
Add shortcut to jump to current clock in main Org hydra
Had forgotten about that one, sorry.
2023-07-21 10:26:44 +02:00
1d33039dde
Unfold subtree before evaluating all source blocks
This is meant to mitigate an issue with table alignment when those tables are
results of source blocks, contain links in cells and are hidden (i.e., folded):
in those circumstances, the table alignment seems to be broken, because the cell
width does not take into account that links are shorter than their textual
representation.

I am not quite sure whether this is a bug in my configuration or a bug in Org
mode itself.  The function to compute cell width is `org-string-width`, but
maybe this function does not get passed the correct input when tables are folded
and need to be aligned?
2023-07-17 20:14:09 +02:00
3bb5b4481d
Search through all Org mode buffers when inserting backlinks
This seems to be fast enough, and since I often find myself aborting a current
backlink insertion query because I missed to include all Org mode buffers,
making it the default only seems to be reasonable.
2023-07-02 16:44:36 +02:00
9ff7c848a1
Change shortcut for interactive clock selection
This is for consistency with all other commands that use "s" to select a running
clock from the history.
2023-05-28 15:30:18 +02:00
f8caaae071
Allow adding links to Org items also in non-Org-mode buffers
The relevant use-case (for me at least) is to insert links to Org items in the
minibuffer when capturing new items.
2023-05-26 18:08:22 +02:00
113f3f4495
Fix invalid logic for nil dates in workload report
When not provided in dynamic workload reports, `start-date` and `end-date`
should be treated as unconstrainted.  However, instead dates were queried
interactively in that case, because `org-read-date` is being used to normalize
date display.  Fixed that.
2023-05-24 19:25:02 +02:00