emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Still Wishing for Snooze
@ 2013-01-21 18:20 Andrew M. Nuxoll
  2013-01-23 10:42 ` Samuel Loury
                   ` (3 more replies)
  0 siblings, 4 replies; 31+ messages in thread
From: Andrew M. Nuxoll @ 2013-01-21 18:20 UTC (permalink / raw)
  To: emacs-orgmode

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

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: Still Wishing for Snooze
  2013-01-21 18:20 Still Wishing for Snooze Andrew M. Nuxoll
@ 2013-01-23 10:42 ` Samuel Loury
  2013-01-23 19:00   ` Andrew M. Nuxoll
  2013-01-23 13:36 ` Bastien
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 31+ messages in thread
From: Samuel Loury @ 2013-01-23 10:42 UTC (permalink / raw)
  To: Andrew M. Nuxoll, emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 792 bytes --]

"Andrew M. Nuxoll" <nuxoll@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

[-- Attachment #2: Type: application/pgp-signature, Size: 489 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: Still Wishing for Snooze
  2013-01-21 18:20 Still Wishing for Snooze Andrew M. Nuxoll
  2013-01-23 10:42 ` Samuel Loury
@ 2013-01-23 13:36 ` Bastien
  2013-01-24 18:49   ` Andrew M. Nuxoll
  2013-01-23 15:49 ` Michael Brand
  2013-01-24 20:09 ` Marc-Oliver Ihm
  3 siblings, 1 reply; 31+ messages in thread
From: Bastien @ 2013-01-23 13:36 UTC (permalink / raw)
  To: Andrew M. Nuxoll; +Cc: emacs-orgmode

Hi Andrew,

"Andrew M. Nuxoll" <nuxoll@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

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: Still Wishing for Snooze
  2013-01-21 18:20 Still Wishing for Snooze Andrew M. Nuxoll
  2013-01-23 10:42 ` Samuel Loury
  2013-01-23 13:36 ` Bastien
@ 2013-01-23 15:49 ` Michael Brand
  2013-01-23 18:51   ` Andrew M. Nuxoll
  2013-01-24 20:09 ` Marc-Oliver Ihm
  3 siblings, 1 reply; 31+ messages in thread
From: Michael Brand @ 2013-01-23 15:49 UTC (permalink / raw)
  To: Andrew M. Nuxoll; +Cc: Org Mode

Hi Andrew

On Mon, Jan 21, 2013 at 7:20 PM, Andrew M. Nuxoll <nuxoll@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

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: Still Wishing for Snooze
  2013-01-23 15:49 ` Michael Brand
@ 2013-01-23 18:51   ` Andrew M. Nuxoll
  2013-01-23 19:37     ` Michael Brand
  0 siblings, 1 reply; 31+ messages in thread
From: Andrew M. Nuxoll @ 2013-01-23 18:51 UTC (permalink / raw)
  To: Emacs-orgmode

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 <nuxoll@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 #145    Email: nuxoll@up.edu
5000 N. Willamette Blvd              Web:   http://faculty.up.edu/nuxoll
Portland, OR  97203-5798             Office: Shiley Hall Rm 217

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: Still Wishing for Snooze
  2013-01-23 10:42 ` Samuel Loury
@ 2013-01-23 19:00   ` Andrew M. Nuxoll
  0 siblings, 0 replies; 31+ messages in thread
From: Andrew M. Nuxoll @ 2013-01-23 19:00 UTC (permalink / raw)
  To: Samuel Loury, Emacs-orgmode

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" <nuxoll@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 #145    Email: nuxoll@up.edu
5000 N. Willamette Blvd              Web:   http://faculty.up.edu/nuxoll
Portland, OR  97203-5798             Office: Shiley Hall Rm 217

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: Still Wishing for Snooze
  2013-01-23 18:51   ` Andrew M. Nuxoll
@ 2013-01-23 19:37     ` Michael Brand
  0 siblings, 0 replies; 31+ messages in thread
From: Michael Brand @ 2013-01-23 19:37 UTC (permalink / raw)
  To: Andrew M. Nuxoll; +Cc: Org Mode

