Re: [O] Still Wishing for Snooze

2013-02-13 Thread Samuel Loury
Bastien b...@altern.org writes:

 Point well taken -- this is now what adding --2d does: use a
 temporary delay that will not be taken into account for dates later
 than the next repeater, and that will be deleted when a repeating
 task is marked as done.  Thanks for suggesting this.

Thanks for the --2d feature!

May be I should also consider sending you a cheesecake ;-).

-- 
Konubinix
GPG Key: 7439106A
Fingerprint: 5993 BE7A DA65 E2D9 06CE  5C36 75D2 3CED 7439 106A


pgpCNksQNAlTr.pgp
Description: PGP signature


Re: [O] Still Wishing for Snooze

2013-02-13 Thread Bastien
Samuel Loury konubi...@gmail.com writes:

 May be I should also consider sending you a cheesecake ;-)

Well, cheesecake don't travel very well through the Atlantic,
a postcard would do!  :)

-- 
 Bastien



Re: [O] Still Wishing for Snooze

2013-02-12 Thread Bastien
Hi Michael,

Michael Brand michael.ch.br...@gmail.com writes:

   SCHEDULED: 2013-02-07 jeu. -2d

 The item will not be shown today, but in three days.

 For this case I would use:

   SCHEDULED: 2013-02-09 Sat

AFAIU this would not work for what Andrew wants.  He wants the
scheduled item to be invisible on the 2013-02-07 but to appear on
the 2013-02-07 as it is was scheduled on 2013-02-09.  My change
does this.

 It seems I don’t get the point because when a TODO with repeater

   SCHEDULED: 2013-02-01 Fri +1w -3d

 is set to DONE the delay remains and this way also here I would not
 use a delay but:

   SCHEDULED: 2013-02-04 Mon +1w

 The usefulness of a SCHEDULED delay I see together with a TODO and
 repeater to implement an _exception_ (to simplify: exception just for
 the first date, before the repetitions). For example

   SCHEDULED: 2013-02-01 Fri +1w -3d

 would mean: Usually start working on the entry earliest on the first
 day of the month except [2013-02-01 Fri] when work can not start
 before [2013-02-04 Mon]. It would start to show in the agenda on
 [2013-02-04 Mon], [2013-03-01 Fri], [2013-04-01 Mon], [2013-05-01
 Wed], [2013-06-01 Sat] etc. On let’s say [2013-02-05 Tue] it would be
 set to DONE and would change to:

   SCHEDULED: 2013-03-01 Fri +1w

 Note the automatically removed delay.

Point well taken -- this is now what adding --2d does: use a
temporary delay that will not be taken into account for dates later
than the next repeater, and that will be deleted when a repeating
task is marked as done.  Thanks for suggesting this.

I think it still makes sense to keep the default behavior: -1d in
a scheduled items means inconditionnally add a delay of one day,
even when there is a repeater -- because perhaps what users want 
is a global delay for the repeated task.  If that's not the case,
--2d is just fine too.

Thanks for your feedback on this!

-- 
 Bastien



Re: [O] Still Wishing for Snooze

2013-02-12 Thread Michael Brand
Hi Bastien

On Tue, Feb 12, 2013 at 11:21 AM, Bastien b...@altern.org wrote:
 Point well taken -- this is now what adding --2d does: use a
 temporary delay that will not be taken into account for dates later
 than the next repeater, and that will be deleted when a repeating
 task is marked as done.  Thanks for suggesting this.

This

* TODO 1a
  SCHEDULED: 2013-01-10 Thu +1m --2d
* TODO 2a
  SCHEDULED: 2013-02-10 Sun +1m --2d
* TODO 1b
  SCHEDULED: 2013-01-11 Fri +1m --2d
* TODO 2b
  SCHEDULED: 2013-02-11 Mon +1m --2d
* TODO 1c
  SCHEDULED: 2013-01-12 Sat +1m --2d
* TODO 2c
  SCHEDULED: 2013-02-12 Tue +1m --2d

in the agenda of today ([2013-02-12 Tue]) shows 1a 2a 1b 2b but I
would expect 1a 2a 1b 1c.

And there is a critical bug: Setting 2a to DONE repeats all entries
below too.

Michael



Re: [O] Still Wishing for Snooze

2013-02-12 Thread Michael Brand
On Tue, Feb 12, 2013 at 1:29 PM, Michael Brand
michael.ch.br...@gmail.com wrote:
 And there is a critical bug: Setting 2a to DONE repeats all entries
 below too.

Reducing to a MCE shows me that triggering the repetitions requires
#+STARTUP: nologrepeat

Michael



Re: [O] Still Wishing for Snooze

2013-02-12 Thread Bastien
Hi Michael,

Michael Brand michael.ch.br...@gmail.com writes:

 And there is a critical bug: Setting 2a to DONE repeats all entries
 below too.

I fixed this one.  I'm looking in the other issue right now.

Thanks!

-- 
 Bastien



Re: [O] Still Wishing for Snooze

2013-02-12 Thread Bastien
Hi Michael,

Michael Brand michael.ch.br...@gmail.com writes:

 This

 * TODO 1a
   SCHEDULED: 2013-01-10 Thu +1m --2d
 * TODO 2a
   SCHEDULED: 2013-02-10 Sun +1m --2d
 * TODO 1b
   SCHEDULED: 2013-01-11 Fri +1m --2d
 * TODO 2b
   SCHEDULED: 2013-02-11 Mon +1m --2d
 * TODO 1c
   SCHEDULED: 2013-01-12 Sat +1m --2d
 * TODO 2c
   SCHEDULED: 2013-02-12 Tue +1m --2d

 in the agenda of today ([2013-02-12 Tue]) shows 1a 2a 1b 2b but I
 would expect 1a 2a 1b 1c.

This should be fixed now.  Thanks for the clear example and the
testing.

-- 
 Bastien



Re: [O] Still Wishing for Snooze

2013-02-12 Thread Michael Brand
Hi Bastien

On Tue, Feb 12, 2013 at 5:33 PM, Bastien b...@altern.org wrote:
 This should be fixed now.  Thanks for the clear example and the
 testing.

