[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Orgmode] [PATCH] Add org-clock-out-manually
From: |
Bernt Hansen |
Subject: |
[Orgmode] [PATCH] Add org-clock-out-manually |
Date: |
Tue, 24 Jul 2007 12:32:34 -0400 |
User-agent: |
Gnus/5.110006 (No Gnus v0.6) Emacs/22.0.95 (gnu/linux) |
Hi Carsten and list,
I normally clock subtasks for a project when tracking time spent. I've
found stopping the clock automatically when a task is marked DONE
inconvenient because it leaves holes in my clocked day. Sometimes I
forget to clock in the next task on time (because the clock stopped and
I didn't notice) and with this patch I no longer have to fix up the
clock entries manually at the end of the day.
The following patch changes the behaviour of the clock out function so
if org-clock-out-manually is set you have to stop the clock manually
(with C-c C-o in an org-mode buffer or O on the agenda).
It's important for me to have accurate reporting of the time spent on a
project (an extra five minutes spent on SubTask A versus SubTask B
doesn't really matter but losing that 5 minutes from the project clock
matters)
Hopefully this is useful for other people too.
Bernt
---
Subject: [PATCH] Add org-clock-out-manually
Allow the clocking task to continue when it is marked DONE. Setting
org-clock-out-manually now controls if a task clock stops when the
task is marked DONE. Clocking out is now a manual operation.
When clocking tasks in a project such as
* PROJECT ALPHA
** TODO Task 1
** TODO Task 2
** TODO Task 3
*** DONE SubTask A
CLOSED: [2007-07-21 Sat 00:05]
CLOCK: [2007-07-21 Sat 00:02]--[2007-07-21 Sat 00:09] => 0:07
*** TODO SubTask B
CLOCK: [2007-07-21 Sat 00:09]--[2007-07-21 Sat 00:09] => 0:00
I often mark a task (say SubTask A) as DONE and the clock stops. I
then think about the project for a few minutes and forget to clock in
the next task. This leaves holes in my day which I have to manually
fix up. I'm still working on PROJECT ALPHA during this time and want
the timing of that project to continue.
I could just clock PROJECT ALPHA and not the subtasks but it is useful
to know the time spent on the finer resolution tasks.
---
org.el | 13 +++++++++++--
1 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/org.el b/org.el
index 1fc081e..e49aead 100644
--- a/org.el
+++ b/org.el
@@ -1574,6 +1574,13 @@ When nil, no note will be taken."
:group 'org-progress
:type 'boolean)
+(defcustom org-clock-out-manually nil
+ "Non-nil means, the clock will continue timing the task when the current TODO
+entry is marked DONE. Manually clocking out will stop the clock. When nil, the
+clock will stop when the current TODO entry is marked DONE."
+ :group 'org-progress
+ :type 'boolean)
+
(defgroup org-priorities nil
"Priorities in Org-mode."
:tag "Org Priorities"
@@ -15642,7 +15649,8 @@ from the `before-change-functions' in the current
buffer."
'org-remove-clock-overlays 'local))))
(defun org-clock-out-if-current ()
- "Clock out if the current entry contains the running clock.
+ "Clock out if the current entry contains the running clock and
+org-clock-out-manually is nil.
This is used to stop the clock after a TODO entry is marked DONE."
(when (and (member state org-done-keywords)
(equal (marker-buffer org-clock-marker) (current-buffer))
@@ -15654,7 +15662,8 @@ This is used to stop the clock after a TODO entry is
marked DONE."
(member 'clock-out org-log-done))
'(done)
org-log-done)))
- (org-clock-out))))
+ (unless org-clock-out-manually
+ (org-clock-out)))))
(add-hook 'org-after-todo-state-change-hook
'org-clock-out-if-current)
--
1.5.3.rc2.22.g69a9b
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Orgmode] [PATCH] Add org-clock-out-manually,
Bernt Hansen <=