Hi Andrew

On Wed, Jan 23, 2013 at 7:51 PM, Andrew M. Nuxoll <nuxoll@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

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: Still Wishing for Snooze
  2013-01-23 13:36 ` Bastien
@ 2013-01-24 18:49   ` Andrew M. Nuxoll
  2013-01-24 22:26     ` Bastien
  0 siblings, 1 reply; 31+ messages in thread
From: Andrew M. Nuxoll @ 2013-01-24 18:49 UTC (permalink / raw)
  Cc: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 3691 bytes --]

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" <nuxoll@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 #145    Email: nuxoll@up.edu
5000 N. Willamette Blvd              Web:   http://faculty.up.edu/nuxoll
Portland, OR  97203-5798             Office: Shiley Hall Rm 217


[-- Attachment #2: Type: text/html, Size: 5094 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: Still Wishing for Snooze
  2013-01-21 18:20 Still Wishing for Snooze Andrew M. Nuxoll
                   ` (2 preceding siblings ...)
  2013-01-23 15:49 ` Michael Brand
@ 2013-01-24 20:09 ` Marc-Oliver Ihm
  2013-01-26 17:40   ` Marc-Oliver Ihm
  3 siblings, 1 reply; 31+ messages in thread
From: Marc-Oliver Ihm @ 2013-01-24 20:09 UTC (permalink / raw)
  To: Andrew M. Nuxoll, emacs-orgmode

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
>
>

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: Still Wishing for Snooze
  2013-01-24 18:49   ` Andrew M. Nuxoll
@ 2013-01-24 22:26     ` Bastien
  2013-01-24 22:54       ` Andrew M. Nuxoll
  0 siblings, 1 reply; 31+ messages in thread
From: Bastien @ 2013-01-24 22:26 UTC (permalink / raw)
  To: Andrew M. Nuxoll; +Cc: emacs-orgmode

Hi Andrew,

"Andrew M. Nuxoll" <nuxoll@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

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: Still Wishing for Snooze
  2013-01-24 22:26     ` Bastien
@ 2013-01-24 22:54       ` Andrew M. Nuxoll
  2013-01-25  1:20         ` Eric S Fraga
                           ` (2 more replies)
  0 siblings, 3 replies; 31+ messages in thread
From: Andrew M. Nuxoll @ 2013-01-24 22:54 UTC (permalink / raw)
  To: Bastien; +Cc: emacs-orgmode

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" <nuxoll@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 #145    Email: nuxoll@up.edu
5000 N. Willamette Blvd              Web:   http://faculty.up.edu/nuxoll
Portland, OR  97203-5798             Office: Shiley Hall Rm 217

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: Still Wishing for Snooze
  2013-01-24 22:54       ` Andrew M. Nuxoll
@ 2013-01-25  1:20         ` Eric S Fraga
  2013-01-25 10:45         ` Bastien
  2013-01-25 11:10         ` Michael Brand
  2 siblings, 0 replies; 31+ messages in thread
From: Eric S Fraga @ 2013-01-25  1:20 UTC (permalink / raw)
  To: Andrew M. Nuxoll; +Cc: Bastien, emacs-orgmode

"Andrew M. Nuxoll" <nuxoll@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

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: Still Wishing for Snooze
  2013-01-24 22:54       ` Andrew M. Nuxoll
  2013-01-25  1:20         ` Eric S Fraga
@ 2013-01-25 10:45         ` Bastien
  2013-01-25 19:48           ` Andrew M. Nuxoll
  2013-01-25 11:10         ` Michael Brand
  2 siblings, 1 reply; 31+ messages in thread
From: Bastien @ 2013-01-25 10:45 UTC (permalink / raw)
  To: Andrew M. Nuxoll; +Cc: emacs-orgmode

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

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: Still Wishing for Snooze
  2013-01-24 22:54       ` Andrew M. Nuxoll
  2013-01-25  1:20         ` Eric S Fraga
  2013-01-25 10:45         ` Bastien