Thank you for fixing the bugs and mainly for the --2d delay for
repeated SCHEDULED.

To summarize my point of view of this thread: Originally I wanted to
use such a delay primarily for repeated DEADLINE. But as I had to
realize, to me such a delay seems not simple enough to use with
warning periods other than -0d. Maybe I will adapt my usage of
SCHEDULED a bit so that I can use repeated SCHEDULED with the new --2d
delay, instead of my current not delayable repeated DEADLINE with -0d.

Michael



Re: [O] Still Wishing for Snooze

2013-02-12 Thread Andrew M. Nuxoll
I just got this installed today and it appears to be *exactly* what I 
wanted.


Many thanks for this implementation.  Your cheesecake is in the mail. :)

:AMN:

On 02/07/2013 01:44 AM, Bastien wrote:

Hi Andrew,

Andrew M. Nuxoll nux...@up.edu writes:


If you do that, I may have to send you a cheesecake.

Time for a cheesecake!

You can now use a delay cookie like this:

   SCHEDULED: 2013-02-07 jeu. -2d

The item will not be shown today, but in three days.

See the new options `org-scheduled-delay-days' and
`org-agenda-skip-scheduled-delay-if-deadline' which
are quite symmetric to `org-deadline-warning-days'
and `org-agenda-skip-deadline-prewarning-if-scheduled'.

Thanks for this idea, and thanks to Michael for the
implementation example -- I implemented it a bit
differently, but I think it makes sense (1) to use
-2d to tell the scheduled item is postponed, and
(2) to use the same - for prewarning and delays.




--
Andrew M. Nuxoll Phone: 503-943-7688
Asst Professor of Computer Science   Fax:   503-943-7316
University of Portland - MSC #145Email: nux...@up.edu
5000 N. Willamette Blvd  Web:   http://faculty.up.edu/nuxoll
Portland, OR  97203-5798 Office: Shiley Hall Rm 217




Re: [O] Still Wishing for Snooze

2013-02-09 Thread Samuel Loury
Hi,
Michael Brand michael.ch.br...@gmail.com writes:

 The usefulness of a SCHEDULED delay I see together with a TODO and
 repeater to implement an _exception_ (to simplify: exception just for
 the first date, before the repetitions). For example

   SCHEDULED: 2013-02-01 Fri +1w -3d

 would mean: Usually start working on the entry earliest on the first
 day of the month except [2013-02-01 Fri] when work can not start
 before [2013-02-04 Mon]. It would start to show in the agenda on
 [2013-02-04 Mon], [2013-03-01 Fri], [2013-04-01 Mon], [2013-05-01
 Wed], [2013-06-01 Sat] etc. On let’s say [2013-02-05 Tue] it would be
 set to DONE and would change to:

   SCHEDULED: 2013-03-01 Fri +1w

 Note the automatically removed delay.

 Am I missing something?


I quite agree with you. It is also the way I understood it, with the
automatic removal of the -3d. 

Only a tiny glitch there, I suppose you guessed it was written

SCHEDULED: 2013-02-01 Fri +1m -3d

and not 

SCHEDULED: 2013-02-01 Fri +1w -3d

Because your description is about a monthly repeated event while the
example shows a weekly event.

It is really nothing but I think someone might find it confusing.

-- 
Konubinix
GPG Key: 7439106A
Fingerprint: 5993 BE7A DA65 E2D9 06CE  5C36 75D2 3CED 7439 106A


pgphC_SaB0cC7.pgp
Description: PGP signature


Re: [O] Still Wishing for Snooze

2013-02-09 Thread Michael Brand
Hi Samuel

On Sat, Feb 9, 2013 at 7:06 PM, Samuel Loury konubi...@gmail.com wrote:
 [...]
 I quite agree with you. It is also the way I understood it, with the
 automatic removal of the -3d.

 Only a tiny glitch there, I suppose you guessed it was written

 SCHEDULED: 2013-02-01 Fri +1m -3d

 and not

 SCHEDULED: 2013-02-01 Fri +1w -3d
 [...]

Yes, my bad... Thanks for pointing out.

Michael



Re: [O] Still Wishing for Snooze

2013-02-07 Thread Bastien
Hi Andrew,

Andrew M. Nuxoll nux...@up.edu writes:

 If you do that, I may have to send you a cheesecake.

Time for a cheesecake!

You can now use a delay cookie like this:

  SCHEDULED: 2013-02-07 jeu. -2d

The item will not be shown today, but in three days.

See the new options `org-scheduled-delay-days' and
`org-agenda-skip-scheduled-delay-if-deadline' which
are quite symmetric to `org-deadline-warning-days'
and `org-agenda-skip-deadline-prewarning-if-scheduled'.

Thanks for this idea, and thanks to Michael for the
implementation example -- I implemented it a bit 
differently, but I think it makes sense (1) to use
-2d to tell the scheduled item is postponed, and
(2) to use the same - for prewarning and delays.

-- 
 Bastien



Re: [O] Still Wishing for Snooze

