Files
MagnumOpus/Ideas/Taskjuggler verwendbar machen/vscode-extension/examples/template.tjp
2026-03-10 17:03:20 +01:00

339 lines
9.0 KiB
Plaintext

/*
* This file contains a project skeleton. It is part of the
* TaskJuggler project management tool. You can use this as a basis to
* start your own project file.
*/
project your_project_id "Your Project Title" 2011-11-11-0:00--0500 +4m {
# Set the default time zone for the project. If not specified, UTC
# is used.
timezone "America/New_York"
# Hide the clock time. Only show the date.
timeformat "%Y-%m-%d"
# Use US format for numbers
numberformat "-" "" "," "." 1
# Use US financial format for currency values. Don't show cents.
currencyformat "(" ")" "," "." 0
# Pick a day during the project that will be reported as 'today' in
# the project reports. If not specified, the current day will be
# used, but this will likely be outside of the project range, so it
# can't be seen in the reports.
now 2011-12-24
# The currency for all money values is the Euro.
currency "USD"
# You can define multiple scenarios here if you need them.
#scenario plan "Plan" {
# scenario actual "Actual"
#}
# You can define your own attributes for tasks and resources. This
# is handy to capture additional information about the project that
# is not directly impacting the project schedule, but which you like to
# keep in one place.
#extend task {
# reference spec "Link to Wiki page"
#}
#extend resource {
# text Phone "Phone"
#}
}
copyright "Claim your rights here"
# If you have any text block that you need multiple times to describe
# your project, you should define a macro for it. Macros can even have
# variable segments that you can set upon calling the macro.
#
# macro Task [
# task "A ${1} task" {
# }
# ]
#
# Can be called as
# ${Task "big"}
# to generate
# task "A big task" {
# }
# You can attach flags to accounts, resources and tasks. These can be
# used to filter out subsets of them during reporting.
flags important, hidden
# If you want to do budget planning for your project, you need to
# define some accounts.
account cost "Project Cost" {
account dev "Development"
account doc "Documentation"
}
account rev "Customer Payments"
# The Profit & Loss analysis should be rev - cost accounts.
balance cost rev
# Define your public holidays here.
vacation "New Year's Day" 2012-01-02
vacation "Birthday of Martin Luther King, Jr." 2012-01-16
vacation "Washington's Birthday" 2012-02-20
vacation "Memorial Day" 2012-05-28
vacation "Independence Day" 2012-07-04
vacation "Labor Day" 2012-09-03
vacation "Columbus Day" 2012-10-08
vacation "Veterans Day" 2012-11-12
vacation "Thanksgiving Day" 2012-11-22
vacation "Christmas Day" 2012-12-25
# The daily default rate of all resources. This can be overridden for each
# resource. We specify this so we can do a good calculation of
# the costs of the project.
rate 400.0
# This is a set of example resources.
resource r1 "Resource 1"
resource t1 "Team 1" {
managers r1
resource r2 "Resource 2"
resource r3 "Resource 3"
}
# This is a resource that does not do any work.
resource s1 "System 1" {
efficiency 0.0
rate 600.0
}
task project "Project" {
task wp1 "Workpackage 1" {
task t1 "Task 1"
task t2 "Task 2"
}
task wp2 "Work package 2" {
depends !wp1
task t1 "Task 1"
task t2 "Task 2"
}
task deliveries "Deliveries" {
task "Item 1" {
depends !!wp1
}
task "Item 2" {
depends !!wp2
}
}
}
# Now the project has been specified completely. Stopping here would
# result in a valid TaskJuggler file that could be processed and
# scheduled. Here reports will be generated to visualize the
# results.
navigator navbar {
hidereport 0
}
macro TaskTip [
tooltip istask() -8<-
'''Start: ''' <-query attribute='start'->
'''End: ''' <-query attribute='end'->
----
'''Resources:'''
<-query attribute='resources'->
----
'''Precursors: '''
<-query attribute='precursors'->
----
'''Followers: '''
<-query attribute='followers'->
->8-
]
textreport frame "" {
header -8<-
== TaskJuggler Project Template ==
<[navigator id="navbar"]>
->8-
footer "----"
textreport index "Overview" {
formats html
center '<[report id="overview"]>'
}
textreport "Status" {
formats html
center -8<-
<[report id="status.dashboard"]>
----
<[report id="status.completed"]>
----
<[report id="status.ongoing"]>
----
<[report id="status.future"]>
->8-
}
textreport wps "Work packages" {
textreport wp1 "Work package 1" {
formats html
center '<[report id="wp1"]>'
}
textreport wp2 "Work package 2" {
formats html
center '<[report id="wp2"]>'
}
}
textreport "Deliveries" {
formats html
center '<[report id="deliveries"]>'
}
textreport "ContactList" {
formats html
title "Contact List"
center '<[report id="contactList"]>'
}
textreport "ResourceGraph" {
formats html
title "Resource Graph"
center '<[report id="resourceGraph"]>'
}
}
# A traditional Gantt chart with a project overview.
taskreport overview "" {
header -8<-
=== Project Overview ===
The project is structured into 2 work packages.
# Specification
# <-reportlink id='frame.wps.wp1'->
# <-reportlink id='frame.wps.wp2'->
# Testing
=== Original Project Plan ===
->8-
columns bsi { title 'WBS' },
name, start, end, effort, cost,
revenue, chart { ${TaskTip} }
# For this report we like to have the abbreviated weekday in front
# of the date. %a is the tag for this.
timeformat "%a %Y-%m-%d"
loadunit days
hideresource 1
balance cost rev
caption 'All effort values are in man days.'
footer -8<-
=== Staffing ===
All project phases are properly staffed. See [[ResourceGraph]] for
detailed resource allocations.
=== Current Status ===
Some blurb about the current situation.
->8-
}
# Macro to set the background color of a cell according to the alert
# level of the task.
macro AlertColor [
cellcolor plan.alert = 0 "#00D000" # green
cellcolor plan.alert = 1 "#D0D000" # yellow
cellcolor plan.alert = 2 "#D00000" # red
]
taskreport status "" {
columns bsi { width 50 title 'WBS' }, name { width 150 },
start { width 100 }, end { width 100 },
effort { width 100 },
alert { tooltip plan.journal
!= '' "<-query attribute='journal'->" width 150 },
status { width 150 }
taskreport dashboard "" {
headline "Project Dashboard (<-query attribute='now'->)"
columns name { title "Task" ${AlertColor} width 200},
resources { width 200 ${AlertColor}
listtype bullets
listitem "<-query attribute='name'->"
start ${projectstart} end ${projectend} },
alerttrend { title "Trend" ${AlertColor} width 50 },
journal { width 350 ${AlertColor} }
journalmode status_up
journalattributes headline, author, date, summary, details
hidetask ~hasalert(0)
sorttasks alert.down, plan.end.up
period %{${now} - 1w} +1w
}
taskreport completed "" {
headline "Already completed tasks"
hidetask ~(plan.end <= ${now})
}
taskreport ongoing "" {
headline "Ongoing tasks"
hidetask ~((plan.start <= ${now}) & (plan.end > ${now}))
}
taskreport future "" {
headline "Future tasks"
hidetask ~(plan.start > ${now})
}
}
# A list of tasks showing the resources assigned to each task.
taskreport wp1 "" {
headline "Work package 1 - Resource Allocation Report"
columns bsi { title 'WBS' }, name, start, end, effort { title "Work" },
duration, chart { ${TaskTip} scale day width 500 }
timeformat "%Y-%m-%d"
hideresource ~(isleaf() & isleaf_())
sortresources name.up
taskroot project.wp1
}
# A list of tasks showing the resources assigned to each task.
taskreport wp2 "" {
headline "Work package 2 - Resource Allocation Report"
columns bsi { title 'WBS' }, name, start, end, effort { title "Work" },
duration, chart { ${TaskTip} scale day width 500 }
timeformat "%Y-%m-%d"
hideresource ~(isleaf() & isleaf_())
sortresources name.up
taskroot project.wp2
}
# A list of all tasks with the percentage completed for each task
taskreport deliveries "" {
headline "Project Deliverables"
columns bsi { title 'WBS' }, name, start, end, note { width 150 }, complete,
chart { ${TaskTip} }
taskroot project.deliveries
hideresource 1
}
# A list of all employees with their contact details.
resourcereport contactList "" {
headline "Contact list and duty plan"
columns name,
email { celltext 1 "[mailto:<-email-> <-email->]" },
managers { title "Manager" },
chart { scale day }
hideresource ~isleaf()
sortresources name.up
hidetask 1
}
# A graph showing resource allocation. It identifies whether each
# resource is under- or over-allocated for.
resourcereport resourceGraph "" {
headline "Resource Allocation Graph"
columns no, name, effort, rate, weekly { ${TaskTip} }
loadunit shortauto
# We only like to show leaf tasks for leaf resources.
hidetask ~(isleaf() & isleaf_())
sorttasks plan.start.up
}