emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [O] Prompt for time when clocking in?


From: Nick Dokos
Subject: Re: [O] Prompt for time when clocking in?
Date: Thu, 20 Oct 2011 13:09:45 -0400

Nathan Neff <address@hidden> wrote:

> Some progress --
> 
> I used Nick's suggestion combined with the org-read-date function.
> 
> This is my first attempt -- It will prompt you for a time, and clock
> in to the headline that the cursor is on with that time.
> 
> (defun njn/clock-in-at-time()
>        (interactive)
> (setq start-time (org-read-date 't 't))
> (org-clock-in nil start-time)
>     )
> 

Two minor nits: t is a constant so you don't need to quote it; emacs-lisp
mode helps with indentation (putting it in a code block - see below -
in an org file and using C-c ' to edit it works wonderfully).

I'm not sure whether 'tis better to specify relative or absolute times
("let's see: I should have clocked in 15 mins ago" vs "Let's see: I
should have clocked in at 12:20"), but just in case you want to try the
alternatives, here are two dummy function functions for the two
alternatives - they just print the result time in the echo area.

The rel time can use a prefix arg (ESC -15 M-x
rel/dummy-clock-in-at-time) or the minibuffer if no prefix arg is
specified (and you might want to bias it towards the past, so 15 = 15
mins ago and -15 = 15 mins from now, but that might be a bit
perverse).

FWIW, I think I would tend to prefer your implementation, but since I
clock nothing, I'm no expert :-)

Nick

#+begin_src elisp

(defun rel/dummy-clock-in-at-time (nmin)
  (interactive "N+/-minutes: ")
  (setq start-time (time-add (current-time) (seconds-to-time (* nmin 60))))
  (message (format-time-string "%H:%M:%S" start-time)))

(defun abs/dummy-clock-in-at-time()
  (interactive)
  (setq start-time (org-read-date t t))
  (message (format-time-string "%H:%M:%S" start-time)))

#+end_src



> It's a bit wonky if you clock in to a past time, and then you want to
> resolve that clock, but my main use-case for now is this:
> 
> 1) I start doing something
> 2) I forgot to clock in
> 3) I don't want to press 8 keys in order to clock in 15 minutes ago.
> 
> This solution should work for now.  Although, I could see it being a
> handy way to
> prompt for clock-in *and* clock-out times.
> 
> Thanks for the suggestions,
> 
> --Nate
> 
> On Wed, Oct 19, 2011 at 10:35 AM, Nick Dokos <address@hidden> wrote:
> > John Hendy <address@hidden> wrote:
> >
> >> On Wed, Oct 19, 2011 at 9:54 AM, Nathan Neff <address@hidden> wrote:
> >> > Is there a way to pull up a date/time prompt when clocking in to a task?
> >> >
> >> > Sometimes, I started a task 15 minutes ago, and have to go through the 
> >> > following
> >> > steps:
> >> >
> >> > 1) clock in on the task,
> >> > 2) Go to the CLOCK section for that header and press tab to open it
> >> > 3) Fix the clock-in time
> >> >
> >> > If it's not built in, does anyone have any slick functions that would 
> >> > accomplish
> >> > the same thing? :-)
> >>
> >> Check out a thread I started a bit back on this exact topic:
> >> --- http://www.mail-archive.com/address@hidden/msg40498.html
> >>
> >> It wasn't exactly what I expected, the suggestion by Bernt for `M-x
> >> org-resolve-clocks` works reasonably well if you are trying to clock
> >> back-to-back activities. Post back after you read that perhaps? Maybe
> >> you'll find something helpful.
> >>
> >
> > org-clock-in takes an optional start-time argument which is used instead
> > of the current time when non-nil. So I tried
> >
> > (setq ct (current-time))
> > (setq start-time (cons (car ct) (list (- (cadr ct) 900) (caddr ct))))
> >
> > and started a clock on a task with
> >
> > ESC ESC : (org-clock-in nil start-time)
> >
> > and it got clocked in 15 minutes before the current time.
> >
> > Now I don't propose this as a good UI :-), but it would require just a
> > small wrapper for it to dtrt.
> >
> > HTH,
> > Nick
> >
> >
> >
> 



reply via email to

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