2013-02-07 Thread Michael Brand
On Fri, Jan 25, 2013 at 12:10 PM, Michael Brand
michael.ch.br...@gmail.com wrote:
 Let me only suggest an idea to deal with this, item-based: When the
 DEADLINE “warning period” would be generalized to allow positive
 numbers then it would extend to a “warning and delay period”. Starting
 with:

 * TODO [#B] Verify login to the virtual machines
   DEADLINE: 2013-01-22 Tue +1w -0d

 It could be delayed to 2013-01-24 Thu which means two days later by
 changing the “warning and delay period” to 2d:

 * TODO [#B] Verify login to the virtual machines
   DEADLINE: 2013-01-22 Tue +1w 2d

 This would not show up in the agenda until 2013-01-24 Thu. At that
 date it would be shown with the desirable “In -2 d.:” for overdue to
 get the higher priority. When set to done it would become:

 * TODO [#B] Verify login to the virtual machines
   DEADLINE: 2013-01-29 Tue +1w -0d

 Note the change from 2d to -0d: It is important that when the date
 repeats and has a positive warning period aka delay period then it
 must be reset to -0d. Otherwise undesirable surprises are guaranteed.

Resetting to just -0d would only be enough for this example, not for
the common case where we don’t know which DEADLINE warning period was
in use before the DEADLINE has been delayed. Thus it looks like a
DEADLINE delay would have to be _additional_ to the DEADLINE warning
period.

Some applications would require that the DEADLINE delay would affect
only the warning date but not the due date of the DEADLINE. Other
applications would require both to be delayed. Maybe even others only
the due date.

It simply means that this suggestion is still incomplete. I don’t
expect it to be refined.

Michael



Re: [O] Still Wishing for Snooze

2013-02-07 Thread Michael Brand
Hi Bastien

On Thu, Feb 7, 2013 at 10:44 AM, Bastien b...@altern.org wrote:
 You can now use a delay cookie like this:

   SCHEDULED: 2013-02-07 jeu. -2d

 The item will not be shown today, but in three days.

For this case I would use:

  SCHEDULED: 2013-02-09 Sat

It seems I don’t get the point because when a TODO with repeater

  SCHEDULED: 2013-02-01 Fri +1w -3d

is set to DONE the delay remains and this way also here I would not
use a delay but:

  SCHEDULED: 2013-02-04 Mon +1w

The usefulness of a SCHEDULED delay I see together with a TODO and
repeater to implement an _exception_ (to simplify: exception just for
the first date, before the repetitions). For example

  SCHEDULED: 2013-02-01 Fri +1w -3d

would mean: Usually start working on the entry earliest on the first
day of the month except [2013-02-01 Fri] when work can not start
before [2013-02-04 Mon]. It would start to show in the agenda on
[2013-02-04 Mon], [2013-03-01 Fri], [2013-04-01 Mon], [2013-05-01
Wed], [2013-06-01 Sat] etc. On let’s say [2013-02-05 Tue] it would be
set to DONE and would change to:

  SCHEDULED: 2013-03-01 Fri +1w

Note the automatically removed delay.

Am I missing something?

Michael



Re: [O] Still Wishing for Snooze

2013-01-26 Thread Marc-Oliver Ihm

Hi Andrew !

Sorry, but I forgot to include one line:

(setq org-date-state-wait-state PENDING)

to define the state, that the node should be changed to
(I have PENDING among my org-states).

Now if I have a node like this:


* TODO Foo


and invoke org-date-state, I get asked for a date (lets assume,
that I answer tomorrow) and the node changes like this:


* PENDING Foo
  CLOSED: [2013-01-26 Sa 18:36]
  :PROPERTIES:
  :DATE_STATE: [2013-01-27 So] TODO
  :END:


Now, if on sunday or later I invoke org-date-state with a prefix argument,
the node changes back to its original state.

Hope you can reproduce that behaviour and find it useful ...


best regards, Marc




Am 24.01.2013 21:09, schrieb Marc-Oliver Ihm:

Hi Andrew,

some time ago I did somethin similar (see below), it works with properties and 
might
come close, to what you want ...

best regards, Marc


(defun org-date-state (arg)
   Save away state for current node; with prefix restore for all nodes if time has 
passed.
   (interactive P)
   (if arg
   (progn
 (let ((today (format-time-string
   (substring (car org-time-stamp-formats) 1 -1)))
   (nvisited 0)
   (nchanged 0))
   (message Scanning...)
   (org-map-entries
(lambda ()
  (let
  ((date_state (org-entry-get nil DATE_STATE))
   date state)
(incf nvisited)
(when date_state
  (unless (string-match (concat \\[
org-ts-regexp1
\\] \\(
(regexp-opt org-todo-keywords-1)
\\))
date_state)
(error Property DATE_STATE ('%s') does not consist of date and 
todo keyword !
   date_state))
  (setq date (match-string 1 date_state))
  (setq state (match-string 9 date_state))
  (unless (string today date)
(org-todo state)
(org-delete-property DATE_STATE)
(search-forward-regexp org-property-start-re)
(org-remove-empty-drawer-at PROPERTIES (point))
(incf nchanged)
nil 'agenda)
   (message Visited %d entries and changed %d of them nvisited 
nchanged)))
 (org-entry-put nil DATE_STATE
(concat
 (format-time-string
  (org-time-stamp-format nil t)
  (org-read-date nil t))
  
 (org-get-todo-state)))
 (org-todo org-date-state-wait-state)))




Am 21.01.2013 19:20, schrieb Andrew M. Nuxoll:

A while ago I posted for help in adding an ability to snooze a to-do item:

http://www.mail-archive.com/emacs-orgmode@gnu.org/msg20114.html

At the time, the only solution available was to create a manual copy of the 
item.  This approach creates as many problems as it solves for me. I've gotten 
so frustrated with this that I'm really to knuckle under and fix it myself.

I'd like to modify the org-mode code to support the following:

1.  Add a date tag to an entry that indicates that it is inactive until a 
certain date.  I'm picturing something like this:

* TODO [#B] Verify login to the virtual machines
   SCHEDULED: 2013-01-11 Tue +1w DELAY: 2013-01-24 Thu

2.  Add a command similar to org-deadline that I can use to attach a delay date 
to a to-do item

3.  When I display my agenda, items that are delayed are not displayed.

My e-lisp is pretty rusty so *any* advice or help is great.  Could someone help 
point me to the right files and functions I'll need to modify to accomplish 
this?

Thanks,
Andrew











Re: [O] Still Wishing for Snooze

2013-01-25 Thread Michael Brand
Hi Andrew

On Thu, Jan 24, 2013 at 11:54 PM, Andrew M. Nuxoll nux...@up.edu wrote:
 Here an example scenario that illustrates my problem:  Say, at the end of
 each week I need to sit down and generate a report on my progress to send to
 the boss.  So I have recurring, weekly TODO entry on Friday morning.  Well,
 one week the report is delayed because a coworker was ill and couldn't send
 me the data I needed on time.  So, I have to delay that TODO entry until
 Monday *just this one time.*  I need to get it off my agenda for the day but
 I don't want to mark is as completed because it's not.

 Right now the only way to do that is to mark it as completed anyway but make
 a one-time copy of the TODO item with the new scheduled date.  The problem
 is that I have roughly thirty TODO items per day and, on any given day, I
 need to delay about 10-20% of them for various reasons.  (It's the nature of
 my job though I don't think it's that unusual.)  So making a copy of a TODO
 item each time is inconvenient because I end up with dozens of copies
 floating about.

 Furthermore, a delayed TODO item should have more urgency since it's been
 delayed.  But creating a copy means i can't do that. When Monday rolls
 around and it's time to prepare that report it shows up in green text like
 this in my agenda:
  Scheduled:  TODO [#B] Prepare TPS Report

 but I want it to be in red text like this:
   Sched. 4x:  TODO [#B] Prepare TPS Report

 This is why I'm looking for a distinct snooze or delay functionality.  I
 want a TODO item to disappear from the agenda until a specified date and
 then reappear again waiting to be done with all the urgency associated with
 that delay.

Let me only suggest an idea to deal with this, item-based: When the
DEADLINE “warning period” would be generalized to allow positive
numbers then it would extend to a “warning and delay period”. Starting
with:

* TODO [#B] Verify login to the virtual machines
  DEADLINE: 2013-01-22 Tue +1w -0d

It could be delayed to 2013-01-24 Thu which means two days later by
changing the “warning and delay period” to 2d:

* TODO [#B] Verify login to the virtual machines
  DEADLINE: 2013-01-22 Tue +1w 2d

This would not show up in the agenda until 2013-01-24 Thu. At that
date it would be shown with the desirable “In -2 d.:” for overdue to
get the higher priority. When set to done it would become:

* TODO [#B] Verify login to the virtual machines
  DEADLINE: 2013-01-29 Tue +1w -0d

Note the change from 2d to -0d: It is important that when the date
repeats and has a positive warning period aka delay period then it
must be reset to -0d. Otherwise undesirable suprises are guaranteed.

The same “warning and delay period” could also be allowed for
SCHEDULED, mainly usable with a positive range for a delay. Probably
what you would prefer over DEADLINE for your use case. I would even
allow negative numbers for a warning for SCHEDULED, with a default
warning period of -0d to reflect current behavior.

Michael



Re: [O] Still Wishing for Snooze

2013-01-25 Thread Bastien
Hi Andrew,

thanks for explaining it so clearly, I understand the need,
and I also understand my suggestion (and Eric's one, FWIW) 
cannot completely satisfy it.

I will provide a patch for this next week, we can discuss it
afterwards.

All best,

-- 
 Bastien



Re: [O] Still Wishing for Snooze

2013-01-25 Thread Andrew M. Nuxoll
That looks like a delay period on a SCHEDULED item would work very well 
for me.  I can see the positive delay period being useful to me as well.


This does look like it would be more difficult to implement because it's 
a subtle change to existing code rather than something more modular.


:AMN:

On 01/25/2013 03:10 AM, Michael Brand wrote:

Hi Andrew

On Thu, Jan 24, 2013 at 11:54 PM, Andrew M. Nuxoll nux...@up.edu wrote:

Here an example scenario that illustrates my problem:  Say, at the end of
each week I need to sit down and generate a report on my progress to send to
the boss.  So I have recurring, weekly TODO entry on Friday morning.  Well,
one week the report is delayed because a coworker was ill and couldn't send
me the data I needed on time.  So, I have to delay that TODO entry until
Monday *just this one time.*  I need to get it off my agenda for the day but
I don't want to mark is as completed because it's not.

Right now the only way to do that is to mark it as completed anyway but make
a one-time copy of the TODO item with the new scheduled date.  The problem
is that I have roughly thirty TODO items per day and, on any given day, I
need to delay about 10-20% of them for various reasons.  (It's the nature of
my job though I don't think it's that unusual.)  So making a copy of a TODO
item each time is inconvenient because I end up with dozens of copies
floating about.

Furthermore, a delayed TODO item should have more urgency since it's been
delayed.  But creating a copy means i can't do that. When Monday rolls
around and it's time to prepare that report it shows up in green text like
this in my agenda:
  Scheduled:  TODO [#B] Prepare TPS Report

but I want it to be in red text like this:
   Sched. 4x:  TODO [#B] Prepare TPS Report

This is why I'm looking for a distinct snooze or delay functionality.  I
want a TODO item to disappear from the agenda until a specified date and
then reappear again waiting to be done with all the urgency associated with
that delay.

Let me only suggest an idea to deal with this, item-based: When the
DEADLINE “warning period” would be generalized to allow positive
numbers then it would extend to a “warning and delay period”. Starting
with:

* TODO [#B] Verify login to the virtual machines
   DEADLINE: 2013-01-22 Tue +1w -0d

It could be delayed to 2013-01-24 Thu which means two days later by
changing the “warning and delay period” to 2d:

* TODO [#B] Verify login to the virtual machines
   DEADLINE: 2013-01-22 Tue +1w 2d

This would not show up in the agenda until 2013-01-24 Thu. At that
date it would be shown with the desirable “In -2 d.:” for overdue to
get the higher priority. When set to done it would become:

* TODO [#B] Verify login to the virtual machines
   DEADLINE: 2013-01-29 Tue +1w -0d

Note the change from 2d to -0d: It is important that when the date
repeats and has a positive warning period aka delay period then it
must be reset to -0d. Otherwise undesirable suprises are guaranteed.

The same “warning and delay period” could also be allowed for
SCHEDULED, mainly usable with a positive range for a delay. Probably
what you would prefer over DEADLINE for your use case. I would even
allow negative numbers for a warning for SCHEDULED, with a default
warning period of -0d to reflect current behavior.

Michael



--
Andrew M. Nuxoll Phone: 503-943-7688
Asst Professor of Computer Science   Fax:   503-943-7316
University of Portland - MSC #145Email: nux...@up.edu
5000 N. Willamette Blvd  Web:   http://faculty.up.edu/nuxoll
Portland, OR  97203-5798 Office: Shiley Hall Rm 217




Re: [O] Still Wishing for Snooze

2013-01-25 Thread Andrew M. Nuxoll

If you do that, I may have to send you a cheesecake.

Thank you!
:AMN:

On 01/25/2013 02:45 AM, Bastien wrote:

Hi Andrew,

thanks for explaining it so clearly, I understand the need,
and I also understand my suggestion (and Eric's one, FWIW)
cannot completely satisfy it.

I will provide a patch for this next week, we can discuss it
afterwards.

All best,




--
Andrew M. Nuxoll Phone: 503-943-7688
Asst Professor of Computer Science   Fax:   503-943-7316
University of Portland - MSC #145Email: nux...@up.edu
5000 N. Willamette Blvd  Web:   http://faculty.up.edu/nuxoll
Portland, OR  97203-5798 Office: Shiley Hall Rm 217




Re: [O] Still Wishing for Snooze

2013-01-24 Thread Andrew M. Nuxoll

Bastien:

I sense that your reply contains the key to the functionality that I 
want but I find I am unable to figure it out.  I'm sorry to bother you 
further but I would be grateful for a little more direction.


My first problem is that C-h is mapped to backspace on my computer.  I 
presume (C-h v) means view help on a particular item.


My second problem is that org-agenda-ignore is not a valid prefix for 
anything in my version of org-mode.  (I have version 7.9.3d 
installed.).  I *think* you intended to point me to variables that begin 
with org-agenda-todo-ignore instead.  Can you confirm this is so?


My third problem is that I can not figure out how to use these variables 
to accomplish my purpose.  I think part of the problem is that I am 
using custom agenda commands.  The relevant code snippet for the command 
I use most is here:

(setq org-agenda-custom-commands
 '(
   (o Today's Tasks
((agenda  ((org-agenda-ndays 1)))  ;; limits the agenda 
display to a single day

 (todo TODO))
((org-agenda-compact-blocks t)
 ))
 etc...


Would you please give me some more information?

Thank you,
:AMN:


On 01/23/2013 05:36 AM, Bastien wrote:

Hi Andrew,

Andrew M. Nuxoll nux...@up.edu writes:


1.  Add a date tag to an entry that indicates that it is inactive until a
certain date.  I'm picturing something like this:

* TODO [#B] Verify login to the virtual machines
   SCHEDULED: 2013-01-11 Tue +1w DELAY: 2013-01-24 Thu

2.  Add a command similar to org-deadline that I can use to attach a delay
date to a to-do item

3.  When I display my agenda, items that are delayed are not displayed.

My e-lisp is pretty rusty so *any* advice or help is great.  Could someone
help point me to the right files and functions I'll need to modify to
accomplish this?

C-h v org-agenda-ignore TAB will open many doors.

See C-h org-agenda-todo-ignore-timestamp RET for example:

   Non-nil means don't show entries with a timestamp.
   This applies when creating the global todo list.
   Valid values are:
   
   past Don't show entries for today or in the past.
   
   future   Don't show entries with a timestamp in the future.

The idea behind this is that if it has a future
timestamp, you don't want to think about it until the
date.
   
   all  Don't show any entries with a timestamp in the global todo list.

The idea behind this is that by setting a timestamp, you
have already taken care of this item.
   
   This variable can also have an integer as a value.  If positive (N),

   todos with a timestamp N or more days in the future will be ignored.  If
   negative (-N), todos with a timestamp N or more days in the past will be
   ignored.  If 0, todos with a timestamp either today or in the future will
   be ignored.  For example, a value of -1 will exclude todos with a
   timestamp in the past (yesterday or earlier), while a value of 7 will
   exclude todos with a timestamp a week or more in the future.
   
   See also `org-agenda-todo-ignore-with-date'.  See also the variable

   `org-agenda-tags-todo-honor-ignore-options' if you want to make his
   option also apply to the tags-todo list.
   



--
Andrew M. Nuxoll Phone: 503-943-7688
Asst Professor of Computer Science   Fax:   503-943-7316
University of Portland - MSC #145Email: nux...@up.edu
5000 N. Willamette Blvd  Web:   http://faculty.up.edu/nuxoll
Portland, OR  97203-5798 Office: Shiley Hall Rm 217



Re: [O] Still Wishing for Snooze

2013-01-24 Thread Marc-Oliver Ihm

Hi Andrew,

some time ago I did somethin similar (see below), it works with properties and 
might
come close, to what you want ...

best regards, Marc


(defun org-date-state (arg)
  Save away state for current node; with prefix restore for all nodes if time has 
passed.
  (interactive P)
  (if arg
  (progn
(let ((today (format-time-string
  (substring (car org-time-stamp-formats) 1 -1)))
  (nvisited 0)
  (nchanged 0))
  (message Scanning...)
  (org-map-entries
   (lambda ()
 (let
 ((date_state (org-entry-get nil DATE_STATE))
  date state)
   (incf nvisited)
   (when date_state
 (unless (string-match (concat \\[
   org-ts-regexp1
   \\] \\(
   (regexp-opt org-todo-keywords-1)
   \\))
   date_state)
   (error Property DATE_STATE ('%s') does not consist of date and 
todo keyword !
  date_state))
 (setq date (match-string 1 date_state))
 (setq state (match-string 9 date_state))
 (unless (string today date)
   (org-todo state)
   (org-delete-property DATE_STATE)
   (search-forward-regexp org-property-start-re)
   (org-remove-empty-drawer-at PROPERTIES (point))
   (incf nchanged)
   nil 'agenda)
  (message Visited %d entries and changed %d of them nvisited 
nchanged)))
(org-entry-put nil DATE_STATE
   (concat
(format-time-string
 (org-time-stamp-format nil t)
 (org-read-date nil t))
 
(org-get-todo-state)))
(org-todo org-date-state-wait-state)))




Am 21.01.2013 19:20, schrieb Andrew M. Nuxoll:

A while ago I posted for help in adding an ability to snooze a to-do item:

http://www.mail-archive.com/emacs-orgmode@gnu.org/msg20114.html

At the time, the only solution available was to create a manual copy of the 
item.  This approach creates as many problems as it solves for me. I've gotten 
so frustrated with this that I'm really to knuckle under and fix it myself.

I'd like to modify the org-mode code to support the following:

1.  Add a date tag to an entry that indicates that it is inactive until a 
certain date.  I'm picturing something like this:

* TODO [#B] Verify login to the virtual machines
   SCHEDULED: 2013-01-11 Tue +1w DELAY: 2013-01-24 Thu

2.  Add a command similar to org-deadline that I can use to attach a delay date 
to a to-do item

3.  When I display my agenda, items that are delayed are not displayed.

My e-lisp is pretty rusty so *any* advice or help is great.  Could someone help 
point me to the right files and functions I'll need to modify to accomplish 
this?

Thanks,
Andrew







Re: [O] Still Wishing for Snooze

2013-01-24 Thread Bastien
Hi Andrew,

Andrew M. Nuxoll nux...@up.edu writes:

 My first problem is that C-h is mapped to backspace on my computer. 
 I presume (C-h v) means view help on a particular item.

C-h v is normally bound to `describe-variable'.

So you can run this:

M-x describe-variable RET org-agenda-todo-ignore-timestamp RET

 My second problem is that org-agenda-ignore is not a valid prefix for
 anything in my version of org-mode.  

In recent Emacsen, the completion mechanism is clever enough to know
what to do when entering 

M-x describe-variable RET org-agenda-ignore TAB

On the first TAB, it offers org-agenda-t-ignore-

If you complete org-agenda-todo-ignore- and press TAB again,
you should see five variables.

 (I have version 7.9.3d
 installed.).  I *think* you intended to point me to variables that
 begin with org-agenda-todo-ignore instead.  Can you confirm this is
 so?

I do :)

 My third problem is that I can not figure out how to use these
 variables to accomplish my purpose.  I think part of the problem is
 that I am using custom agenda commands.  The relevant code snippet
 for the command I use most is here:
 (setq org-agenda-custom-commands
  '(
(o Today's Tasks
 ((agenda  ((org-agenda-ndays 1)))  ;; limits the agenda
 display to a single day
  (todo TODO))
 ((org-agenda-compact-blocks t)
  ))
  etc...

Try this:

(setq org-agenda-custom-commands
  '((X Todo test todo TODO
 ((org-agenda-todo-ignore-scheduled 2)

When listing todos, the ones that are 2 days or more in the future
will be ignored.

You can also use this for tags-todo if 
`org-agenda-tags-todo-honor-ignore-options' is set to t.

We don't have `org-agenda-agenda-honor-ignore-options' so
this is not relevant in agenda-type views.  Maybe we can 
consider this.

In your case, this does not solve your problem, since you
want an item-based decision, not an agenda-based one.

But... my first question would be... 

* TODO [#B] Verify login to the virtual machines
  SCHEDULED: 2013-01-11 Tue +1w DELAY: 2013-01-24 Thu

why not simply have this instead:

* TODO [#B] Verify login to the virtual machines
  SCHEDULED: 2013-01-25 Fri +1w

?

Maybe I miss something obvious in your workflow, and maybe 
this is something needed more widely.  Let us know!
 
 Would you please give me some more information?

Hope that helps,

-- 
 Bastien



Re: [O] Still Wishing for Snooze

2013-01-24 Thread Andrew M. Nuxoll

Bastien:

Thanks for your patience and continued assistance.

Here an example scenario that illustrates my problem:  Say, at the end 
of each week I need to sit down and generate a report on my progress to 
send to the boss.  So I have recurring, weekly TODO entry on Friday 
morning.  Well, one week the report is delayed because a coworker was 
ill and couldn't send me the data I needed on time.  So, I have to delay 
that TODO entry until Monday *just this one time.*  I need to get it off 
my agenda for the day but I don't want to mark is as completed because 
it's not.


Right now the only way to do that is to mark it as completed anyway but 
make a one-time copy of the TODO item with the new scheduled date.  The 
problem is that I have roughly thirty TODO items per day and, on any 
given day, I need to delay about 10-20% of them for various reasons.  
(It's the nature of my job though I don't think it's that unusual.)  So 
making a copy of a TODO item each time is inconvenient because I end up 
with dozens of copies floating about.


Furthermore, a delayed TODO item should have more urgency since it's 
been delayed.  But creating a copy means i can't do that. When Monday 
rolls around and it's time to prepare that report it shows up in green 
text like this in my agenda:

 Scheduled:  TODO [#B] Prepare TPS Report

but I want it to be in red text like this:
  Sched. 4x:  TODO [#B] Prepare TPS Report

This is why I'm looking for a distinct snooze or delay 
functionality.  I want a TODO item to disappear from the agenda until a 
specified date and then reappear again waiting to be done with all the 
urgency associated with that delay.


Any help would be appreciated.

:AMN:



On 01/24/2013 02:26 PM, Bastien wrote:

Hi Andrew,

Andrew M. Nuxoll nux...@up.edu writes:


My first problem is that C-h is mapped to backspace on my computer.
I presume (C-h v) means view help on a particular item.

C-h v is normally bound to `describe-variable'.

So you can run this:

M-x describe-variable RET org-agenda-todo-ignore-timestamp RET


My second problem is that org-agenda-ignore is not a valid prefix for
anything in my version of org-mode.

In recent Emacsen, the completion mechanism is clever enough to know
what to do when entering

M-x describe-variable RET org-agenda-ignore TAB

On the first TAB, it offers org-agenda-t-ignore-

If you complete org-agenda-todo-ignore- and press TAB again,
you should see five variables.


(I have version 7.9.3d
installed.).  I *think* you intended to point me to variables that
begin with org-agenda-todo-ignore instead.  Can you confirm this is
so?

I do :)


My third problem is that I can not figure out how to use these
variables to accomplish my purpose.  I think part of the problem is
that I am using custom agenda commands.  The relevant code snippet
for the command I use most is here:
 (setq org-agenda-custom-commands
  '(
(o Today's Tasks
 ((agenda  ((org-agenda-ndays 1)))  ;; limits the agenda
display to a single day
  (todo TODO))
 ((org-agenda-compact-blocks t)
  ))
  etc...

Try this:

(setq org-agenda-custom-commands
   '((X Todo test todo TODO
  ((org-agenda-todo-ignore-scheduled 2)

When listing todos, the ones that are 2 days or more in the future
will be ignored.

You can also use this for tags-todo if
`org-agenda-tags-todo-honor-ignore-options' is set to t.

We don't have `org-agenda-agenda-honor-ignore-options' so
this is not relevant in agenda-type views.  Maybe we can
consider this.

In your case, this does not solve your problem, since you
want an item-based decision, not an agenda-based one.

But... my first question would be...

* TODO [#B] Verify login to the virtual machines
   SCHEDULED: 2013-01-11 Tue +1w DELAY: 2013-01-24 Thu

why not simply have this instead:

* TODO [#B] Verify login to the virtual machines
   SCHEDULED: 2013-01-25 Fri +1w

?

Maybe I miss something obvious in your workflow, and maybe
this is something needed more widely.  Let us know!
  

Would you please give me some more information?

Hope that helps,




--
Andrew M. Nuxoll Phone: 503-943-7688
Asst Professor of Computer Science   Fax:   503-943-7316
University of Portland - MSC #145Email: nux...@up.edu
5000 N. Willamette Blvd  Web:   http://faculty.up.edu/nuxoll
Portland, OR  97203-5798 Office: Shiley Hall Rm 217




Re: [O] Still Wishing for Snooze

2013-01-24 Thread Eric S Fraga
Andrew M. Nuxoll nux...@up.edu writes:

[...]

 Furthermore, a delayed TODO item should have more urgency since it's
 been delayed.  But creating a copy means i can't do that. When Monday
 rolls around and it's time to prepare that report it shows up in green
 text like this in my agenda:
  Scheduled:  TODO [#B] Prepare TPS Report

 but I want it to be in red text like this:
   Sched. 4x:  TODO [#B] Prepare TPS Report

Maybe I'm missing a key point here but wouldn't alternative TODO states
do what you want here, as in maybe defining a todo sequence like:

#+TODO: TODO(t) DLYD(d) | DONE(x)

with appropriate faces for the different states so that a DLYD one
stands out as you wish?  Then, on a Friday, you would change the state
of the item to DLYD so it would still appear on the Monday.  Whenever
you marked it DONE, it would go back to TODO if it were a repeated task.

This doesn't quite do what you want in that the DLYD task would still
appear on the agenda view on the Friday so maybe that is a stumbling
block.

Just some thoughts...  feel free to ignore! ;-)

-- 
: Eric S Fraga, GnuPG: 0xC89193D8FFFCF67D
: in Emacs 24.3.50.1 and Org release_7.9.3d-837-ge37613




Re: [O] Still Wishing for Snooze

2013-01-23 Thread Samuel Loury
Andrew M. Nuxoll nux...@up.edu writes:

 1.  Add a date tag to an entry that indicates that it is inactive 
 until a certain date.  I'm picturing something like this:

 * TODO [#B] Verify login to the virtual machines
SCHEDULED: 2013-01-11 Tue +1w DELAY: 2013-01-24 Thu


In your model, does the DELAY act as a scheduled date also? I mean, do
you want the event Verify login to the virtual machines to show up in
the agenda on 2013-01-24 Thu?

I think it is a very good idea and I would be use it as soon as it would
be ready. I might take a look as soon as I find some free time at how to
implement this. It does not look too complicated.

-- 
Konubinix
GPG Key: 7439106A
Fingerprint: 5993 BE7A DA65 E2D9 06CE  5C36 75D2 3CED 7439 106A


pgpB_ZQFHgMCL.pgp
Description: PGP signature


Re: [O] Still Wishing for Snooze

2013-01-23 Thread Bastien
Hi Andrew,

Andrew M. Nuxoll nux...@up.edu writes:

 1.  Add a date tag to an entry that indicates that it is inactive until a
 certain date.  I'm picturing something like this:

 * TODO [#B] Verify login to the virtual machines
   SCHEDULED: 2013-01-11 Tue +1w DELAY: 2013-01-24 Thu

 2.  Add a command similar to org-deadline that I can use to attach a delay
 date to a to-do item

 3.  When I display my agenda, items that are delayed are not displayed.

 My e-lisp is pretty rusty so *any* advice or help is great.  Could someone
 help point me to the right files and functions I'll need to modify to
 accomplish this?

C-h v org-agenda-ignore TAB will open many doors.

See C-h org-agenda-todo-ignore-timestamp RET for example:

  Non-nil means don't show entries with a timestamp.
  This applies when creating the global todo list.
  Valid values are:
  
  past Don't show entries for today or in the past.
  
  future   Don't show entries with a timestamp in the future.
   The idea behind this is that if it has a future
   timestamp, you don't want to think about it until the
   date.
  
  all  Don't show any entries with a timestamp in the global todo list.
   The idea behind this is that by setting a timestamp, you
   have already taken care of this item.
  
  This variable can also have an integer as a value.  If positive (N),
  todos with a timestamp N or more days in the future will be ignored.  If
  negative (-N), todos with a timestamp N or more days in the past will be
  ignored.  If 0, todos with a timestamp either today or in the future will
  be ignored.  For example, a value of -1 will exclude todos with a
  timestamp in the past (yesterday or earlier), while a value of 7 will
  exclude todos with a timestamp a week or more in the future.
  
  See also `org-agenda-todo-ignore-with-date'.  See also the variable
  `org-agenda-tags-todo-honor-ignore-options' if you want to make his
  option also apply to the tags-todo list.
  
-- 
 Bastien



Re: [O] Still Wishing for Snooze

2013-01-23 Thread Michael Brand
Hi Andrew

On Mon, Jan 21, 2013 at 7:20 PM, Andrew M. Nuxoll nux...@up.edu wrote:
 I'd like to modify the org-mode code to support the following:

 1.  Add a date tag to an entry that indicates that it is inactive until a
 certain date.  I'm picturing something like this:

 * TODO [#B] Verify login to the virtual machines
   SCHEDULED: 2013-01-11 Tue +1w DELAY: 2013-01-24 Thu

(I assume you meant Tue Jan 08:

* TODO [#B] Verify login to the virtual machines
  SCHEDULED: 2013-01-08 Tue +1w DELAY: 2013-01-24 Thu
)

Such tasks I do like follows, starting with:

* TODO [#B] Verify login to the virtual machines
  SCHEDULED: 2013-01-08 Tue +1w

Then set to DONE as many times as necessary to get it to the first
regular repetition in the future:

* TODO [#B] Verify login to the virtual machines
  SCHEDULED: 2013-01-29 Tue +1w

Then add the one irregular date just as a normal SCHEDULED:

* TODO [#B] Verify login to the virtual machines
  SCHEDULED: 2013-01-24 Thu
  SCHEDULED: 2013-01-29 Tue +1w

At or after 2013-01-24 when the task is done go to the irregular date
with TAB from the agenda view and delete the line, resulting again in:

* TODO [#B] Verify login to the virtual machines
  SCHEDULED: 2013-01-29 Tue +1w

Michael



Re: [O] Still Wishing for Snooze

2013-01-23 Thread Andrew M. Nuxoll

Michael:

Thank you for this info. I didn't know that you could add two scheduled 
dates to a task!  Unfortunately, org-mode doesn't handle the dual 
schedule the way I would wish.  For example if I have:


* TODO [#B] Verify login to the virtual machines
  SCHEDULED: 2013-01-24 Thu
  SCHEDULED: 2013-01-29 Tue +1w

and I mark the item as done via agenda mode (by hitting 't') it changes 
to this:


* TODO [#B] Verify login to the virtual machines
  SCHEDULED: 2013-01-24 Thu
  SCHEDULED: 2013-02-05 Tue +1w

Thus it not only doesn't appear from my to-do list but it skips a 
rescheduled event that I don't want to have skipped.  Am I doing it wrong?


Even if this is the best org-mode can do at the moment, it's a better 
solution than what I have been doing.


Thank you,
:AMN:

On 01/23/2013 07:49 AM, Michael Brand wrote:

Hi Andrew

On Mon, Jan 21, 2013 at 7:20 PM, Andrew M. Nuxoll nux...@up.edu wrote:

I'd like to modify the org-mode code to support the following:

1.  Add a date tag to an entry that indicates that it is inactive until a
certain date.  I'm picturing something like this:

* TODO [#B] Verify login to the virtual machines
   SCHEDULED: 2013-01-11 Tue +1w DELAY: 2013-01-24 Thu

(I assume you meant Tue Jan 08:

* TODO [#B] Verify login to the virtual machines
   SCHEDULED: 2013-01-08 Tue +1w DELAY: 2013-01-24 Thu
)

Such tasks I do like follows, starting with:

* TODO [#B] Verify login to the virtual machines
   SCHEDULED: 2013-01-08 Tue +1w

Then set to DONE as many times as necessary to get it to the first
regular repetition in the future:

* TODO [#B] Verify login to the virtual machines
   SCHEDULED: 2013-01-29 Tue +1w

Then add the one irregular date just as a normal SCHEDULED:

* TODO [#B] Verify login to the virtual machines
   SCHEDULED: 2013-01-24 Thu
   SCHEDULED: 2013-01-29 Tue +1w

At or after 2013-01-24 when the task is done go to the irregular date
with TAB from the agenda view and delete the line, resulting again in:

* TODO [#B] Verify login to the virtual machines
   SCHEDULED: 2013-01-29 Tue +1w

Michael



--
Andrew M. Nuxoll Phone: 503-943-7688
Asst Professor of Computer Science   Fax:   503-943-7316
University of Portland - MSC #145Email: nux...@up.edu
5000 N. Willamette Blvd  Web:   http://faculty.up.edu/nuxoll
Portland, OR  97203-5798 Office: Shiley Hall Rm 217




Re: [O] Still Wishing for Snooze

2013-01-23 Thread Andrew M. Nuxoll

Sam:

I'd be delighted if you did this.  I suspect you could do it in 1/10th 
the time that it would take me to figure it out.


In the example below, I would want the Verify login... entry to 
reappear on the agenda starting on 2013-01-24 Thu.  The easiest way to 
do this might be to just automatically delete the DELAY entry on that date.


I imagine adding code to add the DELAY entry would be easy.  The hard 
part is getting the agenda display to honor the DELAY entry when it is 
present and also to delete the DELAY entry when its associated date is 
reached.  I've no idea where to add that functionality in the org-mode code.


:AMN:


On 01/23/2013 02:42 AM, Samuel Loury wrote:

Andrew M. Nuxoll nux...@up.edu writes:


1.  Add a date tag to an entry that indicates that it is inactive
until a certain date.  I'm picturing something like this:

* TODO [#B] Verify login to the virtual machines
SCHEDULED: 2013-01-11 Tue +1w DELAY: 2013-01-24 Thu


In your model, does the DELAY act as a scheduled date also? I mean, do
you want the event Verify login to the virtual machines to show up in
the agenda on 2013-01-24 Thu?

I think it is a very good idea and I would be use it as soon as it would
be ready. I might take a look as soon as I find some free time at how to
implement this. It does not look too complicated.




--
Andrew M. Nuxoll Phone: 503-943-7688
Asst Professor of Computer Science   Fax:   503-943-7316
University of Portland - MSC #145Email: nux...@up.edu
5000 N. Willamette Blvd  Web:   http://faculty.up.edu/nuxoll
Portland, OR  97203-5798 Office: Shiley Hall Rm 217




Re: [O] Still Wishing for Snooze

2013-01-23 Thread Michael Brand
Hi Andrew

On Wed, Jan 23, 2013 at 7:51 PM, Andrew M. Nuxoll nux...@up.edu wrote:
 * TODO [#B] Verify login to the virtual machines
   SCHEDULED: 2013-01-24 Thu
   SCHEDULED: 2013-01-29 Tue +1w

 and I mark the item as done via agenda mode (by hitting 't') it changes to
 this:

 * TODO [#B] Verify login to the virtual machines
   SCHEDULED: 2013-01-24 Thu
   SCHEDULED: 2013-02-05 Tue +1w

 Thus it not only doesn't appear from my to-do list but it skips a
 rescheduled event that I don't want to have skipped.  Am I doing it wrong?

This solution works only with some extra care: Before setting any
timestamped TODO agenda entry to DONE I always check with SPACE in the
agenda buffer how the timestamps look like. In this case I see that it
will repeat, but when the current day is before 2013-01-29 then it
should not yet increment and I do not set to DONE but instead remove
the SCHEDULED for 2013-01-24 as described in my last post.

Michael