emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Testers / Feedback wanted: Gantt charts via org-gantt.el
@ 2015-05-30 11:33 Bernhard Schmitz
  2015-05-31 13:13 ` Axel Kielhorn
                   ` (3 more replies)
  0 siblings, 4 replies; 16+ messages in thread
From: Bernhard Schmitz @ 2015-05-30 11:33 UTC (permalink / raw)
  To: emacs-orgmode

Hi,

my org-gantt.el is now in a usable state. It creates gantt charts via pgfgantt directly from headlines in org mode, using deadlines, schedules, effort estimates and (optionally) clocked time.
In contrast to ox-taskjuggler it does not require an external program, and in contrast to Eric Fraga's gantt chart creation it reads from the headlines instead of a specific table. Something like this has been discussed on this list, but I couldn't find that anyone has actually implemented it. 

For some examples, take a look at the charts in the manual:
https://github.com/HeyFlash/emacs-stuff/blob/master/experiments/org-gantt-manual.pdf
Source:
https://github.com/HeyFlash/emacs-stuff/blob/master/experiments/org-gantt-manual.org

As I think this might be useful for others I wanted to make it available. I would be happy about feedback. 

The file itself can be found here:
https://github.com/HeyFlash/emacs-stuff/blob/master/experiments/org-gantt.el

Regards,
Bernhard

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Testers / Feedback wanted: Gantt charts via org-gantt.el
  2015-05-30 11:33 Testers / Feedback wanted: Gantt charts via org-gantt.el Bernhard Schmitz
@ 2015-05-31 13:13 ` Axel Kielhorn
  2015-06-01 12:51   ` Bernhard Schmitz
  2015-06-01 11:16 ` Karl Voit
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 16+ messages in thread
From: Axel Kielhorn @ 2015-05-31 13:13 UTC (permalink / raw)
  To: Org-Mode Mailing List

[-- Attachment #1: Type: text/plain, Size: 2707 bytes --]


> Am 30.05.2015 um 13:33 schrieb Bernhard Schmitz <Bernhard.Schmitz@vis.uni-stuttgart.de>:
> 
> Hi,
> 
> my org-gantt.el is now in a usable state. It creates gantt charts via pgfgantt directly from headlines in org mode, using deadlines, schedules, effort estimates and (optionally) clocked time.

Sounds like a good idea.
I tried writing pgfgantt manually but once I finished updating the chart, it was already out of date.
Getting the information from org would be fine.

I tried org-gantt on a current project and ran into one problem:

I track progress with
* Task [%]
and
* Task [/]

Of course the % causes a problem when exporting to LaTeX.
I suggest to either ignore [%] and [/] or use them as an alternative to show how much is completed.
It is probably a better metric than hours worked.

pgfgantt doesn’t handle \ganttbar commands without start and end date.
Therefor I can’t export an incomplete chart.
You may want to set the entries with missing scheduling information to the first day of the chart.
(Maybe mark the task or label with a color to indicate that they are incomplete.)
(See below for some different ideas.)

A two month chart doesn’t fit into \textwidth.
I wrapped it into a sideways environment (provided by rotating.sty), maybe a sideways option?
For a project with 2000 person hours[1] I’ll probably need a separate export and print it on A0 paper[2].
Some kind of scaling would be fine (show weeks / month instead of days).

For a huge project it may be nice to limit the levels printed:
Just Module 1 - 8 for the Management and each Module with the submodules for the project leader.
Similar to maxlevel in the clocktable.

I’m not sure about inheritance:
If I have a deadline for a task, should the subtasks inherit that deadline unless an explicit deadline is given?
If I have a deadline for a task and efforts for all subtasks, should the task inherit that effort?

That way I can give a deadline to the task and estimate efforts to get an initial chart.
Using this chart I can divide the subtasks between workers, rearrange the deadlines for the subtasks and finally define a scheduled date for the main task.

This gives me another idea:
Filter / color by tag.
Print only tasks tagged :Axel: to show my workload, and print tasks tagged :Sam_One: to show tasks I have delegated.
Color tasks by tags to show who is assigned, white for unassigned tasks.

Axel

[1] A 2000 PH project is not my usual project size, a few hundred is more common.
[2] I have access to an A0 printer but I usually draw with felt markers on (literal) wallpaper.
    Much faster for an initial design and I can use „real“ cut and paste:-)



[-- Attachment #2: Gantt-ECM.org --]
[-- Type: application/octet-stream, Size: 3518 bytes --]

#+LANGUAGE: de-de
#+OPTIONS: toc:nil
#+OPTIONS: tags:nil
#+OPTIONS: todo:nil
#+LATEX_HEADER: \usepackage{pgfgantt}


* Module [75%]
DEADLINE: <2015-05-31 Sun>
:PROPERTIES:
:ID:       gantt
:END:
** DONE Modul 1
CLOSED: [2015-05-31 Sun 11:49]
** DONE Modul 2
CLOSED: [2015-05-31 Sun 11:49]
** DONE Modul 3
CLOSED: [2015-05-31 Sun 11:49]
** DONE Modul 4
CLOSED: [2015-05-31 Sun 11:49]
** DONE Modul 5
CLOSED: [2015-05-31 Sun 11:49]
** DONE Modul 6
CLOSED: [2015-05-31 Sun 11:50]
** STARTED Modul 7 [40%]                                              :Axel:
:LOGBOOK:  
- State "STARTED"    from ""           [2015-05-31 Sun 11:50]
:END:      
*** DONE Submodule 1
CLOSED: [2015-05-31 Sun 11:50]
:LOGBOOK:  
- State "DONE"       from ""           [2015-05-31 Sun 11:50]
:END:      
*** DONE Submodule 2
CLOSED: [2015-05-31 Sun 11:50]
:LOGBOOK:  
- State "DONE"       from ""           [2015-05-31 Sun 11:50]
:END:      
:PROPERTIES:
:Effort:   40:00
:END:
:PROPERTIES:
:Effort:   0:10
:END:
*** STARTED Submodule 3 [3/4]
:LOGBOOK:  
- State "STARTED"    from ""           [2015-05-31 Sun 11:50]
:END:      
:CLOCK:    
CLOCK: [2015-05-31 Sun 10:00]--[2015-05-31 Sun 14:18] =>  4:18
:END:      
:PROPERTIES:
:Effort:   80:00
:END:
- [X] Task 1
- [X] Task 2
- [X] Task 3
- [ ] Task 4
*** STARTED Submodule 4
:LOGBOOK:  
- State "STARTED"    from ""           [2015-05-31 Sun 11:50]
:END:      
:PROPERTIES:
:Effort:   8:00
:END:
*** TODO Submodule 5
:PROPERTIES:
:Effort:   8:00
:END:
** STARTED Modul 8                                                 :Sam_One:
:LOGBOOK:  
- State "STARTED"    from ""           [2015-05-31 Sun 11:50]
:END:      

* Zeitplan
#+BEGIN: org-gantt-chart :id "gantt"
\begin{ganttchart}[time slot format=isodate, vgrid={*1{black},*4{dashed},*2{black}}]{2015-05-31}{2015-05-31}
\gantttitlecalendar{year, month=name, day}\\
\ganttgroup[group left shift=1.5604166666666666, group right shift=-0.0]{Module [75%]}{}{2015-05-31}\\% -- 5d 17:00 -(0d 17:00)-  -- 2015-05-31,08:00
  \ganttbar[bar left shift=1.5604166666666666, bar right shift=0.5604166666666666]{Modul 1}{}{}\\% --  -- 
  \ganttbar[bar left shift=1.5604166666666666, bar right shift=0.5604166666666666]{Modul 2}{}{}\\% --  -- 
  \ganttbar[bar left shift=1.5604166666666666, bar right shift=0.5604166666666666]{Modul 3}{}{}\\% --  -- 
  \ganttbar[bar left shift=1.5604166666666666, bar right shift=0.5604166666666666]{Modul 4}{}{}\\% --  -- 
  \ganttbar[bar left shift=1.5604166666666666, bar right shift=0.5604166666666666]{Modul 5}{}{}\\% --  -- 
  \ganttbar[bar left shift=1.5604166666666666, bar right shift=0.5604166666666666]{Modul 6}{}{}\\% --  -- 
  \ganttgroup[group left shift=1.5604166666666666, group right shift=0.5604166666666666]{Modul 7 [40%]}{}{}\\% --  -(0d 12:29)-  -- 
    \ganttbar[bar left shift=1.5604166666666666, bar right shift=0.5604166666666666]{Submodule 1}{}{}\\% --  -- 
    \ganttbar[bar left shift=1.5604166666666666, bar right shift=0.5604166666666666]{Submodule 2}{}{}\\% -- 1d 17:00 -- 
    \ganttbar[bar left shift=1.5604166666666666, bar right shift=0.5604166666666666]{Submodule 3 [3/4]}{}{}\\% -- 3d 09:00 -(0d 09:00)-  -- 
    \ganttbar[bar left shift=1.5604166666666666, bar right shift=0.5604166666666666]{Submodule 4}{}{}\\% -- 0d 09:00 -- 
    \ganttbar[bar left shift=1.5604166666666666, bar right shift=0.5604166666666666]{Submodule 5}{}{}\\% -- 0d 09:00 -- 
  \ganttbar[bar left shift=1.5604166666666666, bar right shift=0.5604166666666666]{Modul 8}{}{}\\% --  -- 
\end{ganttchart}
#+END:

[-- Attachment #3: Type: text/plain, Size: 2 bytes --]




^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Testers / Feedback wanted: Gantt charts via org-gantt.el
  2015-05-30 11:33 Testers / Feedback wanted: Gantt charts via org-gantt.el Bernhard Schmitz
  2015-05-31 13:13 ` Axel Kielhorn
@ 2015-06-01 11:16 ` Karl Voit
  2015-06-02  8:15   ` Bernhard Schmitz
  2015-06-02  8:38 ` Eric S Fraga
  2015-08-05  0:00 ` Bastien Guerry
  3 siblings, 1 reply; 16+ messages in thread
From: Karl Voit @ 2015-06-01 11:16 UTC (permalink / raw)
  To: emacs-orgmode

* Bernhard Schmitz <Bernhard.Schmitz@vis.uni-stuttgart.de> wrote:
> Hi,

Hi!

> my org-gantt.el is now in a usable state. It creates gantt charts
> via pgfgantt directly from headlines in org mode, using deadlines,
> schedules, effort estimates and (optionally) clocked time.

I do like your approach.

Although I am not using GANTT charts at the moment, I'd considering
your tool if it provides me a decent visualization of my heading
state.

And accomplishing this, I personally would like to see that your
method takes org-depend into consideration. Namely the properties
BLOCKER and TRIGGER:(NEXT|TODO|STARTED). I plan my projects using
mostly BLOCKER and TRIGGER:NEXT to express dependencies.

I personally am using either SCHEDULED or DEADLINE (hardly) on
headings.

Just my 2 cents ...

-- 
mail|git|SVN|photos|postings|SMS|phonecalls|RSS|CSV|XML to Org-mode:
       > get Memacs from https://github.com/novoid/Memacs <

https://github.com/novoid/extract_pdf_annotations_to_orgmode + more on github

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Testers / Feedback wanted: Gantt charts via org-gantt.el
  2015-05-31 13:13 ` Axel Kielhorn
@ 2015-06-01 12:51   ` Bernhard Schmitz
  2015-06-01 15:26     ` Axel Kielhorn
  2015-06-01 18:38     ` Axel Kielhorn
  0 siblings, 2 replies; 16+ messages in thread
From: Bernhard Schmitz @ 2015-06-01 12:51 UTC (permalink / raw)
  To: Org-Mode Mailing List

Hi Axel,

thanks for your feedback

> I tried org-gantt on a current project and ran into one problem:
> 
> I track progress with
> * Task [%]
> and
> * Task [/]
> 
> Of course the % causes a problem when exporting to LaTeX.
> I suggest to either ignore [%] and [/] or use them as an alternative to show how
> much is completed.
> It is probably a better metric than hours worked.

I do not quite understand: Is this an org mode feature (I could not find any documentation - you can possibly tell I haven't been using or mode for too long), or is this just something that you do yourself?
While I agree that it would be a good idea to use those numbers, I'm a bit wary of implementing something that is not based on official org mode features.
As a preliminary measure, I now ignore % signs.

> pgfgantt doesn't handle \ganttbar commands without start and end date.
> Therefor I can't export an incomplete chart.
> You may want to set the entries with missing scheduling information to the first
> day of the chart.
> (Maybe mark the task or label with a color to indicate that they are incomplete.)
> (See below for some different ideas.)

I fixed this. You can now set :incomplete-date-headlines and :no-date-headlines to keep, inactive or ignore.
If inactive, the styles set via :inactive-bar-style and :inactive-group-style are used.
All options also have an org-gantt-default... defcustom, which can be set if you don't want to set it for each chart.
 
> A two month chart doesn't fit into \textwidth.
> I wrapped it into a sideways environment (provided by rotating.sty), maybe a
> sideways option?

Hmm, I don't see an advantage of having a sideways option vs. wrapping it manually, but perhaps I'm missing something?
I have added an option :lowlevel-scale (e.g. 0.5 or 0.75) that will scale the complete resulting chart.
You can of course also use the pgfgantt options (:options) x unit chart and y unit chart for more specific scaling.

> For a project with 2000 person hours[1] I'll probably need a separate export and
> print it on A0 paper[2].
> Some kind of scaling would be fine (show weeks / month instead of days).

You can already set :title-calendar to "year, month[=name]" and add "compress calendar" to the :options list to use months instead of days.
Note that you should set :weekend-style and :workday-style to the same thing, as org-gantt will otherwise mark some months as weekends.
Unfortunately, if you have sub-day effort estimates, this will currently not be displayed correctly, as the start and end shift is computed based on days. I should probably look into that.
Supporting weeks is difficult, as pgf-gantt does not natively support them for compression, only for titlecalendar. 

 
> For a huge project it may be nice to limit the levels printed:
> Just Module 1 - 8 for the Management and each Module with the submodules for
> the project leader.
> Similar to maxlevel in the clocktable.

I added an option :maxlevel (and org-gantt-default-maxlevel)

> I'm not sure about inheritance:
> If I have a deadline for a task, should the subtasks inherit that deadline unless an
> explicit deadline is given?
> If I have a deadline for a task and efforts for all subtasks, should the task inherit
> that effort?
> 
> That way I can give a deadline to the task and estimate efforts to get an initial
> chart.
> Using this chart I can divide the subtasks between workers, rearrange the
> deadlines for the subtasks and finally define a scheduled date for the main task.

This works for ordered subheadlines. Deadlines are propagated downwards, if the subheadlines are ordered.
If the subheadlines are not ordered, deadlines are only propagated upwards, as it is not clear which task(s) should inherit the deadline.
So you can set a deadline to the (last) subtask, and it will be propagated to its supertask.

> This gives me another idea:
> Filter / color by tag.
> Print only tasks tagged :Axel: to show my workload, and print tasks tagged
> :Sam_One: to show tasks I have delegated.
Isn't this already doable by using sparse trees? Or would this involve some unnecessary hassle? I'm not an experienced enough org user to determine that, but I don't want to replicate functionality that already exists.

> Color tasks by tags to show who is assigned, white for unassigned tasks.
 Noted for future support.

Regards,
Bernhard

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Testers / Feedback wanted: Gantt charts via org-gantt.el
  2015-06-01 12:51   ` Bernhard Schmitz
@ 2015-06-01 15:26     ` Axel Kielhorn
  2015-06-01 18:38     ` Axel Kielhorn
  1 sibling, 0 replies; 16+ messages in thread
From: Axel Kielhorn @ 2015-06-01 15:26 UTC (permalink / raw)
  To: Org-Mode Mailing List

Hi Bernhard,

Thanks for your quick response.

> I tried org-gantt on a current project and ran into one problem:
>> 
>> I track progress with
>> * Task [%]
>> and
>> * Task [/]
>> 
>> Of course the % causes a problem when exporting to LaTeX.
>> I suggest to either ignore [%] and [/] or use them as an alternative to show how
>> much is completed.
>> It is probably a better metric than hours worked.
> 
> I do not quite understand: Is this an org mode feature (I could not find any documentation - you can possibly tell I haven't been using or mode for too long), or is this just something that you do yourself?
> While I agree that it would be a good idea to use those numbers, I'm a bit wary of implementing something that is not based on official org mode features.
> As a preliminary measure, I now ignore % signs.

Section 5.5 „Breaking tasks down into subtasks“ of the org (8.2) manual.

It works with TODO / DONE and checkboxes in lists.

I’ll look into the remaining comments later.


Axel

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Testers / Feedback wanted: Gantt charts via org-gantt.el
  2015-06-01 12:51   ` Bernhard Schmitz
  2015-06-01 15:26     ` Axel Kielhorn
@ 2015-06-01 18:38     ` Axel Kielhorn
  2015-06-02  8:42       ` Bernhard Schmitz
  1 sibling, 1 reply; 16+ messages in thread
From: Axel Kielhorn @ 2015-06-01 18:38 UTC (permalink / raw)
  To: Org-Mode Mailing List

Hi Bernhard,

I pulled 

> I fixed this. You can now set :incomplete-date-headlines and :no-date-headlines to keep, inactive or ignore.
> If inactive, the styles set via :inactive-bar-style and :inactive-group-style are used.
> All options also have an org-gantt-default... defcustom, which can be set if you don't want to set it for each chart.
> 
>> A two month chart doesn't fit into \textwidth.
>> I wrapped it into a sideways environment (provided by rotating.sty), maybe a
>> sideways option?
> 
> Hmm, I don't see an advantage of having a sideways option vs. wrapping it manually, but perhaps I'm missing something?

No, just adding 

#+LATEX: \begin{sideways}
#+BEGIN: org-gantt-chart
#+END:
#+LATEX: \end{sideways}

to the documentation would be sufficient.

> I have added an option :lowlevel-scale (e.g. 0.5 or 0.75) that will scale the complete resulting chart.
> You can of course also use the pgfgantt options (:options) x unit chart and y unit chart for more specific scaling.

Lowlevel-scale doesn’t seem to have an effect, adjusting y units may prove more useful.

> Unfortunately, if you have sub-day effort estimates, this will currently not be displayed correctly, as the start and end shift is computed based on days. I should probably look into that.
> Supporting weeks is difficult, as pgf-gantt does not natively support them for compression, only for title calendar.

This is probably something that should be addressed in pgfgantt.
A flight to Alpha Centauri takes about 1600 days.[1]
If you assume 5 mm per day that would still need 8 m of wallpaper (and a larger office).
I probably wouldn’t care about sub-day efforts in this case.
Emptying the litter box will be a checkpoint item, not a scheduled task.

> I added an option :maxlevel (and org-gantt-default-maxlevel)

Great. 

>> I'm not sure about inheritance:
>> If I have a deadline for a task, should the subtasks inherit that deadline unless an
>> explicit deadline is given?
>> If I have a deadline for a task and efforts for all subtasks, should the task inherit
>> that effort?
>> 
>> That way I can give a deadline to the task and estimate efforts to get an initial
>> chart.
>> Using this chart I can divide the subtasks between workers, rearrange the
>> deadlines for the subtasks and finally define a scheduled date for the main task.
> 
> This works for ordered subheadlines. Deadlines are propagated downwards, if the subheadlines are ordered.
> If the subheadlines are not ordered, deadlines are only propagated upwards, as it is not clear which task(s) should inherit the deadline.
> So you can set a deadline to the (last) subtask, and it will be propagated to its super task.

The last (as in time, not position in file) deadline will be promoted to the super task, right?
That way I can keep an „Integration of Submodules“ task and deadline that.

>> This gives me another idea:
>> Filter / color by tag.
>> Print only tasks tagged :Axel: to show my workload, and print tasks tagged
>> :Sam_One: to show tasks I have delegated.
> Isn't this already doable by using sparse trees?

Can I build a gantt chart from a sparse tree?
The sparse tree shows me what is assigned to whom.
What I want to see is the effort and the time the effort is scheduled.

This is probably too much to ask since org is more personal manager and not a project planer.

> Or would this involve some unnecessary hassle? I'm not an experienced enough org user to determine that, but I don't want to replicate functionality that already exists.

I think these are different things. Not scheduling a person to do two things at the same time may improve efficiency.

Greetings Axel

[1] Not including the time needed to build the air^Wspace port.[2]
[2] Sorry, since you are in Stuttgart that should be: Not including the time to build the railway station to get to the air^Wspace port.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Testers / Feedback wanted: Gantt charts via org-gantt.el
  2015-06-01 11:16 ` Karl Voit
@ 2015-06-02  8:15   ` Bernhard Schmitz
  2015-06-03 15:13     ` Karl Voit
  0 siblings, 1 reply; 16+ messages in thread
From: Bernhard Schmitz @ 2015-06-02  8:15 UTC (permalink / raw)
  To: emacs-orgmode

Hi,

> Von: Karl Voit [mailto:devnull@Karl-Voit.at]
> 
> And accomplishing this, I personally would like to see that your
> method takes org-depend into consideration. Namely the properties
> BLOCKER and TRIGGER:(NEXT|TODO|STARTED). I plan my projects using
> mostly BLOCKER and TRIGGER:NEXT to express dependencies.

This should be possible (might take a while, and no promises), at least for those simple dependencies. More complicated things expressed via org-depend would require some serious effort.
I don't understand the TRIGGER:(NEXT) syntax, though. According to the org-depend documentation TRIGGER: requires an id or a chain-siblings string.
So if you can describe a consistent way that org-gantt should handle org-depend, then I might implement it (again, no promises), but as I have never used org-depend I don't know if whatever I could come up with would make sense.

Regards,
Bernhard

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Testers / Feedback wanted: Gantt charts via org-gantt.el
  2015-05-30 11:33 Testers / Feedback wanted: Gantt charts via org-gantt.el Bernhard Schmitz
  2015-05-31 13:13 ` Axel Kielhorn
  2015-06-01 11:16 ` Karl Voit
@ 2015-06-02  8:38 ` Eric S Fraga
  2015-06-03 15:17   ` Karl Voit
  2015-08-05  0:00 ` Bastien Guerry
  3 siblings, 1 reply; 16+ messages in thread
From: Eric S Fraga @ 2015-06-02  8:38 UTC (permalink / raw)
  To: Bernhard Schmitz; +Cc: emacs-orgmode

On Saturday, 30 May 2015 at 11:33, Bernhard Schmitz wrote:
> Hi,
>
> my org-gantt.el is now in a usable state.

Thanks for this.  I've had a play with it.  I like it and it's quite
likely I'll be using it in anger soon so you'll probably hear from me
again!

The only comments I have at the moment is that it is missing support for
milestones and all of my GANTT charts have such and that I would like to
be able to link tasks across headlines (i.e. groups).  Can I suggest a
:milestone: tag or MILESTONE property for the former and a LINKED-TO or
similar for the latter?

Thanks again,
eric
-- 
: Eric S Fraga (0xFFFCF67D), Emacs 24.4.1, Org release_8.3beta-1195-g1a7364

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Testers / Feedback wanted: Gantt charts via org-gantt.el
  2015-06-01 18:38     ` Axel Kielhorn
@ 2015-06-02  8:42       ` Bernhard Schmitz
  0 siblings, 0 replies; 16+ messages in thread
From: Bernhard Schmitz @ 2015-06-02  8:42 UTC (permalink / raw)
  To: Org-Mode Mailing List

> 
> > I have added an option :lowlevel-scale (e.g. 0.5 or 0.75) that will scale the
> complete resulting chart.
> > You can of course also use the pgfgantt options (:options) x unit chart and y unit
> chart for more specific scaling.
> 
> Lowlevel-scale doesn’t seem to have an effect, adjusting y units may prove more
> useful.

Hmm, this seemed to work fine, but I now notice it does not really do what I intended.
I'll have to look at it again.

> > Unfortunately, if you have sub-day effort estimates, this will currently not be
> displayed correctly, as the start and end shift is computed based on days. I should
> probably look into that.
> > Supporting weeks is difficult, as pgf-gantt does not natively support them for
> compression, only for title calendar.
> 
> This is probably something that should be addressed in pgfgantt.
> A flight to Alpha Centauri takes about 1600 days.[1]
> If you assume 5 mm per day that would still need 8 m of wallpaper (and a larger
> office).
> I probably wouldn’t care about sub-day efforts in this case.
> Emptying the litter box will be a checkpoint item, not a scheduled task.

This was just a warning about the current state. Correctly computing the offset for compressed calendars (so that the offset displays the day) should not be difficult.

> 
> >> I'm not sure about inheritance:
> >> If I have a deadline for a task, should the subtasks inherit that deadline unless
> an
> >> explicit deadline is given?
> >> If I have a deadline for a task and efforts for all subtasks, should the task
> inherit
> >> that effort?
> >>
> >> That way I can give a deadline to the task and estimate efforts to get an initial
> >> chart.
> >> Using this chart I can divide the subtasks between workers, rearrange the
> >> deadlines for the subtasks and finally define a scheduled date for the main
> task.
> >
> > This works for ordered subheadlines. Deadlines are propagated downwards, if
> the subheadlines are ordered.
> > If the subheadlines are not ordered, deadlines are only propagated upwards, as
> it is not clear which task(s) should inherit the deadline.
> > So you can set a deadline to the (last) subtask, and it will be propagated to its
> super task.
> 
> The last (as in time, not position in file) deadline will be promoted to the super
> task, right?
> That way I can keep an „Integration of Submodules“ task and deadline that.

Yes, the last deadline (and the first schedule) of any task is promoted to the super task, if the supertask does not have a deadline/schedule itself. But I don't understand why you would need an Integration task with a deadline, you can just deadline the supertask itself.

> >> This gives me another idea:
> >> Filter / color by tag.
> >> Print only tasks tagged :Axel: to show my workload, and print tasks tagged
> >> :Sam_One: to show tasks I have delegated.
> > Isn't this already doable by using sparse trees?
> 
> Can I build a gantt chart from a sparse tree?
> The sparse tree shows me what is assigned to whom.
> What I want to see is the effort and the time the effort is scheduled.
> 
> This is probably too much to ask since org is more personal manager and not a
> project planer.

The comment about sparse trees was not quite well thought out from my side. I will have to look at it again.
There are now some options for tags (:use-tags :ignore-tags :tags-bar-style and :tags-group-style) that does all of this, but tags are not yet correctly promoted to subheadlines, so it does not really work correctly, atm.
You can use :tags-bar-style and :tags-group-style, which is an alist of ("tagname" . "style") conses, that styles headlines with tags for groups and bars. The current ganttexperiment.org has an example.
I will probably not be able to work on this any further until the end of the week.

Regards,
Bernhard

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Testers / Feedback wanted: Gantt charts via org-gantt.el
  2015-06-02  8:15   ` Bernhard Schmitz
@ 2015-06-03 15:13     ` Karl Voit
  0 siblings, 0 replies; 16+ messages in thread
From: Karl Voit @ 2015-06-03 15:13 UTC (permalink / raw)
  To: emacs-orgmode

Hi!

* Bernhard Schmitz <Bernhard.Schmitz@vis.uni-stuttgart.de> wrote:
>> Von: Karl Voit [mailto:devnull@Karl-Voit.at]
>> 
>> And accomplishing this, I personally would like to see that your
>> method takes org-depend into consideration. Namely the properties
>> BLOCKER and TRIGGER:(NEXT|TODO|STARTED). I plan my projects using
>> mostly BLOCKER and TRIGGER:NEXT to express dependencies.

> This should be possible (might take a while, and no promises), at
> least for those simple dependencies. More complicated things
> expressed via org-depend would require some serious effort.

Understood.

> I don't understand the TRIGGER:(NEXT) syntax, though. According to
> the org-depend documentation TRIGGER: requires an id or a
> chain-siblings string.

Oh, I was too lazy to write a working example.

,----[ working example ]
| ** DONE My pretty task
| CLOSED: [2015-04-30 Thu 07:50] SCHEDULED: <2015-04-30 Thu>
| :PROPERTIES:
| :CREATED:  [2015-04-17 Fri 15:36]
| :ID:       2015-04-17-Dach-zu
| :TRIGGER:  foo1(NEXT) bar1(WAITING)
| :BLOCKER:  previousXY prevZ
| :END:
`----

So when this task got marked as DONE, the headings with the ID
propertes "previousXY" and "prevZ" must not have been in an open
state. Further more, the headings with ID "foo1" got the new states
NEXT and "bar1" WAITING accordingly.

That's basically it.

> So if you can describe a consistent way that org-gantt should
> handle org-depend, then I might implement it (again, no promises),

I hope I could describe the dependency definitions properly now.

> but as I have never used org-depend I don't know if whatever I
> could come up with would make sense.

:-)

