Browse Source

Add usage documentation

Christian Egli 15 years ago
parent
commit
f2d66428b4
1 changed files with 70 additions and 4 deletions
  1. 70 4
      lisp/org-taskjuggler.el

+ 70 - 4
lisp/org-taskjuggler.el

@@ -28,7 +28,23 @@
 
 ;; Commentary:
 ;;
-;; This library implements a TaskJuggler exporter for org-mode.
+;; This library implements a TaskJuggler exporter for org-mode. It 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 this 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:
@@ -36,9 +52,59 @@
 ;; M-x `org-export-as-taskjuggler'
 ;; M-x `org-export-as-taskjuggler-and-open'
 ;;
-;;; TODO:
-;;    * Code cleanup
-;;    * Add documentation
+;; * Tasks
+;;
+;; Let's illustrate this with a small example. Create your tasks as
+;; you usually do. 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 these 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.
+;;
+;; * Dependecies
+;; 
+;; 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.
 ;;
 ;;; Code: