Re: [O] Bulk cut in agenda view

2011-07-19 Thread Julien Cubizolles
Bernt Hansen be...@norang.ca writes:

 Hi Julien,

 Could you describe your use-case for this bulk cut function?

 Is this bulk cut function destructive (ie. it deletes content from your
 org files permanently) 

Yes, it is destructive. I use it for todo items like buying groceries
for which there is no need to archive.



Re: [O] Bulk cut in agenda view

2011-07-19 Thread Bernt Hansen
Julien Cubizolles j.cubizol...@free.fr writes:

 Bernt Hansen be...@norang.ca writes:

 Hi Julien,

 Could you describe your use-case for this bulk cut function?

 Is this bulk cut function destructive (ie. it deletes content from your
 org files permanently) 

 Yes, it is destructive. I use it for todo items like buying groceries
 for which there is no need to archive.

Thanks for the clarification.

Regards,
-- 
Bernt



Re: [O] Bulk cut in agenda view

2011-07-18 Thread Bernt Hansen
Julien Cubizolles j.cubizol...@free.fr writes:

 I often need to purge DONE items from my org files. I have set up a
 special agenda view for checking those items and cutting some subtrees
 from it using bulk commands. I'm using a function adapted from the
 example in the manual (I've no idea if it's the best way to do it
 however) : 

Hi Julien,

Could you describe your use-case for this bulk cut function?

Is this bulk cut function destructive (ie. it deletes content from your
org files permanently) - wouldn't archiving (to another file) give you
the same end result for your org file but also allow searching for the
old content alter in case you archive (cut) too early or find you need
to dig into some old history for a project.

Regards,
-- 
Bernt



Re: [O] Bulk cut in agenda view

2011-07-14 Thread Julien Cubizolles
Bastien b...@altern.org writes:

 Hi Bastien

 I've applied the patch I proposed.  Please report any problem 
 about it.

You beat me to it, I hadn't gotten the chance to give it a try. I just
did and it just works. Thanks.

Julien.



Re: [O] Bulk cut in agenda view

2011-07-14 Thread Bastien
Julien Cubizolles j.cubizol...@free.fr writes:

 Bastien b...@altern.org writes:

 Hi Bastien

 I've applied the patch I proposed.  Please report any problem 
 about it.

 You beat me to it, I hadn't gotten the chance to give it a try. I just
 did and it just works. Thanks.

Thanks for confirming it works!

-- 
 Bastien



Re: [O] Bulk cut in agenda view

2011-07-12 Thread Bastien
Hi Julien,

I've applied the patch I proposed.  Please report any problem 
about it.

Thanks,

-- 
 Bastien



Re: [O] Bulk cut in agenda view

2011-07-11 Thread Bastien
Hi Julien,

Julien Cubizolles j.cubizol...@free.fr writes:

 I often need to purge DONE items from my org files. I have set up a
 special agenda view for checking those items and cutting some subtrees
 from it using bulk commands. I'm using a function adapted from the
 example in the manual (I've no idea if it's the best way to do it
 however) : 

 ,
 | (defun bulk-cut ()
 |   (interactive P)
 |   (let* ((marker (or (org-get-at-bol 'org-hd-marker)
 |  (org-agenda-error)))
 |  (buffer (marker-buffer marker)))
 | (with-current-buffer buffer
 |   (save-excursion
 | (save-restriction
 |   (widen)
 |   (goto-char marker)
 |   (org-back-to-heading t)
 |   (org-cut-subtree))
 `

 Typing B f bulk-cut RET removes the selected items but it's a lot of
 typing for a very useful action in my opinion.

 Could it be added to the list of default bulk actions, with a X key
 for example ?

Please test this patch and try to set `org-agenda-bulk-custom-functions'
(see the docstring).  

Thanks for bringing this up!

From 0c90c476015f4b9e20199df30652bb341fd0d811 Mon Sep 17 00:00:00 2001
From: Bastien Guerry b...@altern.org
Date: Mon, 11 Jul 2011 21:48:44 +0200
Subject: [PATCH] org-agenda.el: New variable for custom bulk action
 functions.

* org-agenda.el (org-agenda-bulk-custom-functions): New
variable for custom bulk action functions.
(org-agenda-bulk-action): Use it.

Thanks to Julien Cubizolles for triggering this idea.
---
 lisp/org-agenda.el |   25 -
 1 files changed, 24 insertions(+), 1 deletions(-)

diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el
index 37f8e84..4209b45 100644
--- a/lisp/org-agenda.el
+++ b/lisp/org-agenda.el
@@ -1695,6 +1695,19 @@ the lower-case version of all tags.
   :group 'org-agenda
   :type 'function)
 
+(defcustom org-agenda-bulk-custom-functions nil
+  Alist of characters and custom functions for bulk action.
+For example, this value makes those two functions available:
+
+  '((?R set-category)
+(?C bulk-cut))
+
+With selected entries in an agenda buffer, `B R' will execute
+set-category on the selected entries.  Note that functions in
+this alist don't need to be quoted.
+  :type 'alist
+  :group 'org-agenda)
+
 (eval-when-compile
   (require 'cl))
 (require 'org)
@@ -8149,7 +8162,13 @@ The prefix arg is passed through to the command if possible.
org-agenda-bulk-marked-entries)
 
   ;; Prompt for the bulk command
-  (message Bulk: [r]efile [$]arch [A]rch-sib [t]odo [+/-]tag [s]chd [S]catter [d]eadline [f]unction)
+  (message (concat Bulk: [r]efile [$]arch [A]rch-sib [t]odo
+		[+/-]tag [s]chd [S]catter [d]eadline [f]unction
+		   (when org-agenda-bulk-custom-functions
+		 (concat  Custom: [
+			 (mapconcat (lambda(f) (char-to-string (car f)))
+	org-agenda-bulk-custom-functions )
+			 ]
   (let* ((action (read-char-exclusive))
 	 (org-log-refile (if org-log-refile 'time nil))
 	 (entries (reverse org-agenda-bulk-marked-entries))
@@ -8243,6 +8262,10 @@ The prefix arg is passed through to the command if possible.
 			 (org-agenda-schedule nil time))
 		 (error nil)))
 
+ ((assoc action org-agenda-bulk-custom-functions)
+  (setq cmd (list (cadr (assoc action org-agenda-bulk-custom-functions)))
+	redo-at-end t))
+
  ((equal action ?f)
   (setq cmd (list (intern
 		   (org-icompleting-read Function: 
-- 
1.7.5.2


-- 
 Bastien


[O] Bulk cut in agenda view

2011-07-10 Thread Julien Cubizolles

I often need to purge DONE items from my org files. I have set up a
special agenda view for checking those items and cutting some subtrees
from it using bulk commands. I'm using a function adapted from the
example in the manual (I've no idea if it's the best way to do it
however) : 

,
| (defun bulk-cut ()
|   (interactive P)
|   (let* ((marker (or (org-get-at-bol 'org-hd-marker)
|(org-agenda-error)))
|(buffer (marker-buffer marker)))
| (with-current-buffer buffer
|   (save-excursion
|   (save-restriction
| (widen)
| (goto-char marker)
| (org-back-to-heading t)
| (org-cut-subtree))
`

Typing B f bulk-cut RET removes the selected items but it's a lot of
typing for a very useful action in my opinion.

Could it be added to the list of default bulk actions, with a X key
for example ?