-- 
mail|git|SVN|photos|postings|SMS|phonecalls|RSS|CSV|XML to Org-mode:
       > get Memacs from https://github.com/novoid/Memacs <

https://github.com/novoid/extract_pdf_annotations_to_orgmode + more on github

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Testers / Feedback wanted: Gantt charts via org-gantt.el
  2015-06-02  8:38 ` Eric S Fraga
@ 2015-06-03 15:17   ` Karl Voit
  2015-06-05  8:20     ` Bernhard Schmitz
  2015-06-20 12:46     ` Bernhard Schmitz
  0 siblings, 2 replies; 16+ messages in thread
From: Karl Voit @ 2015-06-03 15:17 UTC (permalink / raw)
  To: emacs-orgmode

* Eric S Fraga <e.fraga@ucl.ac.uk> wrote:
>
> The only comments I have at the moment is that it is missing support for
> milestones and all of my GANTT charts have such and that I would like to
> be able to link tasks across headlines (i.e. groups).  Can I suggest a
>:milestone: tag or MILESTONE property for the former and a LINKED-TO or
> similar for the latter?

How about a heading task who got only DEADLINE (no SCHEDULED) and
does not span more than 1 day? This seems to be a mile-stone to me.

(Or *additionally* this tag?)

-- 
mail|git|SVN|photos|postings|SMS|phonecalls|RSS|CSV|XML to Org-mode:
       > get Memacs from https://github.com/novoid/Memacs <

