emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* [ANN] Exporter for taskjuggler
@ 2010-03-30  8:59 Christian Egli
  2010-04-06 10:09 ` Carsten Dominik
  2010-04-16 20:39 ` Dan Davison
  0 siblings, 2 replies; 21+ messages in thread
From: Christian Egli @ 2010-03-30  8:59 UTC (permalink / raw)
  To: emacs-orgmode

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


Hi all

In theory we're developing according to agile methods here, but in
practice people still want to see the classic waterfall project plan.

So in order to create a professional looking gant and resource usage
charts I implemented an exporter from org-mode to TaskJuggler
(http://www.taskjuggler.org/). The code is attached and I'm looking for
feedback and would love to get this integrated in the org-mode
distribution.

TaskJuggler uses a text format to define projects, tasks and resources,
so it is a natural fit for org-mode. It can produce all sorts of reports
for tasks or resources in either HTML, CSV or PDF. The current version
of TaskJuggler requires KDE but the next version is implemented in Ruby
and should therefore run on any platform.

The exporter is a bit different from other exporters, such as the HTML
and LaTeX exporters for example, in that it does not export all the
nodes of a document or strictly follow the order of the nodes in the
document.

Instead the TaskJuggler exporter looks for a tree that defines the
tasks and a optionally tree that defines the resources for this
project. It then creates a TaskJuggler file based on these trees
and the attributes defined in all the nodes.

* Installation

Put the attached file into your load-path and the following line into
your ~/.emacs:

  (require 'org-taskjuggler)

The interactive functions are similar to those of the HTML and LaTeX
exporters:

M-x `org-export-as-taskjuggler'
M-x `org-export-as-taskjuggler-and-open'

* Tasks

Let's illustrate the usage with a small example. Create your tasks as
you usually do with org-mode. Assign efforts to each task using
properties (it's easiest to do this in the column view). You should end
up with something similar to the example by Peter Jones in
http://www.contextualdevelopment.com/static/artifacts/articles/2008/project-planning/project-planning.org.
Now mark the top node of your tasks with a tag named
"taskjuggler_project" (or whatever you customized
`org-export-taskjuggler-project-tag' to). You are now ready to export
the project plan with `org-export-as-taskjuggler-and-open' which will
export the project plan and open a gant chart in TaskJugglerUI.

* Resources

Next you can define resources and assign those to work on specific
tasks. You can group your resources hierarchically. Tag the top node of
the resources with "taskjuggler_resource" (or whatever you customized
`org-export-taskjuggler-resource-tag' to). You can optionally assign an
ID to the resources (using the standard org properties commands) or you
can let the exporter generate IDs automatically (the exporter picks the
first word of the headline as the ID as long as it is unique). Using
that ID you can then allocate resources to tasks. This is again done
with the "allocate" property on the tasks. Do this in column view or
when on the task type

 C-c C-x p allocate RET <ID> RET

Once the allocations are done you can again export to TaskJuggler and
check in the Resource Allocation Graph which person is working on what
task at what time.

* Export of properties

The exporter also takes TODO state information into consideration, i.e.
if a task is marked as done it will have the corresponding attribute in
TaskJuggler ("complete 100"). Also it will export any property on a task
resource or resource node which is known to TaskJuggler, such as limits,
vacation, shift, booking, efficiency, journalentry, rate for resources
or account, start, note, duration, end, journalentry, milestone,
reference, responsible, scheduling, etc for tasks.

* Dependencies

The exporter will handle dependencies that are defined in the tasks
either with the ORDERED attribute (see TODO dependencies in the Org mode
manual) or with the BLOCKER attribute (see org-depend.el) or
alternatively with a depends attribute. Both the BLOCKER and the depends
attribute can be either "previous-sibling" or a reference to an ID which
is defined for another task in the project.

Thanks
Christian


[-- Attachment #2: TaskJuggler exporter --]
[-- Type: application/emacs-lisp, Size: 23468 bytes --]

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


-- 
Christian Egli
Swiss Library for the Blind, Visually Impaired and Print Disabled
Grubenstrasse 12, CH-8045 Zürich, Switzerland

[-- Attachment #4: Type: text/plain, Size: 201 bytes --]

_______________________________________________
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

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

end of thread, other threads:[~2010-06-09 19:56 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-03-30  8:59 [ANN] Exporter for taskjuggler Christian Egli
2010-04-06 10:09 ` Carsten Dominik
2010-04-06 11:15   ` Christian Egli
2010-04-06 15:05     ` T Helms
2010-04-06 15:49       ` Christian Egli
2010-06-08 15:24       ` Christian Egli
2010-04-06 16:25     ` Carsten Dominik
2010-04-12 19:24     ` Eric S Fraga
2010-04-16 20:39 ` Dan Davison
2010-04-19 10:05   ` Christian Egli
2010-04-19 13:34     ` Dan Davison
2010-04-19 14:01     ` John Hendy
2010-04-20  8:09       ` Christian Egli
2010-05-11  3:37         ` Manish
2010-06-08  9:21           ` Christian Egli
2010-06-08 10:07             ` Carsten Dominik
2010-06-08 13:30               ` Christian Egli
2010-06-08 14:03                 ` Christian Egli
2010-06-08 16:05                   ` Carsten Dominik
2010-06-08 16:59                 ` Leo
2010-06-09 19:55             ` Manish

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