From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konstantin Antipin Subject: increase effort estimate on the fly. Date: Tue, 9 Jun 2009 11:42:43 +0200 Message-ID: <61176df0906090242we7696ddue5ba825ff96622e5@mail.gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MDxr1-0007wN-85 for emacs-orgmode@gnu.org; Tue, 09 Jun 2009 05:42:51 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MDxqw-0007us-HC for emacs-orgmode@gnu.org; Tue, 09 Jun 2009 05:42:50 -0400 Received: from [199.232.76.173] (port=40448 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MDxqw-0007un-79 for emacs-orgmode@gnu.org; Tue, 09 Jun 2009 05:42:46 -0400 Received: from mail-fx0-f217.google.com ([209.85.220.217]:41472) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MDxqv-00038q-L8 for emacs-orgmode@gnu.org; Tue, 09 Jun 2009 05:42:45 -0400 Received: by fxm17 with SMTP id 17so1538826fxm.42 for ; Tue, 09 Jun 2009 02:42:44 -0700 (PDT) List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode mailing list 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)