https://github.com/novoid/extract_pdf_annotations_to_orgmode + more on github

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Testers / Feedback wanted: Gantt charts via org-gantt.el
  2015-06-03 15:17   ` Karl Voit
@ 2015-06-05  8:20     ` Bernhard Schmitz
  2015-06-20 12:46     ` Bernhard Schmitz
  1 sibling, 0 replies; 16+ messages in thread
From: Bernhard Schmitz @ 2015-06-05  8:20 UTC (permalink / raw)
  To: emacs-orgmode

OK, small update:

- Milestones are implemented. All headlines with tags that are in :milestone-tag (org-gantt-default-milestone-tag, resp.; :milestone: by default) are marked as Milestones.

- tag highlighting is working correctly. The alists :tags-bar-style and :tags-group-style ("tag" . "style") set the styles, :tag-style-effect sets whether this style is applied only to the headline with that style, or to all its subheadlines ('subheadlines). (All options are available as org-gantt-default... as well).

- tag inclusion/exclusion is working correctly. If :use-tags is non-nil, only headlines with at least one of the given tags (and its subheadlines) will be used. If :ignore-tags is non-nil, headlines with one of the given tags (and its subheadlines) will be ignored.

- I have added an option :tikz-options . If this is non-nill, the entire chart will be placed inside a tikzpicture environment with the given parameters. E.g. scaling is possible with :tikz-options "scale=0.5, every node/.style={scale=0.5}". This seems to work fine, so the lowlevel-scale option has been removed.

Regards,
Bernhard 

> -----Ursprüngliche Nachricht-----
> Von: emacs-orgmode-bounces+bernhard.schmitz=vis.uni-stuttgart.de@gnu.org
> [mailto:emacs-orgmode-bounces+bernhard.schmitz=vis.uni-
> stuttgart.de@gnu.org] Im Auftrag von Karl Voit
> Gesendet: Mittwoch, 3. Juni 2015 17:17
> An: emacs-orgmode@gnu.org
> Betreff: Re: [O] Testers / Feedback wanted: Gantt charts via org-gantt.el
> 
> * Eric S Fraga <e.fraga@ucl.ac.uk> wrote:
> >
> > The only comments I have at the moment is that it is missing support for
> > milestones and all of my GANTT charts have such and that I would like to
> > be able to link tasks across headlines (i.e. groups).  Can I suggest a
> >:milestone: tag or MILESTONE property for the former and a LINKED-TO or
> > similar for the latter?
> 
> How about a heading task who got only DEADLINE (no SCHEDULED) and
> does not span more than 1 day? This seems to be a mile-stone to me.
> 
> (Or *additionally* this tag?)
> 
> --
> mail|git|SVN|photos|postings|SMS|phonecalls|RSS|CSV|XML to Org-mode:
>        > get Memacs from https://github.com/novoid/Memacs <
> 
> https://github.com/novoid/extract_pdf_annotations_to_orgmode + more on
> github
> 

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Testers / Feedback wanted: Gantt charts via org-gantt.el
  2015-06-03 15:17   ` Karl Voit
  2015-06-05  8:20     ` Bernhard Schmitz
@ 2015-06-20 12:46     ` Bernhard Schmitz
  2015-06-25  8:04       ` Eric S Fraga
  2015-11-09 15:02       ` Karl Voit
  1 sibling, 2 replies; 16+ messages in thread
