emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orgmode] increase effort estimate on the fly.


From: Carsten Dominik
Subject: Re: [Orgmode] increase effort estimate on the fly.
Date: Wed, 17 Jun 2009 15:57:33 +0200

Hi Konstantin,

I have added this functionality, but without the global key binding.

Thanks!

- Carsten

On Jun 9, 2009, at 11:42 AM, Konstantin Antipin wrote:

Dear all,

Recently new feature was added - when you set an estimated effort for
a task, you can be notified when time is up.
(sound is controlled with org-clock-sound variable)
I found that pretty often  from the beginning I can not correctly
estimate what time task will take and I need to give myself an
additional time.

To address this issue I wrote couple of functions that helps me with that.
What do they do:
When you have clocked item and want to add time (increase effort
estimate), you call function org-clock-increase-effort-estimate, which
will ask you for a time period. It will update update currently
clocked item in a buffer as well as a mode line.

I hope this might be helpful to someone

Kostya

defun org-clock-increase-effort-estimate (add-effort)
 "Add time to the effort estimate.
Update Effort property of currently clocked item.
Update mode line."
 (interactive "sHow much to add? (hh:mm or mm)? ")
 (if (and (org-clock-is-active) org-clock-effort)
     (let ((add-effort-minutes (org-string-to-minutes add-effort)))
        (progn (setq org-clock-effort (org-minutes-to-hh:mm-string
                                       (+ add-effort-minutes
                                          (org-hh:mm-string-to-minutes 
org-clock-effort))))
               (org-clock-update-mode-line)
               (message "about to increase effort.")
               (org-clock-set-effort-estimate-in-buffer org-clock-effort)
               )
        ))
 )

(defun org-clock-set-effort-estimate-in-buffer (effort-string)
 "Increase effort estimate PROPERTY for the currently clocked item.
Jump to the correct buffer, increace the PROPERTY, jump back."
 (if (org-clock-is-active)
     (progn
        (let ((back-mark (point-marker)))
          (org-clock-goto)
          (org-set-property "Effort" effort-string)
          (switch-to-buffer (marker-buffer back-mark))
          (goto-char back-mark)
          (message "Effort was increased.")
          ))))



(defun org-string-to-minutes (string)
 "Recognizes two formats:
1:30 - converted to minutes
30   - interpreted as minutes."
 (case  (length (split-string string ":"))
   (2 (org-hh:mm-string-to-minutes string))
   (1 (string-to-int string))
   )
 )

(defun org-clock-is-active ()
 "Return true if clock is currently running.
nil otherwise."
 (if (marker-buffer org-clock-marker)
     t)
 )


;; Suggested bindings
(org-defkey org-mode-map "\C-c\C-x\C-e" 'org-clock-increase-effort- estimate)
(global-set-key "\C-c\C-x\C-e" 'org-clock-increase-effort-estimate)


_______________________________________________
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.
address@hidden
http://lists.gnu.org/mailman/listinfo/emacs-orgmode





reply via email to

[Prev in Thread] Current Thread [Next in Thread]