@ 2013-01-25 11:10         ` Michael Brand
  2013-01-25 19:30           ` Andrew M. Nuxoll
  2013-02-07 15:24           ` Michael Brand
  2 siblings, 2 replies; 31+ messages in thread
From: Michael Brand @ 2013-01-25 11:10 UTC (permalink / raw)
  To: Andrew M. Nuxoll; +Cc: Org Mode

Hi Andrew

On Thu, Jan 24, 2013 at 11:54 PM, Andrew M. Nuxoll <nuxoll@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

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: Still Wishing for Snooze
  2013-01-25 11:10         ` Michael Brand
@ 2013-01-25 19:30           ` Andrew M. Nuxoll
  2013-02-07 15:24           ` Michael Brand
  1 sibling, 0 replies; 31+ messages in thread
From: Andrew M. Nuxoll @ 2013-01-25 19:30 UTC (permalink / raw)
  To: Michael Brand; +Cc: Org Mode

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 <nuxoll@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 #145    Email: nuxoll@up.edu
5000 N. Willamette Blvd              Web:   http://faculty.up.edu/nuxoll
Portland, OR  97203-5798             Office: Shiley Hall Rm 217

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: Still Wishing for Snooze
  2013-01-25 10:45         ` Bastien
@ 2013-01-25 19:48           ` Andrew M. Nuxoll
  2013-02-07  9:44             ` Bastien
  0 siblings, 1 reply; 31+ messages in thread
From: Andrew M. Nuxoll @ 2013-01-25 19:48 UTC (permalink / raw)
  To: Bastien; +Cc: emacs-orgmode

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 #145    Email: nuxoll@up.edu
5000 N. Willamette Blvd              Web:   http://faculty.up.edu/nuxoll
Portland, OR  97203-5798             Office: Shiley Hall Rm 217

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: Still Wishing for Snooze
  2013-01-24 20:09 ` Marc-Oliver Ihm
@ 2013-01-26 17:40   ` Marc-Oliver Ihm
  0 siblings, 0 replies; 31+ messages in thread
From: Marc-Oliver Ihm @ 2013-01-26 17:40 UTC (permalink / raw)
  Cc: Andrew M. Nuxoll, emacs-orgmode

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
>>
>>
>
>
>

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: Still Wishing for Snooze
  2013-01-25 19:48           ` Andrew M. Nuxoll
@ 2013-02-07  9:44             ` Bastien
  2013-02-07 15:25               ` Michael Brand
  2013-02-12 22:35               ` Andrew M. Nuxoll
  0 siblings, 2 replies; 31+ messages in thread
From: Bastien @ 2013-02-07  9:44 UTC (permalink / raw)
  To: Andrew M. Nuxoll; +Cc: emacs-orgmode

Hi Andrew,

"Andrew M. Nuxoll" <nuxoll@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

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: Still Wishing for Snooze
  2013-01-25 11:10         ` Michael Brand
  2013-01-25 19:30           ` Andrew M. Nuxoll
@ 2013-02-07 15:24           ` Michael Brand
  1 sibling, 0 replies; 31+ messages in thread
From: Michael Brand @ 2013-02-07 15:24 UTC (permalink / raw)
  To: Org Mode; +Cc: Andrew M. Nuxoll

On Fri, Jan 25, 2013 at 12:10 PM, Michael Brand
<michael.ch.brand@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

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: Still Wishing for Snooze
  2013-02-07  9:44             ` Bastien
@ 2013-02-07 15:25               ` Michael Brand
  2013-02-09 18:06                 ` Samuel Loury
  2013-02-12 10:21                 ` Bastien
  2013-02-12 22:35               ` Andrew M. Nuxoll
  1 sibling, 2 replies; 31+ messages in thread
From: Michael Brand @ 2013-02-07 15:25 UTC (permalink / raw)
  To: Org Mode; +Cc: Andrew M. Nuxoll

Hi Bastien

On Thu, Feb 7, 2013 at 10:44 AM, Bastien <bzg@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

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: Still Wishing for Snooze
  2013-02-07 15:25               ` Michael Brand