From: Bernhard Schmitz @ 2015-06-20 12:46 UTC (permalink / raw)
  To: emacs-orgmode; +Cc: devnull


Hi Karl, hi Eric,

I know it has been a while. I think every suggestion has been implemented by now, except for linking independent headlines.
I wanted to ask for your input again, as I'm still not sure how to handle this, and both of your suggestions seemed to fall into the same category for me.

* Eric S Fraga <e.fraga@ucl.ac.uk> wrote:
>
> The only comments I have at the moment is that it is missing support for
> milestones and all of my GANTT charts have such and that I would like to
> be able to link tasks across headlines (i.e. groups).  Can I suggest a
>:milestone: tag or MILESTONE property for the former and a LINKED-TO or
> similar for the latter?

Should this link only be a graphical link, or should the start time of the second headline be determined by the end time of the first (as it is done with ordered headlines)? Or can what you have in mind be expressed by org-depend (see below)?

Karl:

> Oh, I was too lazy to write a working example.
> 
> ,----[ working example ]
> | ** DONE My pretty task
> | CLOSED: [2015-04-30 Thu 07:50] SCHEDULED: <2015-04-30 Thu>
> | :PROPERTIES:
> | :CREATED:  [2015-04-17 Fri 15:36]
> | :ID:       2015-04-17-Dach-zu
> | :TRIGGER:  foo1(NEXT) bar1(WAITING)
> | :BLOCKER:  previousXY prevZ
> | :END:
> `----
> 
> So when this task got marked as DONE, the headings with the ID
> propertes "previousXY" and "prevZ" must not have been in an open
> state. Further more, the headings with ID "foo1" got the new states
> NEXT and "bar1" WAITING accordingly.

Your example clarified the effects of org-depend on the actual org file, but I'm not sure how this should translate to the gantt chart.
The :BLOCKER: property says that when this gets marked as done, the blockers must not be open. So actually, the :BLOCKER: property has no effect on either the start time, nor on the end time of a headline. It only clarifies the earliest possible end time - which cannot be expressed in a gantt chart.
Similarly, the :TRIGGER: property does not define a start or an end time of the triggered property either. The only case in which it does is if it triggers a (DONE), which would mean that an unrelated task suddenly becomes done simply by another task being done, and I don't think that happens all too often.

I now know that I can implement whatever you suggest with relatively little effort, but first I need to know what actually should happen.

Regards,
Bernhard

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Testers / Feedback wanted: Gantt charts via org-gantt.el
  2015-06-20 12:46     ` Bernhard Schmitz
