[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[O] [PATCH] Re: TODO state change from TODO to DONE blocked
From: |
Sébastien Vauban |
Subject: |
[O] [PATCH] Re: TODO state change from TODO to DONE blocked |
Date: |
Fri, 04 Mar 2011 16:15:37 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (windows-nt) |
Hi Bastien,
Sébastien Vauban wrote:
> Bastien wrote:
>>>> I've a really weird exception occurring: change state from TODO to DONE is
>>>> blocked... while I'm on a leaf of the Org tree!?
>>>>
>>>> Debugger entered--Lisp error: (error #("TODO state change from TODO to
>>>> DONE blocked" 23 27 (face org-todo) 31 35 (face org-done)))
>>
>> Are you using `org-blocker-hook' or `org-trigger-hook'?
>>
>> Let us know.
>
> Though, hopping from one variable description to another, I remembered that I
> had set the variable =org-enforce-todo-dependencies= to =t=. Trying to set it
> to =nil= made the problem disappear... So, it was a bit narrowed.
>
> I could see in the description of that var that it could block state change if
> tasks were ordered and a previous one not done. But I never use the ordered
> property.
>
> ... Well, never, but well in that parent tree. Was it for test purpose? Did I
> have something else in mind? I dunno anymore, but that property was
> definitely the culprit.
>
> Doing so, I'm wondering:
>
> - if the output message could be updated to make it clear what the reason is,
> or can be?
diff --git a/lisp/org.el b/lisp/org.el
index 3a07cfd..fb60bc6 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -10927,7 +10927,10 @@ For calling through lisp, arg is also interpreted in
the following way:
(run-hook-with-args-until-failure
'org-blocker-hook change-plist)))
(if (interactive-p)
- (error "TODO state change from %s to %s blocked" this state)
+ (error (concat "TODO state change from %s to %s blocked "
+ "(because of undone child, or "
+ "parent with ORDERED property and undone prior
sibling)")
+ this state)
;; fail silently
(message "TODO state change from %s to %s blocked" this state)
(throw 'exit nil))))
Best regards,
Seb
--
Sébastien Vauban