@ 2013-02-09 18:06                 ` Samuel Loury
  2013-02-09 20:50                   ` Michael Brand
  2013-02-12 10:21                 ` Bastien
  1 sibling, 1 reply; 31+ messages in thread
From: Samuel Loury @ 2013-02-09 18:06 UTC (permalink / raw)
  To: Michael Brand, Org Mode; +Cc: Andrew M. Nuxoll

[-- Attachment #1: Type: text/plain, Size: 1348 bytes --]

Hi,
Michael Brand <michael.ch.brand@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

[-- Attachment #2: Type: application/pgp-signature, Size: 489 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: Still Wishing for Snooze
  2013-02-09 18:06                 ` Samuel Loury
@ 2013-02-09 20:50                   ` Michael Brand
  0 siblings, 0 replies; 31+ messages in thread
From: Michael Brand @ 2013-02-09 20:50 UTC (permalink / raw)
  To: Samuel Loury; +Cc: Andrew M. Nuxoll, Org Mode

Hi Samuel

On Sat, Feb 9, 2013 at 7:06 PM, Samuel Loury <konubinix@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

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: Still Wishing for Snooze
  2013-02-07 15:25               ` Michael Brand
  2013-02-09 18:06                 ` Samuel Loury
@ 2013-02-12 10:21                 ` Bastien
  2013-02-12 12:29                   ` Michael Brand
  2013-02-13 11:09                   ` Samuel Loury
  1 sibling, 2 replies; 31+ messages in thread
From: Bastien @ 2013-02-12 10:21 UTC (permalink / raw)
  To: Michael Brand; +Cc: Andrew M. Nuxoll, Org Mode

Hi Michael,

Michael Brand <michael.ch.brand@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

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: Still Wishing for Snooze
  2013-02-12 10:21                 ` Bastien
@ 2013-02-12 12:29                   ` Michael Brand
  2013-02-12 13:24                     ` Michael Brand
                                       ` (2 more replies)
  2013-02-13 11:09                   ` Samuel Loury
  1 sibling, 3 replies; 31+ messages in thread
From: Michael Brand @ 2013-02-12 12:29 UTC (permalink / raw)
  To: Bastien; +Cc: Andrew M. Nuxoll, Org Mode

Hi Bastien

On Tue, Feb 12, 2013 at 11:21 AM, Bastien <bzg@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

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: Still Wishing for Snooze
  2013-02-12 12:29                   ` Michael Brand
@ 2013-02-12 13:24                     ` Michael Brand
  2013-02-12 15:57                     ` Bastien
  2013-02-12 16:33                     ` Bastien
  2 siblings, 0 replies; 31+ messages in thread
From: Michael Brand @ 2013-02-12 13:24 UTC (permalink / raw)
  To: Bastien; +Cc: Andrew M. Nuxoll, Org Mode

On Tue, Feb 12, 2013 at 1:29 PM, Michael Brand
<michael.ch.brand@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

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: Still Wishing for Snooze
  2013-02-12 12:29                   ` Michael Brand
  2013-02-12 13:24                     ` Michael Brand
@ 2013-02-12 15:57                     ` Bastien
  2013-02-12 16:33                     ` Bastien
  2 siblings, 0 replies; 31+ messages in thread
From: Bastien @ 2013-02-12 15:57 UTC (permalink / raw)
  To: Michael Brand; +Cc: Andrew M. Nuxoll, Org Mode

Hi Michael,

Michael Brand <michael.ch.brand@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

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: Still Wishing for Snooze
  2013-02-12 12:29                   ` Michael Brand
  2013-02-12 13:24                     ` Michael Brand
  2013-02-12 15:57                     ` Bastien
@ 2013-02-12 16:33                     ` Bastien
  2013-02-12 18:09                       ` Michael Brand
  2 siblings, 1 reply; 31+ messages in thread
From: Bastien @ 2013-02-12 16:33 UTC (permalink / raw)
  To: Michael Brand; +Cc: Andrew M. Nuxoll, Org Mode

Hi Michael,

