ox-taskjuggler: Use task_id property when specified

* contrib/lisp/ox-taskjuggler.el (org-taskjuggler--build-unique-id):
  Use specified id (TASK_ID property) when possible.
This commit is contained in:
Nicolas Goaziou 2013-04-01 16:08:37 +02:00
parent a82b06ae4b
commit 989fae0c79
1 changed files with 13 additions and 10 deletions

View File

@ -411,6 +411,9 @@ resource. Its id is derived from its name and made unique
against UNIQUE-IDS. If the (downcased) first token of the against UNIQUE-IDS. If the (downcased) first token of the
headline is not unique try to add more (downcased) tokens of the headline is not unique try to add more (downcased) tokens of the
headline or finally add more underscore characters (\"_\")." headline or finally add more underscore characters (\"_\")."
(let ((id (org-string-nw-p (org-element-property :TASK_ID item))))
;; If an id is specified, use it, as long as it's unique.
(if (and id (not (member id unique-ids))) id
(let* ((parts (org-split-string (org-element-property :raw-value item))) (let* ((parts (org-split-string (org-element-property :raw-value item)))
(id (org-taskjuggler--clean-id (downcase (pop parts))))) (id (org-taskjuggler--clean-id (downcase (pop parts)))))
;; Try to add more parts of the headline to make it unique. ;; Try to add more parts of the headline to make it unique.
@ -420,7 +423,7 @@ headline or finally add more underscore characters (\"_\")."
;; If it's still not unique, add "_". ;; If it's still not unique, add "_".
(while (member id unique-ids) (while (member id unique-ids)
(setq id (concat id "_"))) (setq id (concat id "_")))
id)) id))))
(defun org-taskjuggler--clean-id (id) (defun org-taskjuggler--clean-id (id)
"Clean and return ID to make it acceptable for TaskJuggler. "Clean and return ID to make it acceptable for TaskJuggler.