2013-06-27 8 views
6

Sto cercando un modo per utilizzare le informazioni di rilevamento del tempo dai file dell'agenda in modalità org per creare un calendario. Il tempo trascorso in compiti diversi sarebbe indicato, raggruppato per tag e limitato a un determinato intervallo di tempo, un po 'come un blocco dinamico con tavola rotante, ma raggruppato per tag al posto di file/categoria/titolo.Orario raggruppato per tag

Per esempio, se il mio ordine del giorno conteneva i seguenti dati (possibilmente sparsi tra diversi file):

* TODO project 1 
** TODO task 1             :tag1: 
    :LOGBOOK: 
    CLOCK: [2013-06-27 Thu 18:00]--[2013-06-27 Thu 19:04] => 1:04 
    CLOCK: [2013-06-26 Wed 17:00]--[2013-06-26 Wed 17:32] => 0:32 
    :END: 
** TODO task 2             :tag2: 
    :LOGBOOK: 
    CLOCK: [2013-06-27 Thu 17:00]--[2013-06-27 Thu 18:00] => 1:00 
    CLOCK: [2013-06-27 Thu 15:00]--[2013-06-27 Thu 15:50] => 0:50 
    :END: 

* TODO project 2            :tag2: 
    :LOGBOOK: 
    CLOCK: [2013-06-27 Thu 19:04]--[2013-06-27 Thu 21:00] => 1:56 
    CLOCK: [2013-06-27 Thu 15:50]--[2013-06-27 Thu 17:00] => 1:10 
    :END: 

Vorrei ottenere questo tipo di risultati:

#+BEGIN: clocktable-by-tag :maxlevel 2 :tags ("p1" "p2") :tstart "2013-06-27" :tend "2013-06-28" 
| Tag | Headline  | Time |  | 
|------+-----------------+--------+------| 
| tag1 | *Tag time*  | *1:04* |  | 
|  | TODO project 1 | 1:04 |  | 
|  | \__ TODO task 1 |  | 1:04 | 
|------+-----------------+--------+------| 
| tag2 | *Tag time*  | *4:56* |  | 
|  | TODO project 1 | 1:50 |  | 
|  | \__ TODO task 2 |  | 1:50 | 
|  | TODO project 2 | 3:06 |  | 
#+END: 

C'è qualche standard di modo di farlo con org? In caso contrario, sto pensando di passare in rassegna i file e i tag dell'agenda, utilizzando org-get-table-data per raccogliere informazioni sulla sincronizzazione; ci sarebbe un altro modo più efficiente di fare le cose?

+0

Non so se c'è un modo per farlo, ma sarebbe interessato a scoprire, anche. –

risposta

9

ecco quello che sono venuto a: https://gist.github.com/ffevotte/5899058

Non è molto ottimizzato, ma sembra per ottenere il lavoro fatto e dovrebbe sostenere la maggior parte degli argomenti di blocco dinamico clocktable.

campione (anonimo) di uscita sul mio file agenda reale org:

#+BEGIN: clocktable-by-tag :tags ("p_f3c" "p_sc") :tstart "2013-01-01" :tend "2013-05-19" :maxlevel 2 
| Tag | Headline      | Time (h) |  |  | 
|  |        |  <r> |  |  | 
|-------+------------------------------+----------+-------+------| 
| p_f3c | *Tag time*     | *18.42* |  |  | 
|  | File *xxx.org*    | 18.42 |  |  | 
|  | . xxxxxxxxxxxxxxxxxxx  |   | 13.03 |  | 
|  | . \__ xxxxxxxxxxxxx   |   |  | 7.78 | 
|  | . \__ xxxxxxxxxxxxxxxxxxxxx |   |  | 3.98 | 
|  | . xxxxxxxxxxxxxxxxxx   |   | 5.38 |  | 
|  | . \__ xxxxxxxxxxxxxxx  |   |  | 5.38 | 
|-------+------------------------------+----------+-------+------| 
| p_sc | *Tag time*     | *18.90* |  |  | 
|  | File *yyyy.org*    |  4.42 |  |  | 
|  | . xxxxxxxxxxxxxxxxxxxxxx  |   | 2.83 |  | 
|  | . xxxxxxxxxxxxxxxxxx   |   | 1.58 |  | 
|  | . \__ xxxxxxxxxxxxxxxxxxxxxx |   |  | 1.58 | 
|  | File *todo.org*    | 14.48 |  |  | 
|  | . xxxxxxxxxxxxxxxx   |   | 14.48 |  | 
|  | . \__ xxxxxxxxxxx   |   |  | 2.00 | 
|  | . \__ xxxxxxxxxxxxx   |   |  | 8.48 | 
|  | . \__ xxxxx     |   |  | 4.00 | 
#+END: 
+0

è davvero fantastico! grazie! Mi piacerebbe riassumere solo i tag di input (piuttosto che tutti i tag in ogni voce) e cercherò di estendere ciò che hai prodotto (anche se non sono molto familiare con Lisp). – RubyTuesdayDONO

+0

Wow, questo funziona. Grazie mille per averlo fatto. –