Re: [O] [PATCH 7/8] ox-taskjuggler.el: allow 'priority' to be a directly-specified integer
Hi Kosyrev, 2015ko azaroak 10an, Kosyrev Serge-ek idatzi zuen: > Perhaps I was unclear in this message -- it's not the Org's priority > mechanism that is broken, it's the way ox-taskjuggler uses it that is. > > Org specifies priorities via a list of enums, whereas TJ expects an > integer in the range 0-1000. > > The quoted little piece of math in ox-taskjuggler tried to provide a > mapping, but failed and I couldn't figure out how to make it work -- > mainly because I couldn't understand how it was /supposed/ to work. Org priorities are expressed as single characters (conventionally uppercase Latin letters). These map to ASCII/Unicode code points (i.e. integers). The code interpolates these values linearly between 0 and 1000. By default org has three priorities A, B, and C; these map to 1000, 500, and 0 respectively. Five priorities A through E would map to 1000, 750, 500, 250, and 0. Etc. The letter/integer substitution is a bit opaque. So is the fact that org-lowest-priority (by default the ASCII codepoint for ‘C’ = 67) is a larger integer than org-highest-priority (ASCII ‘A’ = 65), despite what the names suggest. Does that help any? -- Aaron Ecay
Re: [O] [PATCH 7/8] ox-taskjuggler.el: allow 'priority' to be a directly-specified integer
Aaron Ecay writes: > 2015ko azaroak 8an, Kosyrev Serge-ek idatzi zuen: >> >> * ox-taskjuggler.el (org-taskjuggler--build-task): fix priority >> specification >> by allowing it to be directly passed down, in case it parses as an integer. >> --- >> contrib/lisp/ox-taskjuggler.el | 12 +--- >> 1 file changed, 9 insertions(+), 3 deletions(-) >> >> diff --git a/contrib/lisp/ox-taskjuggler.el b/contrib/lisp/ox-taskjuggler.el >> index 44ffeb6..d49db62 100644 >> --- a/contrib/lisp/ox-taskjuggler.el >> +++ b/contrib/lisp/ox-taskjuggler.el >> @@ -875,10 +875,16 @@ a unique id will be associated to it." >> (org-taskjuggler-get-end task)) >>(org-element-property :PERIOD task) >> (priority >> - (let ((pri (org-element-property :priority task))) >> + (let ((pri (org-element-property :PRIORITY task))) >> (and pri >> - (max 1 (/ (* 1000 (- org-lowest-priority pri)) >> - (- org-lowest-priority >> org-highest-priority))) >> +;; The exported task priority can be either specified >> +;; via the Org priority mechahism (which is currently >> broken), > > Can you say more about what breakage you mean? Is it something that can > be easily fixed? Perhaps I was unclear in this message -- it's not the Org's priority mechanism that is broken, it's the way ox-taskjuggler uses it that is. Org specifies priorities via a list of enums, whereas TJ expects an integer in the range 0-1000. The quoted little piece of math in ox-taskjuggler tried to provide a mapping, but failed and I couldn't figure out how to make it work -- mainly because I couldn't understand how it was /supposed/ to work. Hence I made a shortcut. -- с уважениeм / respectfully, Косырев Сергей
Re: [O] [PATCH 7/8] ox-taskjuggler.el: allow 'priority' to be a directly-specified integer
Hi Kosyrev, 2015ko azaroak 8an, Kosyrev Serge-ek idatzi zuen: > > * ox-taskjuggler.el (org-taskjuggler--build-task): fix priority specification > by allowing it to be directly passed down, in case it parses as an integer. > --- > contrib/lisp/ox-taskjuggler.el | 12 +--- > 1 file changed, 9 insertions(+), 3 deletions(-) > > diff --git a/contrib/lisp/ox-taskjuggler.el b/contrib/lisp/ox-taskjuggler.el > index 44ffeb6..d49db62 100644 > --- a/contrib/lisp/ox-taskjuggler.el > +++ b/contrib/lisp/ox-taskjuggler.el > @@ -875,10 +875,16 @@ a unique id will be associated to it." > (org-taskjuggler-get-end task)) >(org-element-property :PERIOD task) > (priority > - (let ((pri (org-element-property :priority task))) > + (let ((pri (org-element-property :PRIORITY task))) > (and pri > - (max 1 (/ (* 1000 (- org-lowest-priority pri)) > - (- org-lowest-priority org-highest-priority))) > +;; The exported task priority can be either specified > +;; via the Org priority mechahism (which is currently > broken), Can you say more about what breakage you mean? Is it something that can be easily fixed? Thanks, -- Aaron Ecay
[O] [PATCH 7/8] ox-taskjuggler.el: allow 'priority' to be a directly-specified integer
* ox-taskjuggler.el (org-taskjuggler--build-task): fix priority specification by allowing it to be directly passed down, in case it parses as an integer. --- contrib/lisp/ox-taskjuggler.el | 12 +--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/contrib/lisp/ox-taskjuggler.el b/contrib/lisp/ox-taskjuggler.el index 44ffeb6..d49db62 100644 --- a/contrib/lisp/ox-taskjuggler.el +++ b/contrib/lisp/ox-taskjuggler.el @@ -875,10 +875,16 @@ a unique id will be associated to it." (org-taskjuggler-get-end task)) (org-element-property :PERIOD task) (priority - (let ((pri (org-element-property :priority task))) + (let ((pri (org-element-property :PRIORITY task))) (and pri - (max 1 (/ (* 1000 (- org-lowest-priority pri)) - (- org-lowest-priority org-highest-priority))) +;; The exported task priority can be either specified +;; via the Org priority mechahism (which is currently broken), +;; or it can be specified directly -- by providing it as an integer. +(let ((integer-pri (ignore-errors (parse-integer pri + (or integer-pri + (max 1 + (/ (* 1000 (- org-lowest-priority pri)) + (- org-lowest-priority org-highest-priority) (concat ;; Opening task. (format "task %s \"%s\" {\n" -- 2.5.0
[O] [PATCH 7/8] ox-taskjuggler.el: allow 'priority' to be a directly-specified integer
* ox-taskjuggler.el (org-taskjuggler--build-task): fix priority specification by allowing it to be directly passed down, in case it parses as an integer. --- contrib/lisp/ox-taskjuggler.el | 12 +--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/contrib/lisp/ox-taskjuggler.el b/contrib/lisp/ox-taskjuggler.el index 44ffeb6..d49db62 100644 --- a/contrib/lisp/ox-taskjuggler.el +++ b/contrib/lisp/ox-taskjuggler.el @@ -875,10 +875,16 @@ a unique id will be associated to it." (org-taskjuggler-get-end task)) (org-element-property :PERIOD task) (priority - (let ((pri (org-element-property :priority task))) + (let ((pri (org-element-property :PRIORITY task))) (and pri - (max 1 (/ (* 1000 (- org-lowest-priority pri)) - (- org-lowest-priority org-highest-priority))) +;; The exported task priority can be either specified +;; via the Org priority mechahism (which is currently broken), +;; or it can be specified directly -- by providing it as an integer. +(let ((integer-pri (ignore-errors (parse-integer pri + (or integer-pri + (max 1 + (/ (* 1000 (- org-lowest-priority pri)) + (- org-lowest-priority org-highest-priority) (concat ;; Opening task. (format "task %s \"%s\" {\n" -- 2.5.0