Michael Brand <michael.ch.brand@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

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: Still Wishing for Snooze
  2013-02-12 16:33                     ` Bastien
@ 2013-02-12 18:09                       ` Michael Brand
  0 siblings, 0 replies; 31+ messages in thread
From: Michael Brand @ 2013-02-12 18:09 UTC (permalink / raw)
  To: Bastien; +Cc: Andrew M. Nuxoll, Org Mode

Hi Bastien

On Tue, Feb 12, 2013 at 5:33 PM, Bastien <bzg@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

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: Still Wishing for Snooze
  2013-02-07  9:44             ` Bastien
  2013-02-07 15:25               ` Michael Brand
@ 2013-02-12 22:35               ` Andrew M. Nuxoll
  1 sibling, 0 replies; 31+ messages in thread
From: Andrew M. Nuxoll @ 2013-02-12 22:35 UTC (permalink / raw)
  To: Bastien; +Cc: emacs-orgmode

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" <nuxoll@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 #145    Email: nuxoll@up.edu
5000 N. Willamette Blvd              Web:   http://faculty.up.edu/nuxoll
Portland, OR  97203-5798             Office: Shiley Hall Rm 217

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: Still Wishing for Snooze
  2013-02-12 10:21                 ` Bastien
  2013-02-12 12:29                   ` Michael Brand
@ 2013-02-13 11:09                   ` Samuel Loury
  2013-02-13 11:14                     ` Bastien
  1 sibling, 1 reply; 31+ messages in thread
From: Samuel Loury @ 2013-02-13 11:09 UTC (permalink / raw)
  To: Bastien, Michael Brand; +Cc: Andrew M. Nuxoll, Org Mode

[-- Attachment #1: Type: text/plain, Size: 499 bytes --]

Bastien <bzg@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

[-- Attachment #2: Type: application/pgp-signature, Size: 489 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: Still Wishing for Snooze
  2013-02-13 11:09                   ` Samuel Loury
@ 2013-02-13 11:14                     ` Bastien
  0 siblings, 0 replies; 31+ messages in thread
From: Bastien @ 2013-02-13 11:14 UTC (permalink / raw)
  To: Samuel Loury; +Cc: Andrew M. Nuxoll, Michael Brand, Org Mode

Samuel Loury <konubinix@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

^ permalink raw reply	[flat|nested] 31+ messages in thread

end of thread, other threads:[~2013-02-13 11:14 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-01-21 18:20 Still Wishing for Snooze Andrew M. Nuxoll
2013-01-23 10:42 ` Samuel Loury
2013-01-23 19:00   ` Andrew M. Nuxoll
2013-01-23 13:36 ` Bastien
2013-01-24 18:49   ` Andrew M. Nuxoll
2013-01-24 22:26     ` Bastien
2013-01-24 22:54       ` Andrew M. Nuxoll
2013-01-25  1:20         ` Eric S Fraga
2013-01-25 10:45         ` Bastien
2013-01-25 19:48           ` Andrew M. Nuxoll
2013-02-07  9:44             ` Bastien
2013-02-07 15:25               ` Michael Brand
2013-02-09 18:06                 ` Samuel Loury
2013-02-09 20:50                   ` Michael Brand
2013-02-12 10:21                 ` Bastien
2013-02-12 12:29                   ` Michael Brand
2013-02-12 13:24                     ` Michael Brand
2013-02-12 15:57                     ` Bastien
2013-02-12 16:33                     ` Bastien
2013-02-12 18:09                       ` Michael Brand
2013-02-13 11:09                   ` Samuel Loury
2013-02-13 11:14                     ` Bastien
2013-02-12 22:35               ` Andrew M. Nuxoll
2013-01-25 11:10         ` Michael Brand
2013-01-25 19:30           ` Andrew M. Nuxoll
2013-02-07 15:24           ` Michael Brand
2013-01-23 15:49 ` Michael Brand
2013-01-23 18:51   ` Andrew M. Nuxoll
2013-01-23 19:37     ` Michael Brand
2013-01-24 20:09 ` Marc-Oliver Ihm
2013-01-26 17:40   ` Marc-Oliver Ihm

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).