Re: [O] [feature request] More flexible repeats

2011-09-24 Thread John Wiegley
 Dave Abrahams d...@boostpro.com writes:

 I have habits that I need to perform, e.g., every weekday, or four times a
 week.  I don't see a way to express that.  If I could schedule a task for
 +1.4d or +1.75d (respectively), I'd be happy.

Habits aren't really for scheduling, they're for monitoring a simple kind of
consistency.  So, if you *actually* need to do something four times a week,
habits aren't the best way to express that need.

If I had something that I wanted to do around four times a week, I'd use this:

  .+1d/2d

Which means, I could do it 7 times a week, or I should do it 3 times a week,
but I'm likely going to fall somewhere in between.

Habits were never meant as a precise way to keep you on a schedule.  The
closest way I can think of to do that within Org's current framework is to
schedule four different instances of your task, each with its own 1 week
repeating interval.  That way, you'd see the item appearing in your agenda
four times.  However, if you start slipping, things get very messy, very fast.

Lastly, even if you did have a 1.4d repeating interval for a habit, Habits
would only show you if you'd been consistent at doing the task every 1.4 days.
It would never be able to tell you if you'd been consistent at doing it 4
times within any given week.

John




Re: [O] Dimming ancestors in the agenda (relevant to indenting nested TODOs in agenda views)

2011-09-24 Thread Eric Abrahamsen
Okay, here's an attempt at indicating nested todos in the todo agenda
view.

The more I futzed with comparing consecutive TODOs the hackier it
seemed, so I went with something more fundamental. Right now I think
this is a bigger solution than the problem warranted, but it might also
open the way to other interesting features, so I'm floating it here.

With the attached patch, and the variable
`org-agenda-todo-list-sublevels' set to anything but nil,
`org-agenda-get-todos' will put todos into nested lists, rather than a
flat list.

While that's happening, TODOs can be formatted differently to indicate
their depth within TODO subtrees. Currently that's hardcoded to the
venerable leading dots, but symbol values for
`org-agenda-todo-list-sublevels' could provide for a wider variety of
formatting options, or a custom function.

Then `org-finalize-agenda-entries' unwinds the nested lists back into a
flat list (using a flatten pattern straight out of Paul Graham),
applying the necessary filtering, highlighting and sorting functions
along the way. One bonus is that each level of TODO subtrees gets sorted
distinctly.

Two questions:

1. Is this buggy or broken or unnecessarily slow?
2. Is this justified? Can we do other cool stuff with this?

That's all. Hope it works!

Eric

diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el
index b1fa5f5..417566d 100644
--- a/lisp/org-agenda.el
+++ b/lisp/org-agenda.el
@@ -587,12 +587,19 @@ When nil, these trees are also scanned by agenda 
commands.
   :type 'boolean)
 
 (defcustom org-agenda-todo-list-sublevels t
-  Non-nil means check also the sublevels of a TODO entry for TODO entries.
-When nil, the sublevels of a TODO entry are not checked, resulting in
-potentially much shorter TODO lists.
+  How to display TODO entries that are sublevels of a TODO entry.
+When nil, the sublevels of a TODO entry are not returned,
+resulting in potentially much shorter TODO lists. When t, the
+default, show all TODO entries as a flat list. 'indent and 'fade
+change the way TODO entries that follow a parent TODO are
+displayed.
   :group 'org-agenda-skip
   :group 'org-agenda-todo-list
-  :type 'boolean)
+  :type '(choice
+ (const :tag Create a flat list of sublevels t)
+ (const :tag Do not list sublevel todos nil)
+ (const :tag Indent sublevel todos indent)
+ (const :tag Fade out sublevel todos fade)))
 
 (defcustom org-agenda-todo-ignore-with-date nil
   Non-nil means don't show entries with a date in the global todo list.
@@ -4582,40 +4590,57 @@ the documentation of `org-diary'.
   (mapconcat 'identity
  (org-split-string
   org-select-this-todo-keyword 
|) \\|)
-\\)\\))
+  \\)\\))
   org-not-done-regexp)
 [^\n\r]*\\)))
-marker priority category category-pos tags todo-state ee txt beg end)
-(goto-char (point-min))
-(while (re-search-forward regexp nil t)
-  (catch :skip
-   (save-match-data
- (beginning-of-line)
- (org-agenda-skip)
- (setq beg (point) end (save-excursion (outline-next-heading) (point)))
- (when (org-agenda-check-for-timestamp-as-reason-to-ignore-todo-item 
end)
-   (goto-char (1+ beg))
-   (or org-agenda-todo-list-sublevels (org-end-of-subtree 'invisible))
-   (throw :skip nil)))
-   (goto-char (match-beginning 1))
-   (setq marker (org-agenda-new-marker (match-beginning 0))
- category (org-get-category)
- category-pos (get-text-property (point) 'org-category-position)
- txt (match-string 1)
- tags (org-get-tags-at (point))
- txt (org-format-agenda-item  txt category tags)
- priority (1+ (org-get-priority txt))
- todo-state (org-get-todo-state))
-   (org-add-props txt props
- 'org-marker marker 'org-hd-marker marker
- 'priority priority 'org-category category
- 'org-category-position category-pos
- 'type todo 'todo-state todo-state)
-   (push txt ee)
-   (if org-agenda-todo-list-sublevels
-   (goto-char (match-end 1))
- (org-end-of-subtree 'invisible
-(nreverse ee)))
+(depth 0))
+
+(flet ((mk-td (start finish)
+ (goto-char start)
+ (let (marker priority category category-pos tags todo-state 
ee txt beg end)
+   (while (re-search-forward regexp finish t)
+ (catch :skip
+   (save-match-data
+ (beginning-of-line)
+ (org-agenda-skip)
+ (setq beg (point) end (save-excursion 
(outline-next-heading) (point)))
+ (when 

Re: [O] Dimming ancestors in the agenda (relevant to indenting nested TODOs in agenda views)

2011-09-24 Thread Eric Abrahamsen
On Sat, Sep 24 2011, Eric Abrahamsen wrote:

 Okay, here's an attempt at indicating nested todos in the todo agenda
 view.

That might not have been the most useful way to attach the diff, sorry.

diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el
index b1fa5f5..417566d 100644
--- a/lisp/org-agenda.el
+++ b/lisp/org-agenda.el
@@ -587,12 +587,19 @@ When nil, these trees are also scanned by agenda commands.
   :type 'boolean)
 
 (defcustom org-agenda-todo-list-sublevels t
-  Non-nil means check also the sublevels of a TODO entry for TODO entries.
-When nil, the sublevels of a TODO entry are not checked, resulting in
-potentially much shorter TODO lists.
+  How to display TODO entries that are sublevels of a TODO entry.
+When nil, the sublevels of a TODO entry are not returned,
+resulting in potentially much shorter TODO lists. When t, the
+default, show all TODO entries as a flat list. 'indent and 'fade
+change the way TODO entries that follow a parent TODO are
+displayed.
   :group 'org-agenda-skip
   :group 'org-agenda-todo-list
-  :type 'boolean)
+  :type '(choice
+	  (const :tag Create a flat list of sublevels t)
+	  (const :tag Do not list sublevel todos nil)
+	  (const :tag Indent sublevel todos indent)
+	  (const :tag Fade out sublevel todos fade)))
 
 (defcustom org-agenda-todo-ignore-with-date nil
   Non-nil means don't show entries with a date in the global todo list.
@@ -4563,6 +4570,7 @@ the documentation of `org-diary'.
 		  (setq results (append results rtn
 	results
 
+
 (defun org-agenda-get-todos ()
   Return the TODO information for agenda display.
   (let* ((props (list 'face nil
@@ -4582,40 +4590,57 @@ the documentation of `org-diary'.
    (mapconcat 'identity
 		  (org-split-string
 		   org-select-this-todo-keyword |) \\|)
- \\)\\))
+   \\)\\))
 			   org-not-done-regexp)
 			 [^\n\r]*\\)))
-	 marker priority category category-pos tags todo-state ee txt beg end)
-(goto-char (point-min))
-(while (re-search-forward regexp nil t)
-  (catch :skip
-	(save-match-data
-	  (beginning-of-line)
-	  (org-agenda-skip)
-	  (setq beg (point) end (save-excursion (outline-next-heading) (point)))
-	  (when (org-agenda-check-for-timestamp-as-reason-to-ignore-todo-item end)
-	(goto-char (1+ beg))
-	(or org-agenda-todo-list-sublevels (org-end-of-subtree 'invisible))
-	(throw :skip nil)))
-	(goto-char (match-beginning 1))
-	(setq marker (org-agenda-new-marker (match-beginning 0))
-	  category (org-get-category)
-	  category-pos (get-text-property (point) 'org-category-position)
-	  txt (match-string 1)
-	  tags (org-get-tags-at (point))
-	  txt (org-format-agenda-item  txt category tags)
-	  priority (1+ (org-get-priority txt))
-	  todo-state (org-get-todo-state))
-	(org-add-props txt props
-	  'org-marker marker 'org-hd-marker marker
-	  'priority priority 'org-category category
-	  'org-category-position category-pos
-	  'type todo 'todo-state todo-state)
-	(push txt ee)
-	(if org-agenda-todo-list-sublevels
-	(goto-char (match-end 1))
-	  (org-end-of-subtree 'invisible
-(nreverse ee)))
+	 (depth 0))
+
+(flet ((mk-td (start finish)
+		  (goto-char start)
+		  (let (marker priority category category-pos tags todo-state ee txt beg end)
+		(while (re-search-forward regexp finish t)
+		  (catch :skip
+			(save-match-data
+			  (beginning-of-line)
+			  (org-agenda-skip)
+			  (setq beg (point) end (save-excursion (outline-next-heading) (point)))
+			  (when (org-agenda-check-for-timestamp-as-reason-to-ignore-todo-item end)
+			(goto-char (1+ beg))
+			(or org-agenda-todo-list-sublevels (org-end-of-subtree 'invisible))
+			(throw :skip nil)))
+			(goto-char (match-beginning 1))
+			(setq marker (org-agenda-new-marker (match-beginning 0))
+			  category (org-get-category)
+			  category-pos (get-text-property (point) 'org-category-position)
+			  txt (concat (if
+	  ( depth 0)
+	  (make-string (* 2 depth) ?.)
+	) (match-string 1))
+			  tags (org-get-tags-at (point))
+			  txt (org-format-agenda-item  txt category tags depth)
+			  priority (1+ (org-get-priority txt))
+			  todo-state (org-get-todo-state))
+			(org-add-props txt props
+			  'org-marker marker 'org-hd-marker marker
+			  'priority priority 'org-category category
+			  'org-category-position category-pos
+			  'type todo 'todo-state todo-state)
+			(if (not org-agenda-todo-list-sublevels)
+			(progn
+			  (push txt ee)
+			  (org-end-of-subtree 'invisible))
+			  (goto-char (match-end 0))
+			  (let* ((depth (1+ depth))
+ (subtree-todos
+  (mk-td (point)
+	 (save-excursion (org-end-of-subtree 'invisible) (point)
+			(when subtree-todos
+			  (setq txt (cons txt (nreverse subtree-todos
+			(push txt ee)
+		ee)))
+  (goto-char (point-min))
+  (nreverse (mk-td (point) (point-max))
+
 
 (defun 

Re: [O] [feature request] More flexible repeats

2011-09-24 Thread Dave Abrahams

on Sat Sep 24 2011, John Wiegley jwiegley-AT-gmail.com wrote:

 Dave Abrahams d...@boostpro.com writes:

 I have habits that I need to perform, e.g., every weekday, or four times a
 week.  I don't see a way to express that.  If I could schedule a task for
 +1.4d or +1.75d (respectively), I'd be happy.

 Habits aren't really for scheduling, they're for monitoring a simple kind of
 consistency.  

Understood.

 So, if you *actually* need to do something four times a week, habits
 aren't the best way to express that need.

Exactly.  They don't have the expressiveness I want, as currently designed.

 If I had something that I wanted to do around four times a week, I'd use this:

   .+1d/2d

 Which means, I could do it 7 times a week, or I should do it 3 times a week,
 but I'm likely going to fall somewhere in between.

I think I see.  That means, literally, at most every day, but at least
every two days?

So, a couple of questions:

- what would it change if I just wrote .+2d?
- how would I express something that I want to do 5 times a week?

 Habits were never meant as a precise way to keep you on a schedule.  

I'm not thinking of them that way.  I admit that every weekday is
pretty precise, but that's merely at the extreme end of a spectrum of
consistency.  It's still a goal with respect to which I'd reasonably
like to be able to monitor my success rate.

 The closest way I can think of to do that within Org's current
 framework is to schedule four different instances of your task, each
 with its own 1 week repeating interval.  That way, you'd see the item
 appearing in your agenda four times.  However, if you start slipping,
 things get very messy, very fast.

Yes.  Regular repeating events and habits both have this problem of no
easy way to express interesting repetitions.  Even my phone lets me
schedule something that happens on weekdays or on two particular days
each week.

I think the basic parts of such a language might be:

- predicates, e.g. Mon,Wed,Fri; the first week of each month; the first
  tuesday of the month
- periods, e.g. 1 month
- repetitions, e.g. 5 times

General predicates are all you need to express repeating events.  I
think you need periods and repetitions for habits.

 Lastly, even if you did have a 1.4d repeating interval for a habit, Habits
 would only show you if you'd been consistent at doing the task every 1.4 days.
 It would never be able to tell you if you'd been consistent at doing it 4
 times within any given week.

Then 1.4d is clearly *not* the expressive tool I need :-)

-- 
Dave Abrahams
BoostPro Computing
http://www.boostpro.com




Re: [O] [feature request] More flexible repeats

2011-09-24 Thread Eric Abrahamsen
On Sat, Sep 24 2011, Dave Abrahams wrote:


[...]


 I think the basic parts of such a language might be:

 - predicates, e.g. Mon,Wed,Fri; the first week of each month; the first
   tuesday of the month
 - periods, e.g. 1 month
 - repetitions, e.g. 5 times

Looks like you're coming up on the crontab syntax :)

-- 
GNU Emacs 23.2.1 (i686-pc-linux-gnu, GTK+ Version 2.24.4)
 of 2011-04-04 on rothera, modified by Debian
Org-mode version 7.7 (release_7.7.324.ge5d88)




Re: [O] [feature request] More flexible repeats

2011-09-24 Thread Dave Abrahams

on Sat Sep 24 2011, Eric Abrahamsen eric-AT-ericabrahamsen.net wrote:

 On Sat, Sep 24 2011, Dave Abrahams wrote:

 [...]


 I think the basic parts of such a language might be:

 - predicates, e.g. Mon,Wed,Fri; the first week of each month; the first
   tuesday of the month
 - periods, e.g. 1 month
 - repetitions, e.g. 5 times

 Looks like you're coming up on the crontab syntax :)

Good point.  I don't need a fancy syntax if I can express it with elisp,
of course.  Maybe enabling that would be a good first step.

-- 
Dave Abrahams
BoostPro Computing
http://www.boostpro.com




[O] Bug: [feature request] org-indirect-buffer-follow [7.7 (release_7.7.350.g9a179e)]

2011-09-24 Thread Dave Abrahams


Remember to cover the basics, that is, what you expected to happen and
what in fact did happen.  You don't know how to make a good report?  See

 http://orgmode.org/manual/Feedback.html#Feedback

Your bug report will be posted to the Org-mode mailing list.


In org-agenda-follow-mode, it scrolls me around a big, messy Org file
that has way more information than I'm actually interested in.  What I
really want is the effect of hitting `SPC' automatically whenever I
visit an agenda item.

Emacs  : GNU Emacs 23.3.1 (x86_64-apple-darwin10.8.0, Carbon Version 1.6.0 
AppKit 1038.36)
 of 2011-09-12 on pluto.luannocracy.com
Package: Org-mode version 7.7 (release_7.7.350.g9a179e)
-- 
Dave Abrahams
BoostPro Computing
http://www.boostpro.com




[O] org-enforce-todo-dependencies and mobile agendas

2011-09-24 Thread Henning Weiss
Hi,

I'm using org-mobile-push to generate my mobile agendas file. Everything is
working fine, except the org-enforce-todo-dependencies option. The output I
obtain in my generated agendas.org file is same as I would see in my agenda
without org-enforce-todo-dependencies set to t.

As far as I understood, the agenda uses the org-agenda-dim-blocked-tasks to
decide on what to do with blocked tasks. I have set it to invisible, thereby
hiding the tasks in the agenda. I would like to have similar behavior for my
mobile agendas.

Is there some way of achieving the hiding of blocked tasks in the mobile
agendas?

Henning Weiss


[O] [patch] (was: [feature request] org-indirect-buffer-follow [7.7 (release_7.7.350.g9a179e)])

2011-09-24 Thread Dave Abrahams
From 81ab272ab709c45e898831e5e019e02cfc6617fe Mon Sep 17 00:00:00 2001
From: Dave Abrahams d...@boostpro.com
Date: Sat, 24 Sep 2011 15:21:53 -0400
Subject: [PATCH] Add indirect agenda follow mode

By setting `org-agenda-follow-indirect' to a non-nil value,
`org-agenda-follow-mode' will use an indirect buffer to display only
the current item, rather than the whole agenda file in which it lives
---
 lisp/org-agenda.el |   13 ++---
 1 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el
index b1fa5f5..1b67153 100644
--- a/lisp/org-agenda.el
+++ b/lisp/org-agenda.el
@@ -872,6 +872,12 @@ Needs to be set before org.el is loaded.
   :group 'org-agenda-startup
   :type 'boolean)
 
+(defcustom org-agenda-follow-indirect nil
+  Non-nil means `org-agenda-follow-mode' displays only the
+current item's tree, in an indirect buffer.
+  :group 'org-agenda
+  :type 'boolean)
+
 (defcustom org-agenda-show-outline-path t
   Non-nil means show outline path in echo area after line motion.
   :group 'org-agenda-startup
@@ -6608,8 +6614,7 @@ so that the date SD will be in that range.
   (interactive)
   (setq org-agenda-follow-mode (not org-agenda-follow-mode))
   (org-agenda-set-mode-name)
-  (if (and org-agenda-follow-mode (org-get-at-bol 'org-marker))
-  (org-agenda-show))
+  (org-agenda-do-context-action)
   (message Follow mode is %s
 	   (if org-agenda-follow-mode on off)))
 
@@ -6771,7 +6776,9 @@ When called with a prefix argument, include all archive files as well.
   Show outline path and, maybe, follow mode window.
   (let ((m (org-get-at-bol 'org-marker)))
 (if (and org-agenda-follow-mode m)
-	(org-agenda-show))
+	(if org-agenda-follow-indirect
+	(org-agenda-tree-to-indirect-buffer)
+	  (org-agenda-show)))
 (if (and m org-agenda-show-outline-path)
 	(org-with-point-at m
 	  (org-display-outline-path t)
-- 
1.7.3.4



-- 
Dave Abrahams
BoostPro Computing
http://www.boostpro.com


Re: [O] [feature request] More flexible repeats

2011-09-24 Thread Michael Steeves

On 9/24/11 7:16 AM, John Wiegley wrote:

Dave Abrahamsd...@boostpro.com  writes:



I have habits that I need to perform, e.g., every weekday, or four times a
week.  I don't see a way to express that.  If I could schedule a task for
+1.4d or +1.75d (respectively), I'd be happy.


Habits aren't really for scheduling, they're for monitoring a simple kind of
consistency.  So, if you *actually* need to do something four times a week,
habits aren't the best way to express that need.



It's funny that this topic came up on the mailing list just now -- I've 
been working on integrating org-mode more into my daily workflow, and am 
starting to put some habits in and was trying to figure out how to make 
the habits repeat in the way I want them to.


If I have something that I want to track in terms of consistency, and 
want to do it during the weekdays, is there a way I could express that 
other then having a series of 5 habits, one for each day of the week, 
each one of which would repeat every week?



-Mike
--
Michael Steeves (stee...@raingods.net)



Re: [O] [babel] BUG in :session

2011-09-24 Thread Eric Schulte
Martyn Jago martyn.j...@btinternet.com writes:

 Hi Eric

 Eric Schulte schulte.e...@gmail.com writes:

 Martyn Jago martyn.j...@btinternet.com writes:

 Hi Eric

 Eric Schulte schulte.e...@gmail.com writes:

 Hi Martyn,

 I've just pushed up what will hopefully be a more general solution.
 Basically, language-specific test files can now signal errors if they
 have unmet dependencies.  These are then intercepted by `org-test-load'
 and the file is not added to the test suite.  Hopefully this will allow
 language-specific tests to be written without breaking the config-less
 test suite.

 See the top of test-ob-R.el for an example usage.

 Cheers -- Eric

 Unfortunately this is still broken for me. Given the exe exists but the
 feature doesn't (ie no personal config), the following line causes the
 error `peculiar error' !

(signal 'org-test-lib-not-found ess))


 Oh,

 I forgot to update the types of errors that I am catching after adding a
 new error type for missing libraries (e.g., ess).  This should now be
 fixed.


 There still seems to be a problem with test-ob-R - same error peculiar
 error.


OK, I see this error as well.  I've switched from using errors to signal
a missing dependency to using catch/throw blocks.  This seems to
actually work, hopefully the test suite should now run w/o error.



 Is there a way to see the output of the test run, all I can find is the
 command which is executed.

 Yes - just click on the org-mode_Emacs_24 (title) link and then on the
 build log link. There isn't much of a log on the failing tests since
 the entire test run is broken by the signal. 

 You can checkout the build log for my-org-mode-dev to see what you
 should get.


Great, doing this I can see that everything is now running successfully
http://martynjago.com:/builds/org-mode_Emacs_24/4446e50/build.log

Very nice system, I wonder if we could run something like this on the
Org-mode server.

Cheers -- Eric

-- 
Eric Schulte
http://cs.unm.edu/~eschulte/



Re: [O] [babel] BUG in :session

2011-09-24 Thread Eric Schulte
Sebastien Vauban wxhgmqzgw...@spammotel.com writes:

 Hi Martyn and Eric,

 Martyn Jago wrote:
 Eric Schulte schulte.e...@gmail.com writes:
 Martyn Jago martyn.j...@btinternet.com writes:
 Eric Schulte schulte.e...@gmail.com writes:
 I've just pushed up what will hopefully be a more general solution.
 Basically, language-specific test files can now signal errors if they
 have unmet dependencies.  These are then intercepted by `org-test-load'
 and the file is not added to the test suite.  Hopefully this will allow
 language-specific tests to be written without breaking the config-less
 test suite.

 See the top of test-ob-R.el for an example usage.

 Cheers -- Eric

 Unfortunately this is still broken for me. Given the exe exists but the
 feature doesn't (ie no personal config), the following line causes the
 error `peculiar error' !

(signal 'org-test-lib-not-found ess))

 FYI, same for me, with the batch tests, on a git update'd copy done 2 mins
 ago.


Thanks for the supporting info.  I've just pushed up a fix which should
resolve this issue.

Cheers -- Eric

-- 
Eric Schulte
http://cs.unm.edu/~eschulte/



[O] Testing org-export-as-odt-and-open

2011-09-24 Thread Eric Belpaire
Hello 

I'm testing org-export-as-odt-and-open on Jambunathan's test.org file. 
I get error message Unable to create odt file (53). 

Is this caused by the fact that files are created in different directories?
a) org-export-as-odt-and-open creates the file e:/User/home/pub_html/test.odt
wheras 
b) the xml files are written in directory c:/Documents and
Settings/GCVD3476/Local Settings/Temp/odt-4928fzB/

The debugger is entered when: Creating odt file using zip -rmTq test.odt .

Did I forget to configure some variable or should I configure variable
org-export-publishing-directory (currently: e:/User/home/pub_html/) 
differently? 

Below an extract from *Messages* and *Backtrace* buffers. 

Cordially, 
Eric 

Export buffer: 
Exporting to ODT using org-lparse...
Using vacuous schema [3 times]
c:/DOCUME~1/User/LOCALS~1/Temp/odt-4928fzB/content.xml and 
c:/Documents and Settings/User/Local Settings/Temp/odt-4928fzB/content.xml
are the same file
org-babel-exp processing... [3 times]
Position saved to mark ring, go back with C-c .
executing Org code block...
* Some Appointment
  SCHEDULED: 2010-11-17 Wed
org-babel-exp processing...
Use of MathJax is incompatible with ODT exporter. Using verbatim instead.
Exporting...
Embedding ./org-mode-unicorn.png as
Pictures/691b2c669141aa68f784d83e5c853f2b350b445f.png ... [5 times]
Found table.el-type table in the source org file. table.el doesn't support ODT
backend. Skipping ahead ... [2 times]
Using schema
~/.emacs.d/elpa/org-odt-20110702/contrib/odt/etc/schema/od-schema-v1.2-cs01.rnc
ODT export done, pushed to kill ring and clipboard
Using schema
~/.emacs.d/elpa/org-odt-20110702/contrib/odt/etc/schema/od-schema-v1.2-cs01.rnc
(No changes need to be saved)
Switching to directory c:/Documents and Settings/User/Local
Settings/Temp/odt-4928fzB/
Saving file c:/Documents and Settings/User/Local
Settings/Temp/odt-4928fzB/META-INF/manifest.xml...
Wrote c:/Documents and Settings/User/Local
Settings/Temp/odt-4928fzB/META-INF/manifest.xml
Saving file c:/Documents and Settings/User/Local
Settings/Temp/odt-4928fzB/content.xml...
Wrote c:/Documents and Settings/User/Local Settings/Temp/odt-4928fzB/content.xml
Saving file c:/Documents and Settings/User/Local
Settings/Temp/odt-4928fzB/meta.xml...
Wrote c:/Documents and Settings/User/Local Settings/Temp/odt-4928fzB/meta.xml
Saving file c:/Documents and Settings/User/Local
Settings/Temp/odt-4928fzB/styles.xml...
Wrote c:/Documents and Settings/User/Local Settings/Temp/odt-4928fzB/styles.xml
Creating odt file using zip -rmTq test.odt .
Entering debugger...


Debugger entered--Lisp error: (error Unable to create odt file (53))
  signal(error (Unable to create odt file (53)))
  error(Unable to create odt file (%S) 53)
  org-odt-save-as-outfile(e:/User/home/pub_html/test.odt 
(:latex-image-options nil :exclude-tags (noexport) :select-tags (export)
:publishing-directory ~/pub_html :timestamp nil :expand-quoted-html t 
:html-table-tag tableborder=\2\ cellspacing=\0\ cellpadding=\6\ 
rules=\groups\ frame=\hsides\ 
:xml-declaration ((html . ?xml version=\1.0\ encoding=\%s\?) 
(php . ?php echo \?xml version=\\\1.0\\\
encoding=\\\%s\\\ ?\; ?)) :html-postamble auto :html-preamble t
:html-extension html :inline-images maybe :convert-org-links t :agenda-style
 :style-extra  :style  :style-include-scripts t :style-include-default t
:table-auto-headline t :tables t :time-stamp-file t :creator-info t :email-info
nil :author-info t :email kjambunat...@gmail.com ...))
  org-do-lparse(nil hidden nil nil nil nil)
  org-lparse(odt odt nil hidden)
  org-lparse-and-open(odt odt nil)
  org-export-as-odt-and-open(nil)
  call-interactively(org-export-as-odt-and-open)
  org-export(nil)
  call-interactively(org-export nil nil) 




Re: [O] Dimming ancestors in the agenda (relevant to indenting nested TODOs in agenda views)

2011-09-24 Thread Samuel Wales
Hi Eric,

Looks like you put a lot of work into this.

Some comments:

On 2011-09-24, Eric Abrahamsen e...@ericabrahamsen.net wrote:
 along the way. One bonus is that each level of TODO
 subtrees gets sorted distinctly.

My goal (which might be different from yours) is as stated
in the subject header; it's merely to dim any agenda entry
that has any descendent of it anywhere in the same agenda.

There would be no other differences, so sorting would be the
same.

  (defcustom org-agenda-todo-list-sublevels t
 - Non-nil means check also the sublevels of a TODO entry
 for TODO entries.

This looks like it only works for the agenda command(s) that
list(s) todos, not for tags, text search, or daily/weekly
agenda.  Is that correct?

I reviewed the manual and
http://orgmode.org/worg/org-tutorials/advanced-searching.html#combining-metadata-and-full-text-queries
.

I've actually never understood the usefulness of the c-c a t
view, given that all todo searches (IIUC) can in principle
be implemented with a tags search and c-c a t would take
forever with a large set of agenda files.  Also, I rarely
use T (and only interactively) and never use M.

So your patch would actually not be useful to me, as I
essentially don't use the todo searches.

 +  How to display TODO entries that are sublevels of a TODO entry.
 +When nil, the sublevels of a TODO entry are not returned,
 +resulting in potentially much shorter TODO lists. When t, the

This seems to allow you to dim sublevels, not ancestors.  So
it is actually the opposite of this thread's subject.

Also, it seems to merge the concept of skipping sublevels
with dimming.  My guess is that they should be separated.
Of course, it is your code and you know it best.

Dimming of ancestors can be done after the entire agenda is
created.  So it need not be involved in the initial scanning
of the outline at all, unless that is needed for efficiency.

===

It is probable that I do not understand what your goal is,
as it is different from mine.  The two goals might or might
not be advisable to implement with the same approach.

My goal is simply to dim anything in the agenda that has any
descendant that is also showing in the agenda, efficiently.

That way, if you have a project and a NEXT underneath it,
the project will be dimmed and the NEXT will not, without
any manual manipulation of metadata necessary.

Hope it helps.

Samuel

-- 
The Kafka Pandemic: http://thekafkapandemic.blogspot.com
I support the Whittemore-Peterson Institute (WPI)
===
Bigotry against people with serious diseases is still bigotry.



[O] shortcuts to hide nearest heading or sparse tree

2011-09-24 Thread Kevin Buchs
Reposting due to no replies:

I have been studying extensively and have not found a quick way to hide the
nearest heading (which contains point) as well as the entire sparse tree. I
often have two or more sparse trees open as I go look for information
elsewhere and then want to return to the place I was at. So, can I be lazy
and do these operations with a few keys?


Re: [O] Dimming ancestors in the agenda (relevant to indenting nested TODOs in agenda views)

2011-09-24 Thread Eric Abrahamsen
On Sun, Sep 25 2011, Samuel Wales wrote:

 Hi Eric,

 Looks like you put a lot of work into this.

Not that much work, in the end -- most of the effort was figuring out
how the existing code works.

 Some comments:

 On 2011-09-24, Eric Abrahamsen e...@ericabrahamsen.net wrote:
 along the way. One bonus is that each level of TODO
 subtrees gets sorted distinctly.

 My goal (which might be different from yours) is as stated
 in the subject header; it's merely to dim any agenda entry
 that has any descendent of it anywhere in the same agenda.

 There would be no other differences, so sorting would be the
 same.

Ha! No kidding, I guess I lost track of that in all the confusion. It
makes little difference, though: all the current setup does is put TODOs
into trees -- how you format what is wide open. To be honest I'm not
sure how one would go about dimming a TODO (I don't think font
properties support something like reduce the opacity of the current
foreground color by 50%), but that's something to look into next.

Anyway, doing it the way you want would not be hard.

Sorting is actually still an issue for you: if you ever asked for TODOs
to be sorted by effort, say, or priority, a child TODO could end up in
a different part of the list than an ancestor, and you'd never see that
they were related. This way, TODO subtrees always stay together.


  (defcustom org-agenda-todo-list-sublevels t
 - Non-nil means check also the sublevels of a TODO entry
 for TODO entries.

 This looks like it only works for the agenda command(s) that
 list(s) todos, not for tags, text search, or daily/weekly
 agenda.  Is that correct?

 I reviewed the manual and
 http://orgmode.org/worg/org-tutorials/advanced-searching.html#combining-metadata-and-full-text-queries
 .

 I've actually never understood the usefulness of the c-c a t
 view, given that all todo searches (IIUC) can in principle
 be implemented with a tags search and c-c a t would take
 forever with a large set of agenda files.  Also, I rarely
 use T (and only interactively) and never use M.

 So your patch would actually not be useful to me, as I
 essentially don't use the todo searches.

This is a real problem. There seem to be four or five places in the
codebase that do something like use a regexp to search for matching
dingbats in all org files and put them in a list. More than one of
those places produces something that looks like a plain TODO list.

If the general approach here appeals, the next step would be to make it
work for todo-tags as well. I think implementing it for the daily/weekly
agenda is a bad idea (headlines and TODOs are meant to be formatted
according to time-based attributes there), and doing it for text search
would take some serious chin-scratching. But it would at least need to
be expanded into todo-tags.

What agenda commands do you use most often? Do you use multi-block
custom agenda commands?

 +  How to display TODO entries that are sublevels of a TODO entry.
 +When nil, the sublevels of a TODO entry are not returned,
 +resulting in potentially much shorter TODO lists. When t, the

 This seems to allow you to dim sublevels, not ancestors.  So
 it is actually the opposite of this thread's subject.

 Also, it seems to merge the concept of skipping sublevels
 with dimming.  My guess is that they should be separated.
 Of course, it is your code and you know it best.

 Dimming of ancestors can be done after the entire agenda is
 created.  So it need not be involved in the initial scanning
 of the outline at all, unless that is needed for efficiency.

 ===

 It is probable that I do not understand what your goal is,
 as it is different from mine.  The two goals might or might
 not be advisable to implement with the same approach.

 My goal is simply to dim anything in the agenda that has any
 descendant that is also showing in the agenda, efficiently.

 That way, if you have a project and a NEXT underneath it,
 the project will be dimmed and the NEXT will not, without
 any manual manipulation of metadata necessary.

I think we have similar goals, I just ended up with something a little
more far-reaching than what you were proposing. As I mentioned above, I
haven't implemented any dimming yet, and it would be just as easy to dim
ancestors as children (both options could be provided).

You're right, I merged the concept of dimming with skipping sublevels
(actually, with collecting TODO subtrees), because it seemed the only
way of knowing for certain what to dim was to know what belonged to what
tree. It's a little overkill just for indicating ancestors, but it works
perfectly well, and if people find it generally worthwhile it could open
the door to other tricks…

E

-- 
GNU Emacs 23.2.1 (i686-pc-linux-gnu, GTK+ Version 2.24.4)
 of 2011-04-04 on rothera, modified by Debian
Org-mode version 7.7 (release_7.7.320.gc8c8)




Re: [O] Dimming ancestors in the agenda (relevant to indenting nested TODOs in agenda views)

2011-09-24 Thread Samuel Wales
On 2011-09-24, Eric Abrahamsen e...@ericabrahamsen.net wrote:
 into trees -- how you format what is wide open. To be honest I'm not
 sure how one would go about dimming a TODO (I don't think font
 properties support something like reduce the opacity of the current
 foreground color by 50%), but that's something to look into next.

Just a face.  Simple.

 Sorting is actually still an issue for you: if you ever asked for TODOs
 to be sorted by effort, say, or priority, a child TODO could end up in
 a different part of the list than an ancestor, and you'd never see that
 they were related. This way, TODO subtrees always stay together.

Nope, moving entries from their current sort order into an order that
addresses hierarchy is not a requirement at this time (for me).
Sorting does not need to change.

My goal is simple: go through entries in the already-built agenda and
dim anything that has a descendent in the same agenda.

Hierarchical sorting is for the future.  And it is undesirable if you
do not have the horizontal real estate to indent.

Note: I say entry meaning a headline in the agenda; todo entries are
only a subset of those and I don't want to limit to todo entries.

 This is a real problem. There seem to be four or five places in the
 codebase that do something like use a regexp to search for matching
 dingbats in all org files and put them in a list. More than one of
 those places produces something that looks like a plain TODO list.

IMO ideally any feature should work for all agenda views that the user
might want to use it for.  We want to reduce features that only work
in special cases, or that don't work in special cases.  Ideally.

Again, what I am talking about (your case might be different) is not
todo entries, but entries in general.

 If the general approach here appeals, the next step would be to make it
 work for todo-tags as well. I think implementing it for the daily/weekly
 agenda is a bad idea (headlines and TODOs are meant to be formatted
 according to time-based attributes there), and doing it for text search

IMO the user sets the sort for the daily/weekly agenda just as much as
for the others, and it is not always just by time, so it should be
possible to meet the user's expectations with any new feature there as
much as for other agenda views.

 would take some serious chin-scratching. But it would at least need to

I'm not sure why any agenda view can't use these features.  Certainly
for my goal, but presumably for yours also?

 What agenda commands do you use most often? Do you use multi-block
 custom agenda commands?

Usually not, but I'd want it to be an option for any new feature, for
the sake of people who do.  Otherwise they would wonder why it isn't
working, post to the ml, etc.

 I think we have similar goals, I just ended up with something a little

I'm reaching the opposite conclusion :).  But I agree that if things
are similar, they should be made the same with parameters.  So if they
are similar, go for it!

 haven't implemented any dimming yet, and it would be just as easy to dim
 ancestors as children (both options could be provided).

OK, understood.

 You're right, I merged the concept of dimming with skipping sublevels
 (actually, with collecting TODO subtrees), because it seemed the only
 way of knowing for certain what to dim was to know what belonged to what
 tree. It's a little overkill just for indicating ancestors, but it works

olpaths are another way.  You might be able to collect them and put
them on the entries in the agenda as a text property for efficiency.
Or something.  Then skipping can do its own thing without being mixed
up with this stuff.

Just stuff to possibly consider.

Samuel

-- 
The Kafka Pandemic: http://thekafkapandemic.blogspot.com
I support the Whittemore-Peterson Institute (WPI)
===
Bigotry against people with serious diseases is still bigotry.



Re: [O] Dimming ancestors in the agenda (relevant to indenting nested TODOs in agenda views)

2011-09-24 Thread Eric Abrahamsen
On Sun, Sep 25 2011, Samuel Wales wrote:


[...]

 My goal is simple: go through entries in the already-built agenda and
 dim anything that has a descendent in the same agenda.

 Hierarchical sorting is for the future.  And it is undesirable if you
 do not have the horizontal real estate to indent.

Okay, what you want is simpler than I had assumed. My goal isn't really
to make something that dims ancestors, though: it's to give users a
number of choices for indicating hierarchical relationships between
entries in agenda views. That ought to encompass your needs, but it
probably will end up being a little more complicated.

[...]

 I'm not sure why any agenda view can't use these features.  Certainly
 for my goal, but presumably for yours also?

The main problem is that the codebase is very scattered, and there are a
large number of different functions that produce and display agenda-like
entries. To make this (for whatever value of this) work for all agenda
views, it will take quite a bit of poking about, and making little
design decisions. I want to make sure that the general strategy is
acceptable before I put that work in.

Eric

-- 
GNU Emacs 23.2.1 (i686-pc-linux-gnu, GTK+ Version 2.24.4)
 of 2011-04-04 on rothera, modified by Debian
Org-mode version 7.7 (release_7.7.320.gc8c8)