Re: [O] [PATCH 7/8] ox-taskjuggler.el: allow 'priority' to be a directly-specified integer

2015-11-10 Thread Aaron Ecay
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

2015-11-10 Thread Kosyrev Serge
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

2015-11-09 Thread Aaron Ecay
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

2015-11-09 Thread Kosyrev Serge

* 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

2015-11-09 Thread Kosyrev Serge

* 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