taskjuggler 3.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (553) hide show
  1. data/CHANGELOG +61 -0
  2. data/README.rdoc +43 -27
  3. data/data/css/tjreport.css +30 -0
  4. data/data/tjp.vim +100 -89
  5. data/examples/ProjectTemplate/template.tjp +338 -0
  6. data/examples/ToDo-List/todolist.tjp +84 -0
  7. data/examples/{tutorial.tjp → Tutorial/tutorial.tjp} +9 -7
  8. data/lib/header.tmpl +1 -1
  9. data/lib/taskjuggler/Account.rb +2 -2
  10. data/lib/taskjuggler/AccountCredit.rb +29 -0
  11. data/lib/taskjuggler/AccountScenario.rb +73 -7
  12. data/lib/taskjuggler/AlertLevelDefinitions.rb +104 -0
  13. data/lib/taskjuggler/AlgorithmDiff.rb +2 -2
  14. data/lib/taskjuggler/Allocation.rb +1 -1
  15. data/lib/taskjuggler/AppConfig.rb +1 -1
  16. data/lib/taskjuggler/AttributeBase.rb +1 -1
  17. data/lib/taskjuggler/AttributeDefinition.rb +1 -1
  18. data/lib/taskjuggler/Attributes.rb +40 -3
  19. data/lib/taskjuggler/BatchProcessor.rb +15 -14
  20. data/lib/taskjuggler/Booking.rb +1 -1
  21. data/lib/taskjuggler/Charge.rb +2 -2
  22. data/lib/taskjuggler/ChargeSet.rb +1 -1
  23. data/lib/taskjuggler/DataCache.rb +24 -12
  24. data/lib/taskjuggler/FileList.rb +1 -1
  25. data/lib/taskjuggler/HTMLDocument.rb +1 -1
  26. data/lib/taskjuggler/HTMLElements.rb +1 -1
  27. data/lib/taskjuggler/ICalendar.rb +1 -1
  28. data/lib/taskjuggler/Interval.rb +1 -1
  29. data/lib/taskjuggler/IntervalList.rb +1 -1
  30. data/lib/taskjuggler/Journal.rb +61 -41
  31. data/lib/taskjuggler/KeywordArray.rb +1 -1
  32. data/lib/taskjuggler/KeywordDocumentation.rb +121 -33
  33. data/lib/taskjuggler/LeaveList.rb +103 -0
  34. data/lib/taskjuggler/Limits.rb +1 -1
  35. data/lib/taskjuggler/Log.rb +6 -3
  36. data/lib/taskjuggler/LogFile.rb +1 -1
  37. data/lib/taskjuggler/LogicalExpression.rb +1 -1
  38. data/lib/taskjuggler/LogicalFunction.rb +16 -2
  39. data/lib/taskjuggler/LogicalOperation.rb +3 -1
  40. data/lib/taskjuggler/MessageHandler.rb +13 -4
  41. data/lib/taskjuggler/PTNProxy.rb +118 -0
  42. data/lib/taskjuggler/Project.rb +58 -67
  43. data/lib/taskjuggler/ProjectFileParser.rb +39 -5
  44. data/lib/taskjuggler/ProjectFileScanner.rb +1 -1
  45. data/lib/taskjuggler/PropertyList.rb +26 -2
  46. data/lib/taskjuggler/PropertySet.rb +8 -1
  47. data/lib/taskjuggler/PropertyTreeNode.rb +36 -32
  48. data/lib/taskjuggler/Query.rb +1 -1
  49. data/lib/taskjuggler/RealFormat.rb +4 -2
  50. data/lib/taskjuggler/Resource.rb +3 -3
  51. data/lib/taskjuggler/ResourceScenario.rb +219 -140
  52. data/lib/taskjuggler/RichText.rb +1 -1
  53. data/lib/taskjuggler/RichText/Document.rb +2 -2
  54. data/lib/taskjuggler/RichText/Element.rb +2 -2
  55. data/lib/taskjuggler/RichText/FunctionExample.rb +2 -2
  56. data/lib/taskjuggler/RichText/FunctionHandler.rb +2 -2
  57. data/lib/taskjuggler/RichText/Parser.rb +2 -2
  58. data/lib/taskjuggler/RichText/RTFHandlers.rb +1 -1
  59. data/lib/taskjuggler/RichText/RTFNavigator.rb +1 -1
  60. data/lib/taskjuggler/RichText/RTFQuery.rb +1 -1
  61. data/lib/taskjuggler/RichText/RTFReport.rb +1 -1
  62. data/lib/taskjuggler/RichText/RTFReportLink.rb +1 -1
  63. data/lib/taskjuggler/RichText/RTFWithQuerySupport.rb +1 -1
  64. data/lib/taskjuggler/RichText/Scanner.rb +18 -4
  65. data/lib/taskjuggler/RichText/Snip.rb +2 -2
  66. data/lib/taskjuggler/RichText/SyntaxRules.rb +6 -14
  67. data/lib/taskjuggler/RichText/TOCEntry.rb +16 -7
  68. data/lib/taskjuggler/RichText/TableOfContents.rb +3 -2
  69. data/lib/taskjuggler/RuntimeConfig.rb +1 -1
  70. data/lib/taskjuggler/Scenario.rb +1 -1
  71. data/lib/taskjuggler/ScenarioData.rb +1 -1
  72. data/lib/taskjuggler/Scoreboard.rb +1 -1
  73. data/lib/taskjuggler/SheetHandlerBase.rb +1 -1
  74. data/lib/taskjuggler/SheetReceiver.rb +1 -1
  75. data/lib/taskjuggler/SheetSender.rb +3 -3
  76. data/lib/taskjuggler/Shift.rb +2 -2
  77. data/lib/taskjuggler/ShiftAssignments.rb +24 -19
  78. data/lib/taskjuggler/ShiftScenario.rb +4 -4
  79. data/lib/taskjuggler/SimpleQueryExpander.rb +1 -1
  80. data/lib/taskjuggler/StatusSheetReceiver.rb +1 -1
  81. data/lib/taskjuggler/StatusSheetSender.rb +1 -1
  82. data/lib/taskjuggler/StdIoWrapper.rb +1 -1
  83. data/lib/taskjuggler/SyntaxReference.rb +5 -2
  84. data/lib/taskjuggler/TableColumnDefinition.rb +1 -1
  85. data/lib/taskjuggler/Task.rb +4 -8
  86. data/lib/taskjuggler/TaskDependency.rb +1 -1
  87. data/lib/taskjuggler/TaskJuggler.rb +1 -1
  88. data/lib/taskjuggler/TaskScenario.rb +131 -51
  89. data/lib/taskjuggler/TernarySearchTree.rb +6 -4
  90. data/lib/taskjuggler/TextFormatter.rb +9 -2
  91. data/lib/taskjuggler/TextParser.rb +13 -3
  92. data/lib/taskjuggler/TextParser/MacroTable.rb +1 -1
  93. data/lib/taskjuggler/TextParser/Pattern.rb +52 -8
  94. data/lib/taskjuggler/TextParser/Rule.rb +11 -5
  95. data/lib/taskjuggler/TextParser/Scanner.rb +1 -1
  96. data/lib/taskjuggler/TextParser/SourceFileInfo.rb +1 -1
  97. data/lib/taskjuggler/TextParser/StackElement.rb +1 -1
  98. data/lib/taskjuggler/TextParser/State.rb +2 -2
  99. data/lib/taskjuggler/TextParser/TokenDoc.rb +1 -1
  100. data/lib/taskjuggler/TimeSheetReceiver.rb +1 -1
  101. data/lib/taskjuggler/TimeSheetSender.rb +1 -1
  102. data/lib/taskjuggler/TimeSheetSummary.rb +1 -1
  103. data/lib/taskjuggler/TimeSheets.rb +4 -6
  104. data/lib/taskjuggler/Tj3AppBase.rb +18 -1
  105. data/lib/taskjuggler/Tj3Config.rb +4 -4
  106. data/lib/taskjuggler/Tj3SheetAppBase.rb +1 -1
  107. data/lib/taskjuggler/TjException.rb +1 -1
  108. data/lib/taskjuggler/TjTime.rb +1 -1
  109. data/lib/taskjuggler/TjpExample.rb +1 -1
  110. data/lib/taskjuggler/TjpSyntaxRules.rb +920 -392
  111. data/lib/taskjuggler/URLParameter.rb +1 -1
  112. data/lib/taskjuggler/UTF8String.rb +1 -1
  113. data/lib/taskjuggler/UserManual.rb +1 -1
  114. data/lib/taskjuggler/VimSyntax.rb +9 -6
  115. data/lib/taskjuggler/WorkingHours.rb +12 -1
  116. data/lib/taskjuggler/XMLDocument.rb +1 -1
  117. data/lib/taskjuggler/XMLElement.rb +1 -1
  118. data/lib/taskjuggler/apps/Tj3.rb +8 -3
  119. data/lib/taskjuggler/apps/Tj3Client.rb +1 -1
  120. data/lib/taskjuggler/apps/Tj3Daemon.rb +1 -1
  121. data/lib/taskjuggler/apps/Tj3Man.rb +1 -1
  122. data/lib/taskjuggler/apps/Tj3SsReceiver.rb +2 -2
  123. data/lib/taskjuggler/apps/Tj3SsSender.rb +1 -1
  124. data/lib/taskjuggler/apps/Tj3TsReceiver.rb +1 -1
  125. data/lib/taskjuggler/apps/Tj3TsSender.rb +1 -1
  126. data/lib/taskjuggler/apps/Tj3TsSummary.rb +1 -1
  127. data/lib/taskjuggler/daemon/Daemon.rb +1 -1
  128. data/lib/taskjuggler/daemon/ProcessIntercom.rb +1 -1
  129. data/lib/taskjuggler/daemon/ProjectBroker.rb +1 -1
  130. data/lib/taskjuggler/daemon/ProjectServer.rb +1 -1
  131. data/lib/taskjuggler/daemon/ReportServer.rb +2 -2
  132. data/lib/taskjuggler/daemon/ReportServlet.rb +1 -1
  133. data/lib/taskjuggler/daemon/WebServer.rb +1 -1
  134. data/lib/taskjuggler/daemon/WelcomePage.rb +1 -1
  135. data/lib/taskjuggler/deep_copy.rb +1 -1
  136. data/lib/taskjuggler/reports/AccountListRE.rb +115 -0
  137. data/lib/taskjuggler/reports/CSVFile.rb +1 -1
  138. data/lib/taskjuggler/reports/CollisionDetector.rb +1 -1
  139. data/lib/taskjuggler/reports/ColumnTable.rb +1 -1
  140. data/lib/taskjuggler/reports/GanttChart.rb +1 -1
  141. data/lib/taskjuggler/reports/GanttContainer.rb +1 -3
  142. data/lib/taskjuggler/reports/GanttHeader.rb +1 -1
  143. data/lib/taskjuggler/reports/GanttHeaderScaleItem.rb +1 -1
  144. data/lib/taskjuggler/reports/GanttLine.rb +23 -12
  145. data/lib/taskjuggler/reports/GanttLoadStack.rb +1 -1
  146. data/lib/taskjuggler/reports/GanttMilestone.rb +1 -1
  147. data/lib/taskjuggler/reports/GanttRouter.rb +1 -1
  148. data/lib/taskjuggler/reports/GanttTaskBar.rb +1 -1
  149. data/lib/taskjuggler/reports/HTMLGraphics.rb +1 -1
  150. data/lib/taskjuggler/reports/ICalReport.rb +5 -2
  151. data/lib/taskjuggler/reports/Navigator.rb +1 -1
  152. data/lib/taskjuggler/reports/NikuReport.rb +1 -1
  153. data/lib/taskjuggler/reports/Report.rb +29 -4
  154. data/lib/taskjuggler/reports/ReportBase.rb +15 -1
  155. data/lib/taskjuggler/reports/ReportContext.rb +1 -1
  156. data/lib/taskjuggler/reports/ReportTable.rb +1 -1
  157. data/lib/taskjuggler/reports/ReportTableCell.rb +1 -1
  158. data/lib/taskjuggler/reports/ReportTableColumn.rb +1 -1
  159. data/lib/taskjuggler/reports/ReportTableLegend.rb +1 -1
  160. data/lib/taskjuggler/reports/ReportTableLine.rb +1 -1
  161. data/lib/taskjuggler/reports/ResourceListRE.rb +3 -5
  162. data/lib/taskjuggler/reports/StatusSheetReport.rb +2 -2
  163. data/lib/taskjuggler/reports/TableReport.rb +336 -204
  164. data/lib/taskjuggler/reports/TableReportColumn.rb +30 -0
  165. data/lib/taskjuggler/reports/TagFile.rb +2 -2
  166. data/lib/taskjuggler/reports/TaskListRE.rb +3 -6
  167. data/lib/taskjuggler/reports/TextReport.rb +1 -1
  168. data/lib/taskjuggler/reports/TimeSheetReport.rb +3 -3
  169. data/lib/taskjuggler/reports/TjpExportRE.rb +4 -1
  170. data/lib/tj3.rb +1 -1
  171. data/lib/tj3client.rb +1 -1
  172. data/lib/tj3d.rb +1 -1
  173. data/lib/tj3man.rb +1 -1
  174. data/lib/tj3ss_receiver.rb +1 -1
  175. data/lib/tj3ss_sender.rb +1 -1
  176. data/lib/tj3ts_receiver.rb +1 -1
  177. data/lib/tj3ts_sender.rb +1 -1
  178. data/lib/tj3ts_summary.rb +1 -1
  179. data/lib/updateheader.sh +4 -1
  180. data/manual/Getting_Started +7 -4
  181. data/manual/How_To_Contribute +26 -5
  182. data/manual/Installation +26 -18
  183. data/manual/Intro +55 -33
  184. data/manual/Reporting_Bugs +18 -8
  185. data/manual/Rich_Text_Attributes +16 -3
  186. data/manual/Software +2 -2
  187. data/manual/TaskJuggler_2x_Migration +2 -2
  188. data/manual/The_TaskJuggler_Syntax +10 -0
  189. data/manual/Tutorial +2 -2
  190. data/manual/html/Day_To_Day_Juggling.html +16 -12
  191. data/manual/html/Getting_Started.html +9 -7
  192. data/manual/html/How_To_Contribute.html +18 -10
  193. data/manual/html/Installation.html +18 -15
  194. data/manual/html/Intro.html +44 -28
  195. data/manual/html/Reporting_Bugs.html +9 -7
  196. data/manual/html/Rich_Text_Attributes.html +11 -8
  197. data/manual/html/Software.html +5 -5
  198. data/manual/html/TaskJuggler_2x_Migration.html +4 -4
  199. data/manual/html/TaskJuggler_Internals.html +3 -3
  200. data/manual/html/The_TaskJuggler_Syntax.html +6 -3
  201. data/manual/html/Tutorial.html +12 -12
  202. data/manual/html/account.html +19 -10
  203. data/manual/html/account.task.html +5 -28
  204. data/manual/html/accountprefix.html +5 -5
  205. data/manual/html/{report.html → accountreport.html} +140 -23
  206. data/manual/html/accountroot.html +142 -0
  207. data/manual/html/active.html +5 -5
  208. data/manual/html/adopt.task.html +7 -8
  209. data/manual/html/aggregate.html +145 -0
  210. data/manual/html/alert.html +12 -11
  211. data/manual/html/alertlevels.html +102 -0
  212. data/manual/html/allocate.html +6 -6
  213. data/manual/html/alphabet.html +1 -1
  214. data/manual/html/alternative.html +3 -3
  215. data/manual/html/author.html +3 -3
  216. data/manual/html/balance.html +84 -11
  217. data/manual/html/booking.resource.html +3 -3
  218. data/manual/html/booking.task.html +3 -3
  219. data/manual/html/caption.html +6 -4
  220. data/manual/html/cellcolor.column.html +3 -3
  221. data/manual/html/celltext.column.html +3 -3
  222. data/manual/html/center.html +28 -4
  223. data/manual/html/charge.html +3 -3
  224. data/manual/html/chargeset.html +5 -5
  225. data/manual/html/columnid.html +40 -9
  226. data/manual/html/columns.html +6 -4
  227. data/manual/html/complete.html +15 -9
  228. data/manual/html/copyright.html +5 -5
  229. data/manual/html/{credit.html → credits.html} +15 -12
  230. data/manual/html/css/tjreport.css +30 -0
  231. data/manual/html/currency.html +28 -15
  232. data/manual/html/currencyformat.html +4 -4
  233. data/manual/html/dailymax.html +3 -3
  234. data/manual/html/dailymin.html +3 -3
  235. data/manual/html/dailyworkinghours.html +3 -3
  236. data/manual/html/date.extend.html +3 -3
  237. data/manual/html/date.html +3 -3
  238. data/manual/html/definitions.html +3 -3
  239. data/manual/html/depends.html +3 -3
  240. data/manual/html/details.html +3 -3
  241. data/manual/html/disabled.html +9 -3
  242. data/manual/html/duration.html +3 -3
  243. data/manual/html/efficiency.html +3 -3
  244. data/manual/html/effort.html +3 -3
  245. data/manual/html/email.html +3 -3
  246. data/manual/html/enabled.html +9 -3
  247. data/manual/html/end.column.html +3 -3
  248. data/manual/html/end.html +3 -3
  249. data/manual/html/end.limit.html +3 -3
  250. data/manual/html/end.report.html +4 -4
  251. data/manual/html/end.timesheet.html +3 -3
  252. data/manual/html/endcredit.html +18 -9
  253. data/manual/html/epilog.html +6 -4
  254. data/manual/html/export.html +10 -6
  255. data/manual/html/extend.html +3 -3
  256. data/manual/html/fail.html +3 -3
  257. data/manual/html/fdl.html +3 -3
  258. data/manual/html/flags.account.html +3 -3
  259. data/manual/html/flags.html +3 -3
  260. data/manual/html/flags.journalentry.html +3 -3
  261. data/manual/html/flags.report.html +6 -4
  262. data/manual/html/flags.resource.html +3 -3
  263. data/manual/html/flags.statussheet.html +3 -3
  264. data/manual/html/flags.task.html +3 -3
  265. data/manual/html/flags.timesheet.html +3 -3
  266. data/manual/html/fontcolor.column.html +3 -3
  267. data/manual/html/footer.html +28 -4
  268. data/manual/html/formats.html +4 -4
  269. data/manual/html/functions.html +4 -4
  270. data/manual/html/gapduration.html +3 -3
  271. data/manual/html/gaplength.html +4 -4
  272. data/manual/html/halign.center.html +3 -3
  273. data/manual/html/halign.column.html +3 -3
  274. data/manual/html/halign.left.html +3 -3
  275. data/manual/html/halign.right.html +3 -3
  276. data/manual/html/hasalert.html +3 -3
  277. data/manual/html/header.html +28 -4
  278. data/manual/html/headline.html +6 -6
  279. data/manual/html/hideaccount.html +73 -0
  280. data/manual/html/hidejournalentry.html +6 -6
  281. data/manual/html/hidereport.html +3 -3
  282. data/manual/html/hideresource.html +4 -4
  283. data/manual/html/hidetask.html +4 -4
  284. data/manual/html/icalreport.html +3 -3
  285. data/manual/html/include.macro.html +4 -4
  286. data/manual/html/include.project.html +5 -6
  287. data/manual/html/include.properties.html +5 -97
  288. data/manual/html/index.html +2 -2
  289. data/manual/html/inherit.extend.html +3 -3
  290. data/manual/html/interval1.html +3 -3
  291. data/manual/html/interval2.html +3 -3
  292. data/manual/html/interval3.html +3 -3
  293. data/manual/html/interval4.html +3 -3
  294. data/manual/html/isactive.html +3 -3
  295. data/manual/html/ischildof.html +3 -3
  296. data/manual/html/isdependencyof.html +3 -3
  297. data/manual/html/isdutyof.html +3 -3
  298. data/manual/html/isfeatureof.html +3 -3
  299. data/manual/html/isleaf.html +3 -3
  300. data/manual/html/ismilestone.html +3 -3
  301. data/manual/html/isongoing.html +3 -3
  302. data/manual/html/isresource.html +5 -5
  303. data/manual/html/{alert level.html → isresponsibilityof.html} +19 -14
  304. data/manual/html/istask.html +5 -5
  305. data/manual/html/journalattributes.html +6 -4
  306. data/manual/html/journalentry.html +3 -3
  307. data/manual/html/journalmode.html +8 -6
  308. data/manual/html/leaveallowance.html +139 -0
  309. data/manual/html/leaves.html +140 -0
  310. data/manual/html/left.html +30 -6
  311. data/manual/html/length.html +4 -4
  312. data/manual/html/limits.allocate.html +5 -32
  313. data/manual/html/limits.html +3 -3
  314. data/manual/html/limits.resource.html +3 -3
  315. data/manual/html/limits.task.html +3 -3
  316. data/manual/html/listitem.column.html +3 -3
  317. data/manual/html/listtype.column.html +3 -3
  318. data/manual/html/loadunit.html +6 -4
  319. data/manual/html/logicalexpression.html +3 -3
  320. data/manual/html/logicalflagexpression.html +3 -3
  321. data/manual/html/macro.html +3 -3
  322. data/manual/html/managers.html +3 -3
  323. data/manual/html/mandatory.html +3 -3
  324. data/manual/html/maxend.html +3 -3
  325. data/manual/html/maximum.html +3 -3
  326. data/manual/html/maxstart.html +3 -3
  327. data/manual/html/milestone.html +3 -3
  328. data/manual/html/minend.html +3 -3
  329. data/manual/html/minimum.html +3 -3
  330. data/manual/html/minstart.html +3 -3
  331. data/manual/html/monthlymax.html +3 -3
  332. data/manual/html/monthlymin.html +3 -3
  333. data/manual/html/navbar.html +23 -5
  334. data/manual/html/navigator.html +34 -3
  335. data/manual/html/newtask.html +3 -3
  336. data/manual/html/nikureport.html +3 -3
  337. data/manual/html/note.task.html +3 -3
  338. data/manual/html/now.html +3 -3
  339. data/manual/html/numberformat.html +4 -4
  340. data/manual/html/onend.html +3 -3
  341. data/manual/html/onstart.html +3 -3
  342. data/manual/html/opennodes.html +6 -4
  343. data/manual/html/overtime.booking.html +4 -4
  344. data/manual/html/period.column.html +3 -3
  345. data/manual/html/period.limit.html +3 -3
  346. data/manual/html/period.report.html +4 -4
  347. data/manual/html/period.task.html +3 -3
  348. data/manual/html/persistent.html +3 -3
  349. data/manual/html/precedes.html +3 -3
  350. data/manual/html/priority.html +3 -3
  351. data/manual/html/priority.timesheet.html +3 -3
  352. data/manual/html/project.html +4 -4
  353. data/manual/html/projectid.html +3 -3
  354. data/manual/html/projectid.task.html +3 -3
  355. data/manual/html/projectids.html +3 -3
  356. data/manual/html/projection.html +9 -3
  357. data/manual/html/prolog.html +6 -4
  358. data/manual/html/properties.html +193 -9
  359. data/manual/html/purge.html +5 -5
  360. data/manual/html/rate.html +3 -3
  361. data/manual/html/rate.resource.html +3 -3
  362. data/manual/html/reference.extend.html +3 -3
  363. data/manual/html/remaining.html +3 -3
  364. data/manual/html/replace.html +9 -6
  365. data/manual/html/reportprefix.html +5 -5
  366. data/manual/html/resource.html +22 -4
  367. data/manual/html/resourceattributes.html +6 -6
  368. data/manual/html/resourceprefix.html +3 -3
  369. data/manual/html/resourcereport.html +311 -8
  370. data/manual/html/resourceroot.html +6 -4
  371. data/manual/html/resources.limit.html +4 -4
  372. data/manual/html/responsible.html +3 -3
  373. data/manual/html/richtext.extend.html +3 -3
  374. data/manual/html/right.html +30 -6
  375. data/manual/html/rollupaccount.html +69 -0
  376. data/manual/html/rollupresource.html +6 -6
  377. data/manual/html/rolluptask.html +4 -4
  378. data/manual/html/scale.column.html +3 -3
  379. data/manual/html/scenario.html +3 -3
  380. data/manual/html/scenario.ical.html +3 -3
  381. data/manual/html/scenarios.export.html +3 -3
  382. data/manual/html/scenarios.html +6 -4
  383. data/manual/html/scenariospecific.extend.html +3 -3
  384. data/manual/html/scheduled.html +3 -3
  385. data/manual/html/scheduling.html +3 -3
  386. data/manual/html/select.html +3 -3
  387. data/manual/html/selfcontained.html +6 -4
  388. data/manual/html/shift.allocate.html +77 -0
  389. data/manual/html/shift.html +13 -7
  390. data/manual/html/shift.resource.html +11 -5
  391. data/manual/html/shift.task.html +9 -3
  392. data/manual/html/shift.timesheet.html +4 -4
  393. data/manual/html/shifts.allocate.html +6 -6
  394. data/manual/html/shifts.resource.html +3 -3
  395. data/manual/html/shifts.task.html +3 -3
  396. data/manual/html/shorttimeformat.html +3 -3
  397. data/manual/html/sloppy.booking.html +4 -4
  398. data/manual/html/sloppy.projection.html +12 -6
  399. data/manual/html/sortaccounts.html +73 -0
  400. data/manual/html/sortjournalentries.html +8 -6
  401. data/manual/html/sortresources.html +4 -4
  402. data/manual/html/sorttasks.html +4 -4
  403. data/manual/html/start.column.html +3 -3
  404. data/manual/html/start.html +3 -3
  405. data/manual/html/start.limit.html +3 -3
  406. data/manual/html/start.report.html +4 -4
  407. data/manual/html/startcredit.html +10 -4
  408. data/manual/html/status.statussheet.html +5 -5
  409. data/manual/html/status.timesheet.html +5 -5
  410. data/manual/html/statussheet.html +3 -3
  411. data/manual/html/statussheetreport.html +10 -6
  412. data/manual/html/strict.projection.html +10 -4
  413. data/manual/html/summary.html +3 -3
  414. data/manual/html/supplement.html +5 -5
  415. data/manual/html/supplement.resource.html +22 -4
  416. data/manual/html/supplement.task.html +4 -4
  417. data/manual/html/tagfile.html +3 -3
  418. data/manual/html/task.html +3 -3
  419. data/manual/html/task.statussheet.html +3 -3
  420. data/manual/html/task.timesheet.html +3 -3
  421. data/manual/html/taskattributes.html +3 -3
  422. data/manual/html/taskprefix.html +3 -3
  423. data/manual/html/taskreport.html +347 -8
  424. data/manual/html/taskroot.html +6 -4
  425. data/manual/html/text.extend.html +3 -3
  426. data/manual/html/textreport.html +333 -8
  427. data/manual/html/timeformat.html +4 -4
  428. data/manual/html/timeoff.nikureport.html +3 -3
  429. data/manual/html/timesheet.html +3 -3
  430. data/manual/html/timesheetreport.html +10 -6
  431. data/manual/html/timezone.export.html +3 -3
  432. data/manual/html/timezone.html +3 -3
  433. data/manual/html/timezone.report.html +6 -4
  434. data/manual/html/timezone.shift.html +3 -3
  435. data/manual/html/timingresolution.html +3 -3
  436. data/manual/html/title.column.html +3 -3
  437. data/manual/html/title.html +4 -4
  438. data/manual/html/toc.html +1705 -658
  439. data/manual/html/tooltip.column.html +3 -3
  440. data/manual/html/trackingscenario.html +3 -3
  441. data/manual/html/treelevel.html +3 -3
  442. data/manual/html/vacation.html +3 -3
  443. data/manual/html/vacation.resource.html +4 -4
  444. data/manual/html/vacation.shift.html +4 -4
  445. data/manual/html/warn.html +3 -3
  446. data/manual/html/weeklymax.html +3 -3
  447. data/manual/html/weeklymin.html +3 -3
  448. data/manual/html/weekstartsmonday.html +3 -3
  449. data/manual/html/weekstartssunday.html +3 -3
  450. data/manual/html/width.column.html +3 -3
  451. data/manual/html/work.html +3 -3
  452. data/manual/html/workinghours.project.html +3 -3
  453. data/manual/html/workinghours.resource.html +3 -3
  454. data/manual/html/workinghours.shift.html +3 -3
  455. data/manual/html/yearlyworkingdays.html +4 -4
  456. data/spec/ICalendar_spec.rb +4 -2
  457. data/spec/IntervalList_spec.rb +1 -1
  458. data/spec/ProjectBroker_spec.rb +2 -6
  459. data/spec/StatusSheets_spec.rb +1 -1
  460. data/spec/TernarySearchTree_spec.rb +2 -2
  461. data/spec/TimeSheets_spec.rb +1 -1
  462. data/spec/Tj3Daemon_spec.rb +1 -1
  463. data/spec/Tj3_spec.rb +1 -1
  464. data/spec/support/DaemonControl.rb +1 -1
  465. data/spec/support/spec_helper.rb +19 -0
  466. data/taskjuggler.gemspec +1 -0
  467. data/test/MessageChecker.rb +1 -1
  468. data/test/ReferenceGenerator.rb +1 -1
  469. data/test/TestSuite/CSV-Reports/Leave.tjp +37 -0
  470. data/test/TestSuite/CSV-Reports/celltext.tjp +1 -1
  471. data/test/TestSuite/CSV-Reports/efficiency.tjp +20 -0
  472. data/test/TestSuite/CSV-Reports/headcount.tjp +31 -0
  473. data/test/TestSuite/CSV-Reports/refs/Leave.csv +5 -0
  474. data/test/TestSuite/CSV-Reports/refs/alert.csv +6 -0
  475. data/test/TestSuite/CSV-Reports/refs/celltext.csv +6 -0
  476. data/test/TestSuite/CSV-Reports/refs/efficiency.csv +5 -0
  477. data/test/TestSuite/CSV-Reports/refs/headcount.csv +4 -0
  478. data/test/TestSuite/CSV-Reports/refs/sortByTree.csv +6 -0
  479. data/test/TestSuite/CSV-Reports/refs/sortBy_duration.down.csv +6 -0
  480. data/test/TestSuite/CSV-Reports/refs/sortBy_effort.up.csv +6 -0
  481. data/test/TestSuite/CSV-Reports/refs/sortBy_plan.start.down.csv +6 -0
  482. data/test/TestSuite/CSV-Reports/refs/taskreport.csv +6 -0
  483. data/test/TestSuite/CSV-Reports/refs/taskreport_with_resources.csv +14 -0
  484. data/test/TestSuite/CSV-Reports/resourcereport.tjp +1 -1
  485. data/test/TestSuite/CSV-Reports/resourcereport_with_tasks.tjp +1 -1
  486. data/test/TestSuite/CSV-Reports/sortByTree.tjp +1 -1
  487. data/test/TestSuite/CSV-Reports/sortBy_plan.start.down.tjp +1 -1
  488. data/test/TestSuite/CSV-Reports/taskreport.tjp +1 -1
  489. data/test/TestSuite/CSV-Reports/taskreport_with_resources.tjp +1 -1
  490. data/test/TestSuite/Export-Reports/refs/AccountReport.tjp +1089 -0
  491. data/test/TestSuite/Export-Reports/refs/AlertLevels.tjp +24 -0
  492. data/test/TestSuite/Export-Reports/refs/Complete.tjp +5 -25
  493. data/test/TestSuite/Export-Reports/refs/navigator.tjp +58 -0
  494. data/test/TestSuite/Export-Reports/refs/template.tjp +142 -0
  495. data/test/TestSuite/Export-Reports/refs/textreport.tjp +19 -0
  496. data/test/TestSuite/ReportGenerator/Correct/Alerts.tjp +26 -7
  497. data/test/TestSuite/ReportGenerator/Correct/refs/Alerts-1.csv +177 -141
  498. data/test/TestSuite/ReportGenerator/Correct/refs/FTE-1.csv +1 -1
  499. data/test/TestSuite/Scheduler/Correct/Allocate.tjp +2 -2
  500. data/test/TestSuite/Scheduler/Correct/Shift2.tjp +4 -4
  501. data/test/TestSuite/Syntax/Correct/Account.tjp +23 -10
  502. data/test/TestSuite/Syntax/Correct/AccountReport.tjp +74 -0
  503. data/test/TestSuite/Syntax/Correct/AdoptedTasks.tjp +4 -0
  504. data/test/TestSuite/Syntax/Correct/AlertLevels.tjp +25 -0
  505. data/test/TestSuite/Syntax/Correct/Celltext.tjp +3 -3
  506. data/test/TestSuite/Syntax/Correct/Complete.tjp +8 -5
  507. data/test/TestSuite/Syntax/Correct/Leave.tjp +37 -0
  508. data/test/TestSuite/Syntax/Correct/Reports.tjp +4 -4
  509. data/test/TestSuite/Syntax/Correct/Shift.tjp +4 -4
  510. data/test/TestSuite/Syntax/Correct/manual2example.rb +4 -3
  511. data/test/TestSuite/Syntax/Correct/navigator.tjp +31 -0
  512. data/test/TestSuite/Syntax/Correct/template.tjp +338 -0
  513. data/test/TestSuite/Syntax/Correct/textreport.tjp +21 -0
  514. data/test/TestSuite/Syntax/Correct/tutorial.tjp +12 -10
  515. data/test/TestSuite/Syntax/Errors/{adopt_duplicate_child.tjp → adopt_duplicate_child-1.tjp} +0 -0
  516. data/test/TestSuite/Syntax/Errors/{adopt_common_root.tjp → adopt_duplicate_child-2.tjp} +1 -1
  517. data/test/TestSuite/Syntax/Errors/{adopt_duplicate_parent.tjp → adopt_duplicate_child-3.tjp} +1 -1
  518. data/test/TestSuite/Syntax/Errors/adopt_self.tjp +7 -0
  519. data/test/TestSuite/Syntax/Errors/alert_level_redef.tjp +8 -0
  520. data/test/TestSuite/Syntax/Errors/alert_name_redef.tjp +8 -0
  521. data/test/TestSuite/Syntax/Errors/too_few_alert_levels.tjp +5 -0
  522. data/test/TjpGen.rb +1 -1
  523. data/test/all.rb +1 -1
  524. data/test/test_AlgorithmDiff.rb +1 -1
  525. data/test/test_BatchProcessor.rb +23 -10
  526. data/test/test_CSV-Reports.rb +1 -1
  527. data/test/test_CSVFile.rb +1 -1
  528. data/test/test_CollisionDetector.rb +1 -1
  529. data/test/test_Export-Reports.rb +1 -1
  530. data/test/test_Journal.rb +42 -15
  531. data/test/test_Limits.rb +1 -1
  532. data/test/test_LogicalExpression.rb +1 -1
  533. data/test/test_MacroTable.rb +8 -3
  534. data/test/test_Project.rb +1 -1
  535. data/test/test_ProjectFileScanner.rb +1 -1
  536. data/test/test_PropertySet.rb +1 -1
  537. data/test/test_Query.rb +1 -1
  538. data/test/test_RealFormat.rb +1 -1
  539. data/test/test_ReportGenerator.rb +1 -1
  540. data/test/test_RichText.rb +1 -1
  541. data/test/test_Scheduler.rb +1 -1
  542. data/test/test_ShiftAssignments.rb +1 -1
  543. data/test/test_SimpleQueryExpander.rb +1 -1
  544. data/test/test_Syntax.rb +1 -1
  545. data/test/test_TextFormatter.rb +1 -1
  546. data/test/test_TjTime.rb +1 -1
  547. data/test/test_TjpExample.rb +1 -1
  548. data/test/test_URLParameter.rb +1 -1
  549. data/test/test_UTF8String.rb +1 -1
  550. data/test/test_WorkingHours.rb +1 -1
  551. data/test/test_deep_copy.rb +1 -1
  552. metadata +318 -248
  553. data/test/TestSuite/Syntax/Errors/purge_no_list.tjp +0 -8