@ 2015-06-25  8:04       ` Eric S Fraga
  2015-11-09 15:02       ` Karl Voit
  1 sibling, 0 replies; 16+ messages in thread
From: Eric S Fraga @ 2015-06-25  8:04 UTC (permalink / raw)
  To: Bernhard Schmitz; +Cc: devnull, emacs-orgmode

On Saturday, 20 Jun 2015 at 12:46, Bernhard Schmitz wrote:
> Hi Karl, hi Eric,
>
> I know it has been a while. I think every suggestion has been
> implemented by now, except for linking independent headlines.
> I wanted to ask for your input again, as I'm still not sure how to
> handle this, and both of your suggestions seemed to fall into the same
> category for me.
>
> * Eric S Fraga <e.fraga@ucl.ac.uk> wrote:
>>
>> The only comments I have at the moment is that it is missing support for
>> milestones and all of my GANTT charts have such and that I would like to
>> be able to link tasks across headlines (i.e. groups).  Can I suggest a
>>:milestone: tag or MILESTONE property for the former and a LINKED-TO or
>> similar for the latter?
>
> Should this link only be a graphical link, or should the start time of
> the second headline be determined by the end time of the first (as it
> is done with ordered headlines)? Or can what you have in mind be
> expressed by org-depend (see below)?

