emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Carsten Dominik <carsten.dominik@gmail.com>
To: James TD Smith <ahktenzero@mohorovi.cc>
Cc: emacs-orgmode@gnu.org
Subject: Re: [misc-new-features 2/5] Bugfixes, documentation and custom options for org-checklist.
Date: Mon, 3 Aug 2009 16:47:55 +0200	[thread overview]
Message-ID: <1EB534FF-24BA-47F6-A6E7-F9D0DB06FDFB@gmail.com> (raw)
In-Reply-To: <1247473682-23338-3-git-send-email-ahktenzero@mohorovi.cc>

Hi James,

I have applied this patch, with one modification:

I added a 'no-erro argument to the (load "a2ps-print") form,
to make sure that people who have not installed a2ps-print.el can
still use the other functionality in your package.  Please let me
know if this was not the right thing to do.

- Carsten

On Jul 13, 2009, at 10:27 AM, James TD Smith wrote:

> * contrib/lisp/org-checklist.el
>  - Fix some problems with the print/export feature in org-checklist.
>  - Add custom options for this module
>  - Fix some interaction with a2ps
>  - Only reset checkboxes if TODO state is done.
>
> * doc/org.texi
>  - Add documentation for org-checklist
>
> * lisp/org.el
>  - Add org-checklist to org-modules
> ---
> contrib/ChangeLog             |   16 ++++++++++
> contrib/lisp/org-checklist.el |   67 ++++++++++++++++++++++++++++++ 
> +---------
> lisp/org.el                   |    1 +
> 3 files changed, 69 insertions(+), 15 deletions(-)
>
> diff --git a/contrib/ChangeLog b/contrib/ChangeLog
> index 7e62df0..6a5c2a2 100644
> --- a/contrib/ChangeLog
> +++ b/contrib/ChangeLog
> @@ -1,3 +1,19 @@
> +2009-07-12  James TD Smith  <ahktenzero@mohorovi.cc>
> +
> +	* lisp/org-checklist.el (org-checklist): Add a custom group for
> +	org-checklist. The options are all for the unchecked items export
> +	function.
> +	(org-checklist-export-time-format): Allow customising the
> +	timestamp appended to the saved unchecked items list
> +	(org-checklist-export-function): Allow customising the output
> +	format for the unchecked items list.
> +	(org-checklist-export-params): Options for the exporter.
> +	(org-checklist-a2ps-params): Printing options.
> +	(org-make-checklist-export): Use values from custom vars. Printing
> +	is now controlled by the PRINT_EXPORT property in the entry, and
> +	the user is only asked if it is missing. Pass the switches to
> +	a2ps-buffer properly.
> +
> 2009-06-20  Carsten Dominik  <carsten.dominik@gmail.com>
>
> 	* README: List new file org-export-generic.el
> diff --git a/contrib/lisp/org-checklist.el b/contrib/lisp/org- 
> checklist.el
> index 26d228f..4ebf91b 100644
> --- a/contrib/lisp/org-checklist.el
> +++ b/contrib/lisp/org-checklist.el
> @@ -42,11 +42,37 @@
> ;;
> ;;; Code:
> (require 'org)
> +(load "a2ps-print")
>
> -(defvar export-time-format "%Y%m%d%H%M"
> -  "format of timestamp appended to export file")
> -(defvar export-function 'org-export-as-ascii
> -  "function used to prepare the export file for printing")
> +(defgroup org-checklist nil
> +  "Extended checklist handling for org"
> +  :tag "Org-checklist"
> +  :group 'org)
> +
> +(defcustom org-checklist-export-time-format "%Y%m%d%H%M"
> +  "The format of timestamp appended to LIST_EXPORT_BASENAME to
> +  make the name of the export file."
> +  :link '(function-link format-time-string)
> +  :group 'org-checklist
> +  :type 'string)
> +
> +(defcustom org-checklist-export-function 'org-export-as-ascii
> +  "function used to prepare the export file for printing"
> +  :group 'org-checklist
> +  :type '(radio (function-item :tag "ascii text" org-export-as-ascii)
> +		(function-item :tag "HTML"  org-export-as-html)
> +		(function-item :tag "LaTeX" :value org-export-as-latex)
> +		(function-item :tag "XOXO" :value org-export-as-xoxo)))
> +
> +(defcustom org-checklist-export-params nil
> +  "options for the export function file for printing"
> +  :group 'org-checklist
> +  :type '(repeat string))
> +
> +(defcustom org-checklist-a2ps-params nil
> +  "options for a2ps for printing"
> +  :group 'org-checklist
> +  :type '(repeat string))
>
> (defun org-reset-checkbox-state-maybe ()
>   "Reset all checkboxes in an entry if the `RESET_CHECK_BOXES'  
> property is set"
> @@ -54,23 +80,30 @@
>   (if (org-entry-get (point) "RESET_CHECK_BOXES")
>       (org-reset-checkbox-state-subtree)))
>
> +
> (defun org-make-checklist-export ()
>   "Produce a checklist containing all unchecked items from a list
> of checkbox items"
>   (interactive "*")
>   (if (org-entry-get (point) "LIST_EXPORT_BASENAME")
> -      (let* ((export-file (concat (org-entry-get (point)  
> "LIST_EXPORT_BASENAME")
> -				  "-" (format-time-string export-time-format)
> +      (let* ((export-file (concat (org-entry-get (point)  
> "LIST_EXPORT_BASENAME" nil)
> +				  "-" (format-time-string
> +				       org-checklist-export-time-format)
> 				  ".org"))
> +	     (print (case (org-entry-get (point) "PRINT_EXPORT" nil)
> +		      (("" "nil" nil) nil)
> +		      (t t)
> +		      (nil (y-or-n-p "Print list? "))))
> 	     exported-lines
> -	     title)
> +	     title "Checklist export")
> 	(save-restriction
> 	  (save-excursion
> 	    (org-narrow-to-subtree)
> +	    (org-update-checkbox-count-maybe)
> 	    (org-show-subtree)
> 	    (goto-char (point-min))
> -	    (if (looking-at org-complex-heading-regexp)
> -		(setq title (match-string 4)))
> +	    (when (looking-at org-complex-heading-regexp)
> +	      (setq title (match-string 4)))
> 	    (goto-char (point-min))
> 	    (let ((end (point-max)))
> 	      (while (< (point) end)
> @@ -85,14 +118,18 @@ of checkbox items"
> 	    (dolist (entry exported-lines) (insert entry))
> 	    (org-update-checkbox-count-maybe)
> 	    (write-file export-file)
> -	    (if (y-or-n-p "Print list? ")
> -		((funcall export-function)
> -		 (a2ps-buffer))))))))
> +	    (if (print)
> +		(progn (funcall org-checklist-export-function
> +				org-checklist-export-params)
> +		       (let* ((current-a2ps-switches a2ps-switches)
> +			      (a2ps-switches (append current-a2ps-switches
> +						     org-checklist-a2ps-params)))
> +			 (a2ps-buffer)))))))))
>
> (defun org-checklist ()
> -  (if (member state org-done-keywords)
> -      (org-make-checklist-export))
> -  (org-reset-checkbox-state-maybe))
> +  (when (member state org-done-keywords)
> +    (org-make-checklist-export)
> +    (org-reset-checkbox-state-maybe)))
>
> (add-hook 'org-after-todo-state-change-hook 'org-checklist)
>
> diff --git a/lisp/org.el b/lisp/org.el
> index 8843486..d08155a 100644
> --- a/lisp/org.el
> +++ b/lisp/org.el
> @@ -184,6 +184,7 @@ to add the symbol `xyz', and the package must  
> have a call to
> 	(const :tag "C  annotation-helper: Call Remember directly from  
> Browser (OBSOLETE, use org-protocol)" org-annotation-helper)
> 	(const :tag "C  bookmark:          Org links to bookmarks" org- 
> bookmark)
> 	(const :tag "C  browser-url:       Store link, directly from  
> Browser (OBSOLETE, use org-protocol)" org-browser-url)
> +	(const :tag "C  checklist:         Extra functions for checklists  
> in repeated tasks" org-checklist)
> 	(const :tag "C  choose:            Use TODO keywords to mark  
> decisions states" org-choose)
> 	(const :tag "C  collector:         Collect properties into tables"  
> org-collector)
> 	(const :tag "C  depend:            TODO dependencies for Org-mode  
> (PARTIALLY OBSOLETE, see built-in dependency support))" org-depend)
> -- 
> 1.6.3.3
>
>
>
> _______________________________________________
> Emacs-orgmode mailing list
> Remember: use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode

  parent reply	other threads:[~2009-08-03 14:48 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-07-13  8:27 Working on org again James TD Smith
2009-07-13  8:27 ` [misc-new-features 1/5] Add two new special properties, SINCE and SINCE_IA James TD Smith
2009-07-13  8:27   ` [misc-new-features 2/5] Bugfixes, documentation and custom options for org-checklist James TD Smith
2009-07-13  8:28     ` [misc-new-features 3/5] Add an option to sort tags automatically James TD Smith
2009-07-13  8:28       ` [misc-new-features 4/5] Allow org-insert-link to check the X clipboard and the Emacs kill-ring for links, as well as the stored links. This makes getting URLs into org from a browser much easier, as you don't have to paste the URL into the minibuffer to insert a link James TD Smith
2009-07-13  8:28         ` [misc-new-features 5/5] Fix a problem I was having with plots using a script. Org-plot was deleting the data file before gnuplot read it in. I've moved the deletion of the temporary data file to an idle timer, which has fixed the problem James TD Smith
2009-07-13 11:56           ` Bernt Hansen
2009-07-14 11:57           ` Bastien
2009-07-17 17:03           ` Bastien
2009-07-13 11:55         ` [misc-new-features 4/5] Allow org-insert-link to check the X clipboard and the Emacs kill-ring for links, as well as the stored links. This makes getting URLs into org from a browser much easier, as you don't have to paste the URL into the minibuffer to insert a link Bernt Hansen
2009-07-13 12:13           ` [misc-new-features 4/5] extra long subject lines James TD Smith
2009-07-13 15:35             ` Bernt Hansen
2009-07-14 12:07         ` [misc-new-features 4/5] Allow org-insert-link to check the X clipboard and the Emacs kill-ring for links, as well as the stored links. This makes getting URLs into org from a browser much easier, as you don't have to paste the URL into the minibuffer to insert a link Bastien
2009-07-17 17:20         ` Bastien
2009-07-14 11:59       ` [misc-new-features 3/5] Add an option to sort tags automatically Bastien
2009-07-14 16:01         ` James TD Smith
2009-07-17 17:04           ` Bastien
2009-07-17 16:38       ` Bastien
2009-07-14 12:09     ` [misc-new-features 2/5] Bugfixes, documentation and custom options for org-checklist Bastien
2009-07-14  8:52       ` James TD Smith
2009-08-03 14:47     ` Carsten Dominik [this message]
2009-08-03 21:17       ` James TD Smith
2009-07-14 11:48   ` [misc-new-features 1/5] Add two new special properties, SINCE and SINCE_IA Bastien
2009-07-14 17:44     ` James TD Smith
2009-07-17 16:55   ` Bastien
2009-07-17 18:22     ` James TD Smith
2009-07-18  9:35       ` Bastien
2009-08-27 15:50         ` Manish
2009-08-28 17:59           ` James TD Smith

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1EB534FF-24BA-47F6-A6E7-F9D0DB06FDFB@gmail.com \
    --to=carsten.dominik@gmail.com \
    --cc=ahktenzero@mohorovi.cc \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).