@@ -1,4 +1,4 @@
1
- "Name";""
1
+ "Name";"FTE"
2
2
  "Team";1.5
3
3
  " A";0.5
4
4
  " B";1.0
@@ -95,8 +95,8 @@ task inheritedAllocs "Inherited Allocations" {
95
95
 
96
96
  task allocShift "Allocation Shift" {
97
97
  effort 10d
98
- allocate r3 { shift mowefr 2007-09-01 +1w },
99
- r4 { shift tuthsa 2007-09-01 +1w }
98
+ allocate r3 { shifts mowefr 2007-09-01 +1w },
99
+ r4 { shifts tuthsa 2007-09-01 +1w }
100
100
  ${Fixend "2007-09-11-14:00"}
101
101
  }
102
102
 
@@ -3,7 +3,7 @@ project "Shift2" 2010-02-06 +1w
3
3
  include "checks.tji"
4
4
 
5
5
  shift s2 "s2" {
6
- replace
6
+ replace
7
7
  workinghours mon - fri 8:00 - 16:00
8
8
  }
9
9
 
@@ -29,7 +29,7 @@ task "T1" {
29
29
  }
30
30
 
31
31
  resource r2 "r2" {
32
- shift s2 2010-02-08 +1w
32
+ shifts s2 2010-02-08 +1w
33
33
  }
34
34
 
35
35
  task "T2" {
@@ -39,7 +39,7 @@ task "T2" {
39
39
  }
40
40
 
41
41
  resource r3 "r3" {
42
- shift s3 2010-02-08 +1w
42
+ shifts s3 2010-02-08 +1w
43
43
  }
44
44
 
45
45
  task "T3" {
@@ -49,7 +49,7 @@ task "T3" {
49
49
  }
50
50
 
51
51
  resource r4 "r4" {
52
- shift s4 2010-02-08 +1w
52
+ shifts s4 2010-02-08 +1w
53
53
  }
54
54
 
55
55
  task "T4" {
@@ -6,9 +6,12 @@ project simple "Simple Project" "1.0" 2007-01-01 - 2007-01-30 {
6
6
  # *** EXAMPLE: 1 +
7
7
  account project_cost "Project Costs"
8
8
  account payments "Customer Payments"{
9
- credit 2007-01-08 "Customer down payment" 500.0
9
+ credits 2007-01-01 "Customer down payment" 500.0,
10
+ 2007-01-14 "1st rate" 2000.0
10
11
  }
11
12
 
13
+ balance project_cost payments
14
+
12
15
  resource tux "Tux" {
13
16
  rate 300
14
17
  }
@@ -19,11 +22,11 @@ resource konqui "Konqui" {
19
22
  task items "Room decoration" {
20
23
  start 2007-01-06
21
24
  # The default account for all tasks
22
- account project_cost
25
+ chargeset project_cost
23
26
 
24
27
  task plan "Plan work and buy material" {
25
28
  # Upfront material cost
26
- startcredit 500.0
29
+ charge 500.0 onstart
27
30
  length 2d
28
31
  }
29
32
  task remove "Remove old inventory" {
@@ -40,15 +43,25 @@ task items "Room decoration" {
40
43
  task acceptance "Presentation and customer acceptance" {
41
44
  duration 5d
42
45
  depends !implement
43
- account payments
46
+ chargeset payments
44
47
  # Customer pays at end of acceptance
45
- endcredit 2000.0
48
+ charge 2000.0 onend
46
49
  }
47
50
  }
48
51
  # *** EXAMPLE: 1 -
49
52
 
50
- # accountreport pandl "PAndL.html" {
51
- # timeformat "%d-%M-%y"
52
- # accumulate
53
- # columns index, name, weekly
54
- # }
53
+ accountreport "Account-1" {
54
+ formats html
55
+ timeformat "%d-%M-%y"
56
+ columns index, name, weekly
57
+ }
58
+
59
+ accountreport "Account-2" {
60
+ formats html
61
+ timeformat "%d-%M-%y"
62
+ columns index,
63
+ name,
64
+ weekly {
65
+ celltext 1 "<-query attribute='turnover'->"
66
+ }
67
+ }
@@ -0,0 +1,74 @@
1
+ project "AccountReport" 2011-11-09 +1y {
2
+ currencyformat "(" ")" "," "." 0
3
+ }
4
+
5
+ account resourceCost "Resource Cost" {
6
+ aggregate resources
7
+ account teamA "Team A"
8
+ account teamB "Team B"
9
+ }
10
+ account productCost "Product Cost" {
11
+ aggregate tasks
12
+ }
13
+ account customerPayments "Customer Payments" {
14
+ credits 2011-12-01 "First downpayment" 80000,
15
+ 2012-06-01 "Second downpayment" 200000
16
+ }
17
+
18
+ balance productCost customerPayments
19
+
20
+ resource teamA "Team A" {
21
+ rate 420
22
+ chargeset teamA
23
+ resource "R1"
24
+ resource "R2"
25
+ }
26
+ resource teamB "Team B" {
27
+ rate 380
28
+ chargeset teamB
29
+ resource "R3"
30
+ resource "R4"
31
+ }
32
+
33
+ task "Products" {
34
+ chargeset productCost
35
+
36
+ task p1 "Product 1" {
37
+ effort 20m
38
+ allocate teamA, teamB
39
+ }
40
+ task p2 "Product 2" {
41
+ effort 18m
42
+ allocate teamA
43
+ priority 600
44
+ }
45
+ task p3 "Product 3" {
46
+ effort 6m
47
+ allocate teamB
48
+ priority 600
49
+ }
50
+ task mf "Manufacturing" {
51
+ depends !p1, !p2, !p3
52
+ duration 2w
53
+ charge 12000 onend
54
+ }
55
+ task "Final Payment" {
56
+ depends !mf
57
+ purge chargeset
58
+ chargeset customerPayments
59
+ charge 170000 onstart
60
+ }
61
+ }
62
+
63
+ accountreport "TeamBudget" {
64
+ formats html
65
+ accountroot resourceCost
66
+ balance -
67
+ columns no, name, quarterly { celltext 1 "<-query attribute='turnover'->" }
68
+ }
69
+
70
+ accountreport "ProfiAndLoss" {
71
+ formats html
72
+ columns no, name, monthly
73
+ }
74
+
@@ -7,3 +7,7 @@ task t3 "T3" {
7
7
  adopt t1, t2
8
8
  }
9
9
 
10
+ taskreport "AdoptedTasks" {
11
+ formats html
12
+ columns no, bsi, index, name
13
+ }
@@ -0,0 +1,25 @@
1
+ project "Alert Levels" 2011-11-24 +2m {
2
+ alertlevels green "Low" "#2AA46C",
3
+ blue "Guarded" "#457CC4",
4
+ yellow "Elevated" "#F1D821",
5
+ orange "High" "#F99836",
6
+ red "Severe" "#E43745"
7
+ }
8
+
9
+ task "Holiday Season" {
10
+ journalentry 2011-11-24 "All safe unless you are a turkey" {
11
+ alert green
12
+ }
13
+ journalentry 2011-11-27 "Strange lights appearing everywhere" {
14
+ alert blue
15
+ }
16
+ journalentry 2011-12-01 "Alarm bells heared" {
17
+ alert yellow
18
+ }
19
+ journalentry 2011-12-20 "Everybody has strange packages" {
20
+ alert orange
21
+ }
22
+ journalentry 2011-12-25 "Guy with red coat entered through chimney" {
23
+ alert red
24
+ }
25
+ }
@@ -16,19 +16,19 @@ task t "Task" {
16
16
  # Just a very basic report with some standard columns
17
17
  taskreport simple "SimpleReport" {
18
18
  formats html
19
- columns hierarchindex, name, start, end, weekly
19
+ columns bsi, name, start, end, weekly
20
20
  }
21
21
 
22
22
  # Report with custom colum title
23
23
  taskreport custom "CustomTitle" {
24
24
  formats html
25
- columns hierarchindex, name { title "Work Item" }, effort
25
+ columns bsi, name { title "Work Item" }, effort
26
26
  }
27
27
 
28
28
  # *** EXAMPLE: 1 +
29
29
  # Report with index and task name combined in one single column
30
30
  taskreport combined "CombinedColumn" {
31
31
  formats html
32
- columns name { celltext 1 "<-query attribute='wbs'-> <-query->"},
32
+ columns name { celltext 1 "<-query attribute='bsi'-> <-query->"},
33
33
  start, end, weekly
34
34
  }
@@ -1,17 +1,20 @@
1
- project simple "Simple Project" "1.0" 2007-01-01 - 2007-01-30 {
1
+ project simple "Simple Project" "1.0" 2007-01-01 +2m {
2
2
  timezone "America/Denver"
3
3
  now 2007-01-15
4
4
  }
5
5
 
6
6
  # *** EXAMPLE: 1 +
7
- resource tux "Tux"
8
7
 
9
- task t "Task" {
8
+ task "Build house" {
10
9
  start 2007-01-06
11
- effort 10d
12
- allocate tux
10
+ duration 30d
13
11
  # This task should have been completed on Jan 15, but only
14
12
  # 20% of the task have been completed so far.
15
13
  complete 20
16
14
  }
17
15
 
16
+ taskreport "Complete" {
17
+ formats html
18
+ columns name, end { title "Due date" }, complete, gauge, chart
19
+ }
20
+
@@ -0,0 +1,37 @@
1
+ project "Annual Leave" 2011-12-19 +1y {
2
+ now 2012-07-01
3
+ }
4
+
5
+ leaves holiday "Christmas" 2011-12-24 +3d,
6
+ holiday "New Year" 2011-12-31 +3d
7
+
8
+ shift s1 "Shift 1" {
9
+ leaves annual 2011-12-19 +3w,
10
+ special 2012-01-12 +1d
11
+ }
12
+
13
+ resource team "Team" {
14
+ leaveallowances annual 2011-12-19 20d
15
+ leaves holiday 2012-01-06
16
+
17
+ resource r1 "R1" {
18
+ leaves annual 2011-12-19 +3w,
19
+ special 2012-01-12 +1d
20
+ }
21
+ resource r2 "R2" {
22
+ leaveallowances annual 2012-06-01 -10d
23
+ leaves sick 2012-01-04 +2d,
24
+ unpaid 2012-01-10 +3d
25
+ }
26
+ }
27
+ resource r3 "R3" {
28
+ shift s1 2011-12-19 +3w
29
+ leaves sick 2012-01-04 +2d
30
+ }
31
+
32
+ task "foo"
33
+
34
+ resourcereport "." {
35
+ formats html
36
+ columns name, annualleave, annualleavebalance, sickleave, specialleave, unpaidleave
37
+ }
@@ -20,7 +20,7 @@ account a2 "FooAccount 2" {
20
20
  }
21
21
 
22
22
  task t1 "FooTask1" {
23
- account a4
23
+ chargeset a4
24
24
  task t1_1 "FooTask1_1" {
25
25
  flags flag2
26
26
  start 2000-01-01
@@ -35,8 +35,8 @@ task t2 "FooTask2" {
35
35
  flags flag1
36
36
  start 2000-01-01
37
37
  duration 1d
38
- startcredit 10000.0
39
- account a4
38
+ chargeset a4
39
+ charge 10000.0 onstart
40
40
  }
41
41
 
42
42
  task t3 "FooTask3" {
@@ -48,7 +48,7 @@ task t3 "FooTask3" {
48
48
  taskreport task "Report_task" {
49
49
  formats html
50
50
  balance a1 a2
51
- columns hierarchindex, name { title "Task Name" }, daily, effort
51
+ columns bsi, name { title "Task Name" }, daily, effort
52
52
  sorttasks tree, plan.start.up, name.up
53
53
  }
54
54
 
@@ -16,8 +16,8 @@ shift s1 "Shift1" {
16
16
  }
17
17
 
18
18
  resource r1 "Resource1" {
19
- shift s1 2000-01-01 - 2000-01-10
20
- shift s2 2000-01-11 - 2000-01-20
19
+ shifts s1 2000-01-01 - 2000-01-10,
20
+ s2 2000-01-11 - 2000-01-20
21
21
  }
22
22
 
23
23
  shift s3 "Part-time schedule 1" {
@@ -46,9 +46,9 @@ shift s5 "All-day, all-week shift" {
46
46
  # Now determine when these schedules are applicable
47
47
  resource r2 "Resource2" {
48
48
  # r2 works three days a week from January to June
49
- shift s3 2005-01-01 - 2005-01-15
49
+ shifts s3 2005-01-01 - 2005-01-15,
50
50
  # r2 switches to two days a week
51
- shift s4 2005-01-15 - 2006-01-01
51
+ s4 2005-01-15 - 2006-01-01
52
52
  }
53
53
 
54
54
  task t1 "Task1" {
@@ -10,8 +10,8 @@
10
10
  # published by the Free Software Foundation.
11
11
  #
12
12
 
13
- def removeTags(fileName)
14
- oFile = File.open('../../../../examples/' + fileName, 'w')
13
+ def removeTags(fileName, destDir)
14
+ oFile = File.open("../../../../examples/#{destDir}/#{fileName}", 'w')
15
15
  File.open(fileName, 'r') do |iFile|
16
16
  while line = iFile.gets
17
17
  oFile.puts line unless line =~ /^# \*\*\* EXAMPLE:/
@@ -20,5 +20,6 @@ def removeTags(fileName)
20
20
  oFile.close
21
21
  end
22
22
 
23
- removeTags('tutorial.tjp')
23
+ removeTags('tutorial.tjp', 'Tutorial')
24
+ removeTags('template.tjp', 'ProjectTemplate')
24
25
 
@@ -0,0 +1,31 @@
1
+ project "Navigator Example" 2011-12-12 +1m
2
+
3
+ task foo "Foo" {
4
+ task "Foo 1"
5
+ task "Foo 2"
6
+ }
7
+ task bar "Bar" {
8
+ task "Bar 1"
9
+ task "Bar 2"
10
+ }
11
+
12
+
13
+ navigator navbar
14
+
15
+ textreport frame "" {
16
+ header -8<-
17
+ == My Reports ==
18
+ <[navigator id="navbar"]>
19
+ ->8-
20
+ footer "----"
21
+
22
+ taskreport "Foo Reports" {
23
+ formats html
24
+ taskroot foo
25
+ }
26
+ taskreport "Bar Reports" {
27
+ formats html
28
+ taskroot bar
29
+ }
30
+ }
31
+
@@ -0,0 +1,338 @@
1
+ /*
2
+ * This file contains a project skeletton. It is part of the
3
+ * TaskJuggler project management tool. You can use this as a basis to
4
+ * start you own project file.
5
+ */
6
+ project your_project_id "Your Project Title" 2011-11-11-0:00--0500 +4m {
7
+ # Set the default time zone for the project. If not specified, UTC
8
+ # is used.
9
+ timezone "America/New_York"
10
+ # Hide the clock time. Only show the date.
11
+ timeformat "%Y-%m-%d"
12
+ # Use US format for numbers
13
+ numberformat "-" "" "," "." 1
14
+ # Use US financial format for currency values. Don't show cents.
15
+ currencyformat "(" ")" "," "." 0
16
+ # Pick a day during the project that will be reported as 'today' in
17
+ # the project reports. If not specified, the current day will be
18
+ # used, but this will likely be outside of the project range, so it
19
+ # can't be seen in the reports.
20
+ now 2011-12-24
21
+ # The currency for all money values is the Euro.
22
+ currency "USD"
23
+
24
+ # You can define multiple scenarios here if you need them.
25
+ #scenario plan "Plan" {
26
+ # scenario actual "Actual"
27
+ #}
28
+
29
+ # You can define your own attributes for tasks and resources. This
30
+ # is handy to capture additonal information about the project that
31
+ # is not directly impacting the project schedule but you like to
32
+ # keep in one place.
33
+ #extend task {
34
+ # reference spec "Link to Wiki page"
35
+ #}
36
+ #extend resource {
37
+ # text Phone "Phone"
38
+ #}
39
+ }
40
+
41
+ copyright "Claim your rights here"
42
+
43
+ # If you have any text block that you need multiple times to describe
44
+ # your project, you should define a macro for it. Macros can even have
45
+ # variable segments that you can set upon calling the macro.
46
+ #
47
+ # macro Task [
48
+ # task "A ${1} task" {
49
+ # }
50
+ # ]
51
+ #
52
+ # Can be called as
53
+ # ${Task "big"}
54
+ # to generate
55
+ # task "A big task" {
56
+ # }
57
+
58
+ # You can attach flags to accounts, resources and tasks. These can be
59
+ # used to filter out subsets of them during reporting.
60
+ flags important, hidden
61
+
62
+ # If you want to do budget planning for you project, you need to
63
+ # define some accounts.
64
+ account cost "Project Cost" {
65
+ account dev "Development"
66
+ account doc "Documentation"
67
+ }
68
+ account rev "Customer Payments"
69
+
70
+ # The Profit&Loss analysis should be rev - cost accounts.
71
+ balance cost rev
72
+
73
+ # Define you public holidays here.
74
+ vacation "New Year's Day" 2012-01-02
75
+ vacation "Birthday of Martin Luther King, Jr." 2012-01-16
76
+ vacation "Washington's Birthday" 2012-02-20
77
+ vacation "Memorial Day" 2012-05-28
78
+ vacation "Independence Day" 2012-07-04
79
+ vacation "Labor Day" 2012-09-03
80
+ vacation "Columbus Day" 2012-10-08
81
+ vacation "Veterans Day" 2012-11-12
82
+ vacation "Thanksgiving Day" 2012-11-22
83
+ vacation "Christmas Day" 2012-12-25
84
+
85
+ # The daily default rate of all resources. This can be overridden for each
86
+ # resource. We specify this, so that we can do a good calculation of
87
+ # the costs of the project.
88
+ rate 400.0
89
+
90
+ # This is a set of example resources.
91
+ resource r1 "Resource 1"
92
+ resource t1 "Team 1" {
93
+ managers r1
94
+ resource r2 "Resource 2"
95
+ resource r3 "Resource 3"
96
+ }
97
+
98
+ # This is a resource that does not do any work.
99
+ resource s1 "System 1" {
100
+ efficiency 0.0
101
+ rate 600.0
102
+ }
103
+
104
+ task project "Project" {
105
+ task wp1 "Workpackage 1" {
106
+ task t1 "Task 1"
107
+ task t2 "Task 2"
108
+ }
109
+ task wp2 "Work package 2" {
110
+ depends !wp1
111
+ task t1 "Task 1"
112
+ task t2 "Task 2"
113
+ }
114
+ task deliveries "Deliveries" {
115
+ task "Item 1" {
116
+ depends !!wp1
117
+ }
118
+ task "Item 2" {
119
+ depends !!wp2
120
+ }
121
+ }
122
+ }
123
+
124
+ # Now the project has been specified completely. Stopping here would
125
+ # result in a valid TaskJuggler file that could be processed and
126
+ # scheduled. But no reports would be generated to visualize the
127
+ # results.
128
+
129
+ navigator navbar {
130
+ hidereport 0
131
+ }
132
+
133
+ macro TaskTip [
134
+ tooltip istask() -8<-
135
+ '''Start: ''' <-query attribute='start'->
136
+ '''End: ''' <-query attribute='end'->
137
+ ----
138
+ '''Resources:'''
139
+
140
+ <-query attribute='resources'->
141
+ ----
142
+ '''Precursors: '''
143
+
144
+ <-query attribute='precursors'->
145
+ ----
146
+ '''Followers: '''
147
+
148
+ <-query attribute='followers'->
149
+ ->8-
150
+ ]
151
+
152
+ textreport frame "" {
153
+ header -8<-
154
+ == TaskJuggler Project Template ==
155
+ <[navigator id="navbar"]>
156
+ ->8-
157
+ footer "----"
158
+ textreport index "Overview" {
159
+ formats html
160
+ center '<[report id="overview"]>'
161
+ }
162
+
163
+ textreport "Status" {
164
+ formats html
165
+ center -8<-
166
+ <[report id="status.dashboard"]>
167
+ ----
168
+ <[report id="status.completed"]>
169
+ ----
170
+ <[report id="status.ongoing"]>
171
+ ----
172
+ <[report id="status.future"]>
173
+ ->8-
174
+ }
175
+
176
+ textreport wps "Work packages" {
177
+ textreport wp1 "Work package 1" {
178
+ formats html
179
+ center '<[report id="wp1"]>'
180
+ }
181
+
182
+ textreport wp2 "Work package 2" {
183
+ formats html
184
+ center '<[report id="wp2"]>'
185
+ }
186
+ }
187
+
188
+ textreport "Deliveries" {
189
+ formats html
190
+ center '<[report id="deliveries"]>'
191
+ }
192
+
193
+ textreport "ContactList" {
194
+ formats html
195
+ title "Contact List"
196
+ center '<[report id="contactList"]>'
197
+ }
198
+ textreport "ResourceGraph" {
199
+ formats html
200
+ title "Resource Graph"
201
+ center '<[report id="resourceGraph"]>'
202
+ }
203
+ }
204
+
205
+ # A traditional Gantt chart with a project overview.
206
+ taskreport overview "" {
207
+ header -8<-
208
+ === Project Overview ===
209
+
210
+ The project is structured into 2 work packages.
211
+
212
+ # Specification
213
+ # <-reportlink id='frame.wps.wp1'->
214
+ # <-reportlink id='frame.wps.wp2'->
215
+ # Testing
216
+
217
+ === Original Project Plan ===
218
+ ->8-
219
+ columns bsi { title 'WBS' },
220
+ name, start, end, effort, cost,
221
+ revenue, chart { ${TaskTip} }
222
+ # For this report we like to have the abbreviated weekday in front
223
+ # of the date. %a is the tag for this.
224
+ timeformat "%a %Y-%m-%d"
225
+ loadunit days
226
+ hideresource 1
227
+ balance cost rev
228
+ caption 'All effort values are in man days.'
229
+
230
+ footer -8<-
231
+ === Staffing ===
232
+
233
+ All project phases are properly staffed. See [[ResourceGraph]] for
234
+ detailed resource allocations.
235
+
236
+ === Current Status ===
237
+
238
+ Some blurb about the current situation.
239
+ ->8-
240
+ }
241
+
242
+ # Macro to set the background color of a cell according to the alert
243
+ # level of the task.
244
+ macro AlertColor [
245
+ cellcolor plan.alert = 0 "#00D000" # green
246
+ cellcolor plan.alert = 1 "#D0D000" # yellow
247
+ cellcolor plan.alert = 2 "#D00000" # red
248
+ ]
249
+
250
+ taskreport status "" {
251
+ columns bsi { width 50 title 'WBS' }, name { width 150 },
252
+ start { width 100 }, end { width 100 },
253
+ effort { width 100 },
254
+ alert { tooltip plan.journal
255
+ != '' "<-query attribute='journal'->" width 150 },
256
+ status { width 150 }
257
+
258
+ taskreport dashboard "" {
259
+ headline "Project Dashboard (<-query attribute='now'->)"
260
+ columns name { title "Task" ${AlertColor} width 200},
261
+ resources { width 200 ${AlertColor}
262
+ listtype bullets
263
+ listitem "<-query attribute='name'->"
264
+ start ${projectstart} end ${projectend} },
265
+ alerttrend { title "Trend" ${AlertColor} width 50 },
266
+ journal { width 350 ${AlertColor} }
267
+ journalmode status_up
268
+ journalattributes headline, author, date, summary, details
269
+ hidetask ~hasalert(0)
270
+ sorttasks alert.down, plan.end.up
271
+ period %{${now} - 1w} +1w
272
+ }
273
+ taskreport completed "" {
274
+ headline "Already completed tasks"
275
+ hidetask ~(plan.end <= ${now})
276
+ }
277
+ taskreport ongoing "" {
278
+ headline "Ongoing tasks"
279
+ hidetask ~((plan.start <= ${now}) & (plan.end > ${now}))
280
+ }
281
+ taskreport future "" {
282
+ headline "Future tasks"
283
+ hidetask ~(plan.start > ${now})
284
+ }
285
+ }
286
+
287
+ # A list of tasks showing the resources assigned to each task.
288
+ taskreport wp1 "" {
289
+ headline "Work package 1 - Resource Allocation Report"
290
+ columns bsi { title 'WBS' }, name, start, end, effort { title "Work" },
291
+ duration, chart { ${TaskTip} scale day width 500 }
292
+ timeformat "%Y-%m-%d"
293
+ hideresource ~(isleaf() & isleaf_())
294
+ sortresources name.up
295
+ taskroot project.wp1
296
+ }
297
+ # A list of tasks showing the resources assigned to each task.
298
+ taskreport wp2 "" {
299
+ headline "Work package 2 - Resource Allocation Report"
300
+ columns bsi { title 'WBS' }, name, start, end, effort { title "Work" },
301
+ duration, chart { ${TaskTip} scale day width 500 }
302
+ timeformat "%Y-%m-%d"
303
+ hideresource ~(isleaf() & isleaf_())
304
+ sortresources name.up
305
+ taskroot project.wp2
306
+ }
307
+
308
+ # A list of all tasks with the percentage completed for each task
309
+ taskreport deliveries "" {
310
+ headline "Project Deliverables"
311
+ columns bsi { title 'WBS' }, name, start, end, note { width 150 }, complete,
312
+ chart { ${TaskTip} }
313
+ taskroot project.deliveries
314
+ hideresource 1
315
+ }
316
+ # A list of all employees with their contact details.
317
+ resourcereport contactList "" {
318
+ headline "Contact list and duty plan"
319
+ columns name,
320
+ email { celltext 1 "[mailto:<-email-> <-email->]" },
321
+ managers { title "Manager" },
322
+ chart { scale day }
323
+ hideresource ~isleaf()
324
+ sortresources name.up
325
+ hidetask 1
326
+ }
327
+
328
+ # A graph showing resource allocation. It identifies whether each
329
+ # resource is under- or over-allocated for.
330
+ resourcereport resourceGraph "" {
331
+ headline "Resource Allocation Graph"
332
+ columns no, name, effort, rate, weekly { ${TaskTip} }
333
+ loadunit shortauto
334
+ # We only like to show leaf tasks for leaf resources.
335
+ hidetask ~(isleaf() & isleaf_())
336
+ sorttasks plan.start.up
337
+ }
338
+