Assuming you are referring to the second of my suggestions (linking
across headlines).  If so, I am not sure about org-depend as I have
never used it.  Does it allow linking across headlines or only within a
sub-tree?  In any case, it would be nice if the start time would be
dependent on the end time of the "from" link, but only if a start time
were not specified explicitly?

thanks,
eric

-- 
: Eric S Fraga (0xFFFCF67D), Emacs 25.0.50.1, Org release_8.3beta-1231-ga0a883

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Testers / Feedback wanted: Gantt charts via org-gantt.el
  2015-05-30 11:33 Testers / Feedback wanted: Gantt charts via org-gantt.el Bernhard Schmitz
                   ` (2 preceding siblings ...)
  2015-06-02  8:38 ` Eric S Fraga
@ 2015-08-05  0:00 ` Bastien Guerry
  3 siblings, 0 replies; 16+ messages in thread
From: Bastien Guerry @ 2015-08-05  0:00 UTC (permalink / raw)
  To: Bernhard Schmitz; +Cc: emacs-orgmode

Hi Bernhard,

this is really nice!  Would you like to have this library
added to the contrib/ directory of org-mode?

Thanks for your work on this,

-- 
 Bastien

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Testers / Feedback wanted: Gantt charts via org-gantt.el
  2015-06-20 12:46     ` Bernhard Schmitz
  2015-06-25  8:04       ` Eric S Fraga
@ 2015-11-09 15:02       ` Karl Voit
  1 sibling, 0 replies; 16+ messages in thread
From: Karl Voit @ 2015-11-09 15:02 UTC (permalink / raw)
  To: emacs-orgmode

* Bernhard Schmitz <Bernhard.Schmitz@vis.uni-stuttgart.de> wrote:
>
> Hi Karl, hi Eric,
>
> I know it has been a while.

I was off-mailinglist for a couple of months. Sorry.

> Karl:
>
>> Oh, I was too lazy to write a working example.
>> 
>> ,----[ working example ]
>> | ** DONE My pretty task
>> | CLOSED: [2015-04-30 Thu 07:50] SCHEDULED: <2015-04-30 Thu>
>> | :PROPERTIES:
>> | :CREATED:  [2015-04-17 Fri 15:36]
>> | :ID:       2015-04-17-Dach-zu
>> | :TRIGGER:  foo1(NEXT) bar1(WAITING)
>> | :BLOCKER:  previousXY prevZ
>> | :END:
>> `----
>> 
>> So when this task got marked as DONE, the headings with the ID
>> propertes "previousXY" and "prevZ" must not have been in an open
>> state. Further more, the headings with ID "foo1" got the new states
>> NEXT and "bar1" WAITING accordingly.
>
> Your example clarified the effects of org-depend on the actual org
> file, but I'm not sure how this should translate to the gantt
> chart.  The :BLOCKER: property says that when this gets marked as
> done, the blockers must not be open. 

I'm using :BLOCKER: such:

** Throw away old stuff
SCHEDULED: [...]
:PROPERTIES:
:ID: throw-away
:END:

** Paint room
SCHEDULED: [...]
:PROPERTIES:
:BLOCKER: throw-away
:END:

This way, I don't see "Paint room" on my agenda as long as I did not
finish throwing away the old stuff.

So IMHO the BLOCKER line marks the earliest time of beginning of
"Paint room".

> So actually, the :BLOCKER:
> property has no effect on either the start time, nor on the end
> time of a headline. It only clarifies the earliest possible end
> time - which cannot be expressed in a gantt chart.  

I don't know GANTT charts that well. I thought that with GANTT, the
"Paint room" just gets "connected" to the "end" of the "Throw
away"-bar. Additionally, if the "Throw away" bar is moved, the
"Paint room" is moved accordingly.

> Similarly, the :TRIGGER: property does not define a start or an
> end time of the triggered property either. The only case in which
> it does is if it triggers a (DONE), which would mean that an
> unrelated task suddenly becomes done simply by another task being
> done, and I don't think that happens all too often.

True. I added it for being complete about the features of org-depent
which I am using.

> I now know that I can implement whatever you suggest with
> relatively little effort, but first I need to know what actually
> should happen.

I hope that cleared things a bit. 

Sorry again for being away for so long.

-- 
mail|git|SVN|photos|postings|SMS|phonecalls|RSS|CSV|XML to Org-mode:
       > get Memacs from https://github.com/novoid/Memacs <

https://github.com/novoid/extract_pdf_annotations_to_orgmode + more on github

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2015-11-09 15:03 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-05-30 11:33 Testers / Feedback wanted: Gantt charts via org-gantt.el Bernhard Schmitz
2015-05-31 13:13 ` Axel Kielhorn
2015-06-01 12:51   ` Bernhard Schmitz
2015-06-01 15:26     ` Axel Kielhorn
2015-06-01 18:38     ` Axel Kielhorn
2015-06-02  8:42       ` Bernhard Schmitz
2015-06-01 11:16 ` Karl Voit
2015-06-02  8:15   ` Bernhard Schmitz
2015-06-03 15:13     ` Karl Voit
2015-06-02  8:38 ` Eric S Fraga
2015-06-03 15:17   ` Karl Voit
2015-06-05  8:20     ` Bernhard Schmitz
2015-06-20 12:46     ` Bernhard Schmitz
2015-06-25  8:04       ` Eric S Fraga
2015-11-09 15:02       ` Karl Voit
2015-08-05  0:00 ` Bastien Guerry

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).