taskjuggler 0.0.11 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (697) hide show
  1. data/CHANGELOG +6 -1550
  2. data/benchmarks/UTF-8-Strings.rb +58 -0
  3. data/benchmarks/profile.clt +36082 -0
  4. data/benchmarks/profile.html +58182 -0
  5. data/benchmarks/runbench.rb +2 -2
  6. data/data/css/tjmanual.css +0 -1
  7. data/doc/AppConfig.html +1491 -0
  8. data/doc/CHANGELOG.html +557 -0
  9. data/doc/COPYING.html +899 -0
  10. data/doc/Diff.html +1193 -0
  11. data/doc/Diff/Hunk.html +1026 -0
  12. data/doc/Diffable.html +684 -0
  13. data/doc/DiffableString.html +684 -0
  14. data/doc/Object.html +720 -0
  15. data/doc/README_rdoc.html +742 -0
  16. data/doc/RuntimeConfig.html +856 -0
  17. data/doc/String.html +1005 -0
  18. data/doc/TaskJuggler.html +2639 -0
  19. data/doc/TaskJuggler/Account.html +753 -0
  20. data/doc/TaskJuggler/AccountAttribute.html +769 -0
  21. data/doc/TaskJuggler/AccountScenario.html +712 -0
  22. data/doc/TaskJuggler/Allocation.html +963 -0
  23. data/doc/TaskJuggler/AllocationAttribute.html +799 -0
  24. data/doc/TaskJuggler/AttributeBase.html +1328 -0
  25. data/doc/TaskJuggler/AttributeDefinition.html +815 -0
  26. data/doc/TaskJuggler/AttributeOverwrite.html +606 -0
  27. data/doc/TaskJuggler/BatchProcessor.html +1178 -0
  28. data/doc/TaskJuggler/Booking.html +859 -0
  29. data/doc/TaskJuggler/BookingListAttribute.html +769 -0
  30. data/doc/TaskJuggler/BooleanAttribute.html +769 -0
  31. data/doc/TaskJuggler/CSVFile.html +1128 -0
  32. data/doc/TaskJuggler/CellSettingPattern.html +700 -0
  33. data/doc/TaskJuggler/CellSettingPatternList.html +749 -0
  34. data/doc/TaskJuggler/Charge.html +777 -0
  35. data/doc/TaskJuggler/ChargeListAttribute.html +733 -0
  36. data/doc/TaskJuggler/ChargeSet.html +949 -0
  37. data/doc/TaskJuggler/ChargeSetListAttribute.html +778 -0
  38. data/doc/TaskJuggler/CollisionDetector.html +1089 -0
  39. data/doc/TaskJuggler/ColumnListAttribute.html +733 -0
  40. data/doc/TaskJuggler/ColumnTable.html +763 -0
  41. data/doc/TaskJuggler/Daemon.html +819 -0
  42. data/doc/TaskJuggler/DataCache.html +1025 -0
  43. data/doc/TaskJuggler/DataCacheEntry.html +737 -0
  44. data/doc/TaskJuggler/DateAttribute.html +737 -0
  45. data/doc/TaskJuggler/DefinitionListAttribute.html +655 -0
  46. data/doc/TaskJuggler/DependencyListAttribute.html +773 -0
  47. data/doc/TaskJuggler/DurationAttribute.html +770 -0
  48. data/doc/TaskJuggler/FileList.html +793 -0
  49. data/doc/TaskJuggler/FileRecord.html +702 -0
  50. data/doc/TaskJuggler/FixnumAttribute.html +691 -0
  51. data/doc/TaskJuggler/FlagListAttribute.html +769 -0
  52. data/doc/TaskJuggler/FloatAttribute.html +733 -0
  53. data/doc/TaskJuggler/FormatListAttribute.html +697 -0
  54. data/doc/TaskJuggler/GanttChart.html +1487 -0
  55. data/doc/TaskJuggler/GanttContainer.html +945 -0
  56. data/doc/TaskJuggler/GanttHeader.html +948 -0
  57. data/doc/TaskJuggler/GanttHeaderScaleItem.html +762 -0
  58. data/doc/TaskJuggler/GanttLine.html +1325 -0
  59. data/doc/TaskJuggler/GanttLoadStack.html +828 -0
  60. data/doc/TaskJuggler/GanttMilestone.html +926 -0
  61. data/doc/TaskJuggler/GanttRouter.html +1136 -0
  62. data/doc/TaskJuggler/GanttTaskBar.html +948 -0
  63. data/doc/TaskJuggler/HTMLDocument.html +754 -0
  64. data/doc/TaskJuggler/HTMLElements.html +599 -0
  65. data/doc/TaskJuggler/HTMLGraphics.html +837 -0
  66. data/doc/TaskJuggler/Interval.html +1076 -0
  67. data/doc/TaskJuggler/IntervalList.html +797 -0
  68. data/doc/TaskJuggler/IntervalListAttribute.html +773 -0
  69. data/doc/TaskJuggler/JobInfo.html +943 -0
  70. data/doc/TaskJuggler/Journal.html +1248 -0
  71. data/doc/TaskJuggler/JournalEntry.html +860 -0
  72. data/doc/TaskJuggler/JournalEntryList.html +1229 -0
  73. data/doc/TaskJuggler/KeywordArray.html +696 -0
  74. data/doc/TaskJuggler/KeywordDocumentation.html +2250 -0
  75. data/doc/TaskJuggler/Limits.html +1036 -0
  76. data/doc/TaskJuggler/Limits/Limit.html +947 -0
  77. data/doc/TaskJuggler/LimitsAttribute.html +734 -0
  78. data/doc/TaskJuggler/ListAttributeBase.html +703 -0
  79. data/doc/TaskJuggler/Log.html +1163 -0
  80. data/doc/TaskJuggler/LogFile.html +980 -0
  81. data/doc/TaskJuggler/LogicalAttribute.html +760 -0
  82. data/doc/TaskJuggler/LogicalExpression.html +801 -0
  83. data/doc/TaskJuggler/LogicalExpressionAttribute.html +691 -0
  84. data/doc/TaskJuggler/LogicalExpressionListAttribute.html +691 -0
  85. data/doc/TaskJuggler/LogicalFlag.html +753 -0
  86. data/doc/TaskJuggler/LogicalFunction.html +1409 -0
  87. data/doc/TaskJuggler/LogicalOperation.html +1144 -0
  88. data/doc/TaskJuggler/ManagerResponsibilities.html +736 -0
  89. data/doc/TaskJuggler/ManagerStatusRecord.html +740 -0
  90. data/doc/TaskJuggler/Message.html +837 -0
  91. data/doc/TaskJuggler/MessageHandler.html +1056 -0
  92. data/doc/TaskJuggler/Navigator.html +943 -0
  93. data/doc/TaskJuggler/NavigatorElement.html +994 -0
  94. data/doc/TaskJuggler/NikuProject.html +724 -0
  95. data/doc/TaskJuggler/NikuReport.html +1470 -0
  96. data/doc/TaskJuggler/NikuResource.html +694 -0
  97. data/doc/TaskJuggler/NodeListAttribute.html +655 -0
  98. data/doc/TaskJuggler/PlaceHolderCell.html +748 -0
  99. data/doc/TaskJuggler/ProcessIntercom.html +1017 -0
  100. data/doc/TaskJuggler/ProcessIntercomIface.html +773 -0
  101. data/doc/TaskJuggler/Project.html +3478 -0
  102. data/doc/TaskJuggler/ProjectBroker.html +1676 -0
  103. data/doc/TaskJuggler/ProjectBrokerIface.html +851 -0
  104. data/doc/TaskJuggler/ProjectFileParser.html +2102 -0
  105. data/doc/TaskJuggler/ProjectFileScanner.html +1896 -0
  106. data/doc/TaskJuggler/ProjectRecord.html +978 -0
  107. data/doc/TaskJuggler/ProjectServer.html +1249 -0
  108. data/doc/TaskJuggler/ProjectServerIface.html +868 -0
  109. data/doc/TaskJuggler/PropertyAttribute.html +691 -0
  110. data/doc/TaskJuggler/PropertyList.html +1399 -0
  111. data/doc/TaskJuggler/PropertySet.html +1796 -0
  112. data/doc/TaskJuggler/PropertyTreeNode.html +2851 -0
  113. data/doc/TaskJuggler/Query.html +1756 -0
  114. data/doc/TaskJuggler/RTFHandlers.html +664 -0
  115. data/doc/TaskJuggler/RTFNavigator.html +792 -0
  116. data/doc/TaskJuggler/RTFQuery.html +1083 -0
  117. data/doc/TaskJuggler/RTFReport.html +820 -0
  118. data/doc/TaskJuggler/RTFReportLink.html +812 -0
  119. data/doc/TaskJuggler/RTFWithQuerySupport.html +702 -0
  120. data/doc/TaskJuggler/RealFormat.html +805 -0
  121. data/doc/TaskJuggler/RealFormatAttribute.html +655 -0
  122. data/doc/TaskJuggler/ReferenceAttribute.html +880 -0
  123. data/doc/TaskJuggler/Report.html +1501 -0
  124. data/doc/TaskJuggler/ReportBase.html +1266 -0
  125. data/doc/TaskJuggler/ReportContext.html +837 -0
  126. data/doc/TaskJuggler/ReportServer.html +1068 -0
  127. data/doc/TaskJuggler/ReportServerIface.html +902 -0
  128. data/doc/TaskJuggler/ReportServerRecord.html +781 -0
  129. data/doc/TaskJuggler/ReportServlet.html +1029 -0
  130. data/doc/TaskJuggler/ReportTable.html +1179 -0
  131. data/doc/TaskJuggler/ReportTableCell.html +1666 -0
  132. data/doc/TaskJuggler/ReportTableColumn.html +890 -0
  133. data/doc/TaskJuggler/ReportTableLegend.html +1060 -0
  134. data/doc/TaskJuggler/ReportTableLine.html +1067 -0
  135. data/doc/TaskJuggler/Resource.html +1004 -0
  136. data/doc/TaskJuggler/ResourceListAttribute.html +829 -0
  137. data/doc/TaskJuggler/ResourceListRE.html +737 -0
  138. data/doc/TaskJuggler/ResourceScenario.html +2549 -0
  139. data/doc/TaskJuggler/RichText.html +879 -0
  140. data/doc/TaskJuggler/RichTextAttribute.html +811 -0
  141. data/doc/TaskJuggler/RichTextDocument.html +1038 -0
  142. data/doc/TaskJuggler/RichTextElement.html +1780 -0
  143. data/doc/TaskJuggler/RichTextFunctionExample.html +799 -0
  144. data/doc/TaskJuggler/RichTextFunctionHandler.html +750 -0
  145. data/doc/TaskJuggler/RichTextImage.html +712 -0
  146. data/doc/TaskJuggler/RichTextIntermediate.html +1285 -0
  147. data/doc/TaskJuggler/RichTextParser.html +868 -0
  148. data/doc/TaskJuggler/RichTextScanner.html +1565 -0
  149. data/doc/TaskJuggler/RichTextSnip.html +1000 -0
  150. data/doc/TaskJuggler/RichTextSyntaxRules.html +2052 -0
  151. data/doc/TaskJuggler/Scenario.html +656 -0
  152. data/doc/TaskJuggler/ScenarioData.html +838 -0
  153. data/doc/TaskJuggler/ScenarioListAttribute.html +733 -0
  154. data/doc/TaskJuggler/Scoreboard.html +1201 -0
  155. data/doc/TaskJuggler/SheetHandlerBase.html +1297 -0
  156. data/doc/TaskJuggler/SheetReceiver.html +1398 -0
  157. data/doc/TaskJuggler/SheetSender.html +1168 -0
  158. data/doc/TaskJuggler/Shift.html +751 -0
  159. data/doc/TaskJuggler/ShiftAssignment.html +1008 -0
  160. data/doc/TaskJuggler/ShiftAssignments.html +1413 -0
  161. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +734 -0
  162. data/doc/TaskJuggler/ShiftScenario.html +782 -0
  163. data/doc/TaskJuggler/SimpleQueryExpander.html +732 -0
  164. data/doc/TaskJuggler/SortListAttribute.html +691 -0
  165. data/doc/TaskJuggler/StatusSheetReceiver.html +678 -0
  166. data/doc/TaskJuggler/StatusSheetReport.html +935 -0
  167. data/doc/TaskJuggler/StatusSheetSender.html +808 -0
  168. data/doc/TaskJuggler/StdIoWrapper.html +696 -0
  169. data/doc/TaskJuggler/StringAttribute.html +733 -0
  170. data/doc/TaskJuggler/SymbolAttribute.html +691 -0
  171. data/doc/TaskJuggler/SyntaxReference.html +1240 -0
  172. data/doc/TaskJuggler/TOCEntry.html +836 -0
  173. data/doc/TaskJuggler/TSResourceRecord.html +732 -0
  174. data/doc/TaskJuggler/TSTaskRecord.html +744 -0
  175. data/doc/TaskJuggler/TableColumnDefinition.html +949 -0
  176. data/doc/TaskJuggler/TableOfContents.html +790 -0
  177. data/doc/TaskJuggler/TableReport.html +2555 -0
  178. data/doc/TaskJuggler/Task.html +890 -0
  179. data/doc/TaskJuggler/TaskDepListAttribute.html +773 -0
  180. data/doc/TaskJuggler/TaskDependency.html +832 -0
  181. data/doc/TaskJuggler/TaskListAttribute.html +773 -0
  182. data/doc/TaskJuggler/TaskListRE.html +736 -0
  183. data/doc/TaskJuggler/TaskScenario.html +5180 -0
  184. data/doc/TaskJuggler/TernarySearchTree.html +1341 -0
  185. data/doc/TaskJuggler/TextFormatter.html +973 -0
  186. data/doc/TaskJuggler/TextParser.html +1862 -0
  187. data/doc/TaskJuggler/TextParser/Macro.html +708 -0
  188. data/doc/TaskJuggler/TextParser/MacroTable.html +832 -0
  189. data/doc/TaskJuggler/TextParser/Pattern.html +1743 -0
  190. data/doc/TaskJuggler/TextParser/Rule.html +1419 -0
  191. data/doc/TaskJuggler/TextParser/Scanner.html +1516 -0
  192. data/doc/TaskJuggler/TextParser/Scanner/BufferStreamHandle.html +661 -0
  193. data/doc/TaskJuggler/TextParser/Scanner/FileStreamHandle.html +727 -0
  194. data/doc/TaskJuggler/TextParser/Scanner/MacroStackEntry.html +724 -0
  195. data/doc/TaskJuggler/TextParser/Scanner/StreamHandle.html +1095 -0
  196. data/doc/TaskJuggler/TextParser/SourceFileInfo.html +760 -0
  197. data/doc/TaskJuggler/TextParser/StackElement.html +940 -0
  198. data/doc/TaskJuggler/TextParser/State.html +1015 -0
  199. data/doc/TaskJuggler/TextParser/StateTransition.html +808 -0
  200. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +711 -0
  201. data/doc/TaskJuggler/TextParser/TokenDoc.html +742 -0
  202. data/doc/TaskJuggler/TextReport.html +921 -0
  203. data/doc/TaskJuggler/TimeSheet.html +1264 -0
  204. data/doc/TaskJuggler/TimeSheetReceiver.html +675 -0
  205. data/doc/TaskJuggler/TimeSheetRecord.html +1415 -0
  206. data/doc/TaskJuggler/TimeSheetReport.html +1013 -0
  207. data/doc/TaskJuggler/TimeSheetSender.html +700 -0
  208. data/doc/TaskJuggler/TimeSheetSummary.html +959 -0
  209. data/doc/TaskJuggler/TimeSheets.html +736 -0
  210. data/doc/TaskJuggler/Tj3.html +857 -0
  211. data/doc/TaskJuggler/Tj3AppBase.html +942 -0
  212. data/doc/TaskJuggler/Tj3Client.html +1510 -0
  213. data/doc/TaskJuggler/Tj3Daemon.html +870 -0
  214. data/doc/TaskJuggler/Tj3Man.html +768 -0
  215. data/doc/TaskJuggler/Tj3SheetAppBase.html +758 -0
  216. data/doc/TaskJuggler/Tj3SsReceiver.html +747 -0
  217. data/doc/TaskJuggler/Tj3SsSender.html +780 -0
  218. data/doc/TaskJuggler/Tj3TsReceiver.html +747 -0
  219. data/doc/TaskJuggler/Tj3TsSender.html +767 -0
  220. data/doc/TaskJuggler/Tj3TsSummary.html +775 -0
  221. data/doc/TaskJuggler/TjException.html +692 -0
  222. data/doc/TaskJuggler/TjRuntimeError.html +606 -0
  223. data/doc/TaskJuggler/TjTime.html +3117 -0
  224. data/doc/TaskJuggler/TjpExample.html +897 -0
  225. data/doc/TaskJuggler/TjpExportRE.html +1772 -0
  226. data/doc/TaskJuggler/TjpSyntaxRules.html +14329 -0
  227. data/doc/TaskJuggler/URLParameter.html +691 -0
  228. data/doc/TaskJuggler/UserManual.html +1224 -0
  229. data/doc/TaskJuggler/VimSyntax.html +1064 -0
  230. data/doc/TaskJuggler/WebServer.html +757 -0
  231. data/doc/TaskJuggler/WelcomePage.html +789 -0
  232. data/doc/TaskJuggler/WorkingHours.html +1218 -0
  233. data/doc/TaskJuggler/WorkingHoursAttribute.html +756 -0
  234. data/doc/TaskJuggler/XMLBlob.html +707 -0
  235. data/doc/TaskJuggler/XMLComment.html +702 -0
  236. data/doc/TaskJuggler/XMLDocument.html +803 -0
  237. data/doc/TaskJuggler/XMLElement.html +990 -0
  238. data/doc/TaskJuggler/XMLNamedText.html +663 -0
  239. data/doc/TaskJuggler/XMLText.html +717 -0
  240. data/doc/index.html +4518 -0
  241. data/doc/lib/taskjuggler/AccountScenario_rb.html +69 -0
  242. data/doc/lib/taskjuggler/Account_rb.html +71 -0
  243. data/doc/lib/taskjuggler/AlgorithmDiff_rb.html +67 -0
  244. data/doc/lib/taskjuggler/Allocation_rb.html +71 -0
  245. data/doc/lib/taskjuggler/AppConfig_rb.html +69 -0
  246. data/doc/lib/taskjuggler/AttributeBase_rb.html +69 -0
  247. data/doc/lib/taskjuggler/AttributeDefinition_rb.html +67 -0
  248. data/doc/lib/taskjuggler/Attributes_rb.html +83 -0
  249. data/doc/lib/taskjuggler/BatchProcessor_rb.html +71 -0
  250. data/doc/lib/taskjuggler/Booking_rb.html +67 -0
  251. data/doc/lib/taskjuggler/ChargeSet_rb.html +69 -0
  252. data/doc/lib/taskjuggler/Charge_rb.html +69 -0
  253. data/doc/lib/taskjuggler/DataCache_rb.html +71 -0
  254. data/doc/lib/taskjuggler/FileList_rb.html +67 -0
  255. data/doc/lib/taskjuggler/HTMLDocument_rb.html +71 -0
  256. data/doc/lib/taskjuggler/HTMLElements_rb.html +69 -0
  257. data/doc/lib/taskjuggler/IntervalList_rb.html +69 -0
  258. data/doc/lib/taskjuggler/Interval_rb.html +69 -0
  259. data/doc/lib/taskjuggler/Journal_rb.html +67 -0
  260. data/doc/lib/taskjuggler/KeywordArray_rb.html +67 -0
  261. data/doc/lib/taskjuggler/KeywordDocumentation_rb.html +77 -0
  262. data/doc/lib/taskjuggler/Limits_rb.html +69 -0
  263. data/doc/lib/taskjuggler/LogFile_rb.html +69 -0
  264. data/doc/lib/taskjuggler/Log_rb.html +71 -0
  265. data/doc/lib/taskjuggler/LogicalExpression_rb.html +73 -0
  266. data/doc/lib/taskjuggler/LogicalFunction_rb.html +69 -0
  267. data/doc/lib/taskjuggler/LogicalOperation_rb.html +69 -0
  268. data/doc/lib/taskjuggler/MessageHandler_rb.html +69 -0
  269. data/doc/lib/taskjuggler/ProjectFileParser_rb.html +77 -0
  270. data/doc/lib/taskjuggler/ProjectFileScanner_rb.html +69 -0
  271. data/doc/lib/taskjuggler/Project_rb.html +113 -0
  272. data/doc/lib/taskjuggler/PropertyList_rb.html +67 -0
  273. data/doc/lib/taskjuggler/PropertySet_rb.html +71 -0
  274. data/doc/lib/taskjuggler/PropertyTreeNode_rb.html +67 -0
  275. data/doc/lib/taskjuggler/Query_rb.html +69 -0
  276. data/doc/lib/taskjuggler/RealFormat_rb.html +67 -0
  277. data/doc/lib/taskjuggler/ResourceScenario_rb.html +69 -0
  278. data/doc/lib/taskjuggler/Resource_rb.html +71 -0
  279. data/doc/lib/taskjuggler/RichText/Document_rb.html +73 -0
  280. data/doc/lib/taskjuggler/RichText/Element_rb.html +75 -0
  281. data/doc/lib/taskjuggler/RichText/FunctionExample_rb.html +73 -0
  282. data/doc/lib/taskjuggler/RichText/FunctionHandler_rb.html +67 -0
  283. data/doc/lib/taskjuggler/RichText/Parser_rb.html +75 -0
  284. data/doc/lib/taskjuggler/RichText/RTFHandlers_rb.html +75 -0
  285. data/doc/lib/taskjuggler/RichText/RTFNavigator_rb.html +73 -0
  286. data/doc/lib/taskjuggler/RichText/RTFQuery_rb.html +73 -0
  287. data/doc/lib/taskjuggler/RichText/RTFReportLink_rb.html +75 -0
  288. data/doc/lib/taskjuggler/RichText/RTFReport_rb.html +71 -0
  289. data/doc/lib/taskjuggler/RichText/RTFWithQuerySupport_rb.html +69 -0
  290. data/doc/lib/taskjuggler/RichText/Scanner_rb.html +71 -0
  291. data/doc/lib/taskjuggler/RichText/Snip_rb.html +71 -0
  292. data/doc/lib/taskjuggler/RichText/SyntaxRules_rb.html +67 -0
  293. data/doc/lib/taskjuggler/RichText/TOCEntry_rb.html +71 -0
  294. data/doc/lib/taskjuggler/RichText/TableOfContents_rb.html +71 -0
  295. data/doc/lib/taskjuggler/RichText_rb.html +73 -0
  296. data/doc/lib/taskjuggler/RuntimeConfig_rb.html +69 -0
  297. data/doc/lib/taskjuggler/ScenarioData_rb.html +71 -0
  298. data/doc/lib/taskjuggler/Scenario_rb.html +69 -0
  299. data/doc/lib/taskjuggler/Scoreboard_rb.html +69 -0
  300. data/doc/lib/taskjuggler/SheetHandlerBase_rb.html +75 -0
  301. data/doc/lib/taskjuggler/SheetReceiver_rb.html +81 -0
  302. data/doc/lib/taskjuggler/SheetSender_rb.html +79 -0
  303. data/doc/lib/taskjuggler/ShiftAssignments_rb.html +71 -0
  304. data/doc/lib/taskjuggler/ShiftScenario_rb.html +69 -0
  305. data/doc/lib/taskjuggler/Shift_rb.html +71 -0
  306. data/doc/lib/taskjuggler/SimpleQueryExpander_rb.html +69 -0
  307. data/doc/lib/taskjuggler/StatusSheetReceiver_rb.html +69 -0
  308. data/doc/lib/taskjuggler/StatusSheetSender_rb.html +69 -0
  309. data/doc/lib/taskjuggler/StdIoWrapper_rb.html +67 -0
  310. data/doc/lib/taskjuggler/SyntaxReference_rb.html +75 -0
  311. data/doc/lib/taskjuggler/TableColumnDefinition_rb.html +67 -0
  312. data/doc/lib/taskjuggler/TaskDependency_rb.html +67 -0
  313. data/doc/lib/taskjuggler/TaskJuggler_rb.html +75 -0
  314. data/doc/lib/taskjuggler/TaskScenario_rb.html +71 -0
  315. data/doc/lib/taskjuggler/Task_rb.html +71 -0
  316. data/doc/lib/taskjuggler/TernarySearchTree_rb.html +69 -0
  317. data/doc/lib/taskjuggler/TextFormatter_rb.html +69 -0
  318. data/doc/lib/taskjuggler/TextParser/MacroTable_rb.html +67 -0
  319. data/doc/lib/taskjuggler/TextParser/Pattern_rb.html +71 -0
  320. data/doc/lib/taskjuggler/TextParser/Rule_rb.html +69 -0
  321. data/doc/lib/taskjuggler/TextParser/Scanner_rb.html +77 -0
  322. data/doc/lib/taskjuggler/TextParser/SourceFileInfo_rb.html +67 -0
  323. data/doc/lib/taskjuggler/TextParser/StackElement_rb.html +67 -0
  324. data/doc/lib/taskjuggler/TextParser/State_rb.html +67 -0
  325. data/doc/lib/taskjuggler/TextParser/TokenDoc_rb.html +67 -0
  326. data/doc/lib/taskjuggler/TextParser_rb.html +79 -0
  327. data/doc/lib/taskjuggler/TimeSheetReceiver_rb.html +69 -0
  328. data/doc/lib/taskjuggler/TimeSheetSender_rb.html +69 -0
  329. data/doc/lib/taskjuggler/TimeSheetSummary_rb.html +69 -0
  330. data/doc/lib/taskjuggler/TimeSheets_rb.html +67 -0
  331. data/doc/lib/taskjuggler/Tj3AppBase_rb.html +79 -0
  332. data/doc/lib/taskjuggler/Tj3Config_rb.html +71 -0
  333. data/doc/lib/taskjuggler/Tj3SheetAppBase_rb.html +69 -0
  334. data/doc/lib/taskjuggler/TjException_rb.html +67 -0
  335. data/doc/lib/taskjuggler/TjTime_rb.html +71 -0
  336. data/doc/lib/taskjuggler/TjpExample_rb.html +69 -0
  337. data/doc/lib/taskjuggler/TjpSyntaxRules_rb.html +67 -0
  338. data/doc/lib/taskjuggler/URLParameter_rb.html +69 -0
  339. data/doc/lib/taskjuggler/UTF8String_rb.html +69 -0
  340. data/doc/lib/taskjuggler/UserManual_rb.html +81 -0
  341. data/doc/lib/taskjuggler/VimSyntax_rb.html +69 -0
  342. data/doc/lib/taskjuggler/WorkingHours_rb.html +71 -0
  343. data/doc/lib/taskjuggler/XMLDocument_rb.html +69 -0
  344. data/doc/lib/taskjuggler/XMLElement_rb.html +69 -0
  345. data/doc/lib/taskjuggler/apps/Tj3Client_rb.html +75 -0
  346. data/doc/lib/taskjuggler/apps/Tj3Daemon_rb.html +75 -0
  347. data/doc/lib/taskjuggler/apps/Tj3Man_rb.html +75 -0
  348. data/doc/lib/taskjuggler/apps/Tj3SsReceiver_rb.html +71 -0
  349. data/doc/lib/taskjuggler/apps/Tj3SsSender_rb.html +71 -0
  350. data/doc/lib/taskjuggler/apps/Tj3TsReceiver_rb.html +71 -0
  351. data/doc/lib/taskjuggler/apps/Tj3TsSender_rb.html +71 -0
  352. data/doc/lib/taskjuggler/apps/Tj3TsSummary_rb.html +71 -0
  353. data/doc/lib/taskjuggler/apps/Tj3_rb.html +71 -0
  354. data/doc/lib/taskjuggler/daemon/Daemon_rb.html +69 -0
  355. data/doc/lib/taskjuggler/daemon/ProcessIntercom_rb.html +71 -0
  356. data/doc/lib/taskjuggler/daemon/ProjectBroker_rb.html +83 -0
  357. data/doc/lib/taskjuggler/daemon/ProjectServer_rb.html +85 -0
  358. data/doc/lib/taskjuggler/daemon/ReportServer_rb.html +73 -0
  359. data/doc/lib/taskjuggler/daemon/ReportServlet_rb.html +69 -0
  360. data/doc/lib/taskjuggler/daemon/WebServer_rb.html +81 -0
  361. data/doc/lib/taskjuggler/daemon/WelcomePage_rb.html +71 -0
  362. data/doc/lib/taskjuggler/deep_copy_rb.html +67 -0
  363. data/doc/lib/taskjuggler/reports/CSVFile_rb.html +69 -0
  364. data/doc/lib/taskjuggler/reports/CollisionDetector_rb.html +69 -0
  365. data/doc/lib/taskjuggler/reports/ColumnTable_rb.html +69 -0
  366. data/doc/lib/taskjuggler/reports/GanttChart_rb.html +75 -0
  367. data/doc/lib/taskjuggler/reports/GanttContainer_rb.html +69 -0
  368. data/doc/lib/taskjuggler/reports/GanttHeaderScaleItem_rb.html +67 -0
  369. data/doc/lib/taskjuggler/reports/GanttHeader_rb.html +69 -0
  370. data/doc/lib/taskjuggler/reports/GanttLine_rb.html +79 -0
  371. data/doc/lib/taskjuggler/reports/GanttLoadStack_rb.html +69 -0
  372. data/doc/lib/taskjuggler/reports/GanttMilestone_rb.html +69 -0
  373. data/doc/lib/taskjuggler/reports/GanttRouter_rb.html +69 -0
  374. data/doc/lib/taskjuggler/reports/GanttTaskBar_rb.html +69 -0
  375. data/doc/lib/taskjuggler/reports/HTMLGraphics_rb.html +67 -0
  376. data/doc/lib/taskjuggler/reports/Navigator_rb.html +69 -0
  377. data/doc/lib/taskjuggler/reports/NikuReport_rb.html +71 -0
  378. data/doc/lib/taskjuggler/reports/ReportBase_rb.html +67 -0
  379. data/doc/lib/taskjuggler/reports/ReportContext_rb.html +67 -0
  380. data/doc/lib/taskjuggler/reports/ReportTableCell_rb.html +67 -0
  381. data/doc/lib/taskjuggler/reports/ReportTableColumn_rb.html +67 -0
  382. data/doc/lib/taskjuggler/reports/ReportTableLegend_rb.html +67 -0
  383. data/doc/lib/taskjuggler/reports/ReportTableLine_rb.html +69 -0
  384. data/doc/lib/taskjuggler/reports/ReportTable_rb.html +71 -0
  385. data/doc/lib/taskjuggler/reports/Report_rb.html +93 -0
  386. data/doc/lib/taskjuggler/reports/ResourceListRE_rb.html +75 -0
  387. data/doc/lib/taskjuggler/reports/StatusSheetReport_rb.html +69 -0
  388. data/doc/lib/taskjuggler/reports/TableReport_rb.html +77 -0
  389. data/doc/lib/taskjuggler/reports/TaskListRE_rb.html +75 -0
  390. data/doc/lib/taskjuggler/reports/TextReport_rb.html +69 -0
  391. data/doc/lib/taskjuggler/reports/TimeSheetReport_rb.html +69 -0
  392. data/doc/lib/taskjuggler/reports/TjpExportRE_rb.html +69 -0
  393. data/doc/lib/tj3_rb.html +69 -0
  394. data/doc/lib/tj3client_rb.html +69 -0
  395. data/doc/lib/tj3d_rb.html +69 -0
  396. data/doc/lib/tj3man_rb.html +69 -0
  397. data/doc/lib/tj3ss_receiver_rb.html +69 -0
  398. data/doc/lib/tj3ss_sender_rb.html +69 -0
  399. data/doc/lib/tj3ts_receiver_rb.html +69 -0
  400. data/doc/lib/tj3ts_sender_rb.html +69 -0
  401. data/doc/lib/tj3ts_summary_rb.html +69 -0
  402. data/doc/rdoc.css +706 -0
  403. data/examples/tutorial.tjp +2 -1
  404. data/lib/taskjuggler/Attributes.rb +33 -12
  405. data/lib/taskjuggler/DataCache.rb +17 -0
  406. data/lib/taskjuggler/FileList.rb +9 -0
  407. data/lib/taskjuggler/HTMLDocument.rb +19 -21
  408. data/lib/taskjuggler/HTMLElements.rb +46 -0
  409. data/lib/taskjuggler/Journal.rb +95 -46
  410. data/lib/taskjuggler/KeywordDocumentation.rb +248 -185
  411. data/lib/taskjuggler/LogicalExpression.rb +2 -2
  412. data/lib/taskjuggler/LogicalFunction.rb +22 -1
  413. data/lib/taskjuggler/LogicalOperation.rb +15 -5
  414. data/lib/taskjuggler/Project.rb +73 -16
  415. data/lib/taskjuggler/ProjectFileParser.rb +1 -1
  416. data/lib/taskjuggler/ProjectFileScanner.rb +27 -0
  417. data/lib/taskjuggler/PropertySet.rb +22 -45
  418. data/lib/taskjuggler/PropertyTreeNode.rb +99 -128
  419. data/lib/taskjuggler/Query.rb +39 -8
  420. data/lib/taskjuggler/Resource.rb +15 -6
  421. data/lib/taskjuggler/RichText/Document.rb +3 -3
  422. data/lib/taskjuggler/RichText/RTFQuery.rb +4 -4
  423. data/lib/taskjuggler/SheetHandlerBase.rb +14 -12
  424. data/lib/taskjuggler/SheetReceiver.rb +17 -15
  425. data/lib/taskjuggler/SheetSender.rb +16 -10
  426. data/{spec/support → lib/taskjuggler}/StdIoWrapper.rb +17 -0
  427. data/lib/taskjuggler/SyntaxReference.rb +2 -2
  428. data/lib/taskjuggler/TableColumnDefinition.rb +4 -3
  429. data/lib/taskjuggler/Task.rb +7 -2
  430. data/lib/taskjuggler/TaskJuggler.rb +74 -0
  431. data/lib/taskjuggler/TaskScenario.rb +62 -83
  432. data/lib/taskjuggler/TextParser.rb +20 -13
  433. data/lib/taskjuggler/TextParser/Scanner.rb +17 -1
  434. data/lib/taskjuggler/TimeSheetSummary.rb +9 -5
  435. data/lib/taskjuggler/TimeSheets.rb +6 -1
  436. data/lib/taskjuggler/Tj3AppBase.rb +41 -18
  437. data/lib/taskjuggler/Tj3Config.rb +1 -1
  438. data/lib/taskjuggler/TjTime.rb +6 -1
  439. data/lib/taskjuggler/TjpSyntaxRules.rb +408 -227
  440. data/lib/taskjuggler/UTF8String.rb +10 -0
  441. data/lib/taskjuggler/UserManual.rb +89 -81
  442. data/lib/taskjuggler/WorkingHours.rb +2 -3
  443. data/lib/taskjuggler/XMLDocument.rb +13 -4
  444. data/lib/taskjuggler/XMLElement.rb +31 -3
  445. data/lib/taskjuggler/apps/Tj3.rb +53 -21
  446. data/lib/taskjuggler/apps/Tj3Client.rb +19 -17
  447. data/lib/taskjuggler/apps/Tj3Daemon.rb +24 -21
  448. data/lib/taskjuggler/{Tj3Man.rb → apps/Tj3Man.rb} +2 -2
  449. data/lib/taskjuggler/apps/Tj3SsReceiver.rb +14 -11
  450. data/lib/taskjuggler/apps/Tj3SsSender.rb +17 -14
  451. data/lib/taskjuggler/apps/Tj3TsReceiver.rb +14 -11
  452. data/lib/taskjuggler/apps/Tj3TsSender.rb +16 -13
  453. data/lib/taskjuggler/apps/Tj3TsSummary.rb +16 -13
  454. data/lib/taskjuggler/reports/GanttChart.rb +1 -1
  455. data/lib/taskjuggler/reports/GanttRouter.rb +0 -2
  456. data/lib/taskjuggler/reports/GanttTaskBar.rb +2 -1
  457. data/lib/taskjuggler/reports/Navigator.rb +2 -1
  458. data/lib/taskjuggler/reports/NikuReport.rb +11 -7
  459. data/lib/taskjuggler/reports/ReportContext.rb +1 -0
  460. data/lib/taskjuggler/reports/StatusSheetReport.rb +7 -2
  461. data/lib/taskjuggler/reports/TableReport.rb +6 -4
  462. data/lib/taskjuggler/reports/TimeSheetReport.rb +3 -0
  463. data/lib/taskjuggler/reports/TjpExportRE.rb +4 -4
  464. data/lib/tj3man.rb +1 -1
  465. data/manual/Day_To_Day_Juggling +134 -137
  466. data/manual/TaskJuggler_2x_Migration +39 -32
  467. data/manual/The_TaskJuggler_Syntax +6 -0
  468. data/prj_cfg.rb +2 -3
  469. data/spec/StatusSheets_spec.rb +314 -0
  470. data/spec/TimeSheets_spec.rb +237 -16
  471. data/spec/Tj3_spec.rb +1 -1
  472. data/spec/support/DaemonControl.rb +1 -1
  473. data/tasks/changelog.rake +13 -3
  474. data/tasks/manual.rake +1 -1
  475. data/test/TestSuite/CSV-Reports/refs/celltext.csv +1 -1
  476. data/test/TestSuite/CSV-Reports/refs/resourcereport.csv +1 -1
  477. data/test/TestSuite/CSV-Reports/refs/resourcereport_with_tasks.csv +1 -1
  478. data/test/TestSuite/CSV-Reports/refs/sortByTree.csv +1 -1
  479. data/test/TestSuite/CSV-Reports/refs/sortBy_effort.up.csv +1 -1
  480. data/test/TestSuite/CSV-Reports/refs/sortBy_plan.start.down.csv +1 -1
  481. data/test/TestSuite/CSV-Reports/refs/taskreport.csv +1 -1
  482. data/test/TestSuite/CSV-Reports/refs/taskreport_with_resources.csv +1 -1
  483. data/test/TestSuite/CSV-Reports/sortByTree.tjp +3 -1
  484. data/test/TestSuite/CSV-Reports/sortBy_duration.down.tjp +4 -1
  485. data/test/TestSuite/CSV-Reports/sortBy_effort.up.tjp +1 -1
  486. data/test/TestSuite/CSV-Reports/sortBy_plan.start.down.tjp +4 -1
  487. data/test/TestSuite/CSV-Reports/taskreport.tjp +3 -1
  488. data/test/TestSuite/CSV-Reports/taskreport_with_resources.tjp +3 -1
  489. data/test/TestSuite/CSV-Reports/weekly.tjp +1 -0
  490. data/test/TestSuite/Export-Reports/refs/Account.tjp +25 -30
  491. data/test/TestSuite/Export-Reports/refs/AdoptedTasks.tjp +1 -0
  492. data/test/TestSuite/Export-Reports/refs/Allocate-1.tjp +43 -72
  493. data/test/TestSuite/Export-Reports/refs/Alternative.tjp +17 -22
  494. data/test/TestSuite/Export-Reports/refs/AutoID.tjp +11 -10
  495. data/test/TestSuite/Export-Reports/refs/AutoMacros.tjp +1 -0
  496. data/test/TestSuite/Export-Reports/refs/Booking.tjp +16 -23
  497. data/test/TestSuite/Export-Reports/refs/Caption.tjp +13 -16
  498. data/test/TestSuite/Export-Reports/refs/Celltext.tjp +12 -16
  499. data/test/TestSuite/Export-Reports/refs/Comments.tjp +15 -19
  500. data/test/TestSuite/Export-Reports/refs/Complete.tjp +17 -26
  501. data/test/TestSuite/Export-Reports/refs/CompletedWork.tji.tjp +40 -0
  502. data/test/TestSuite/Export-Reports/refs/Currencyformat.tjp +1 -0
  503. data/test/TestSuite/Export-Reports/refs/CustomAttributes.tjp +1 -0
  504. data/test/TestSuite/Export-Reports/refs/Depends1.tjp +5 -4
  505. data/test/TestSuite/Export-Reports/refs/Durations.tjp +18 -27
  506. data/test/TestSuite/Export-Reports/refs/Efficiency.tjp +21 -20
  507. data/test/TestSuite/Export-Reports/refs/EnvVar.tjp +21 -0
  508. data/test/TestSuite/Export-Reports/refs/Flags.tjp +6 -5
  509. data/test/TestSuite/Export-Reports/refs/Gap.tjp +2 -1
  510. data/test/TestSuite/Export-Reports/refs/HtmlTaskReport.tjp +15 -19
  511. data/test/TestSuite/Export-Reports/refs/Include.tjp +21 -20
  512. data/test/TestSuite/Export-Reports/refs/Journal.tjp +6 -5
  513. data/test/TestSuite/Export-Reports/refs/Limits-1.tjp +92 -140
  514. data/test/TestSuite/Export-Reports/refs/LoadUnits.tjp +293 -566
  515. data/test/TestSuite/Export-Reports/refs/LogicalExpression.tjp +1 -0
  516. data/test/TestSuite/Export-Reports/refs/LogicalFunction.tjp +17 -22
  517. data/test/TestSuite/Export-Reports/refs/Macro-1.tjp +32 -53
  518. data/test/TestSuite/Export-Reports/refs/Macro-2.tjp +1 -0
  519. data/test/TestSuite/Export-Reports/refs/Macro-3.tjp +1 -0
  520. data/test/TestSuite/Export-Reports/refs/Manager.tjp +51 -50
  521. data/test/TestSuite/Export-Reports/refs/Mandatory.tjp +22 -31
  522. data/test/TestSuite/Export-Reports/refs/Milestone.tjp +1 -0
  523. data/test/TestSuite/Export-Reports/refs/MinMax.tjp +2 -1
  524. data/test/TestSuite/Export-Reports/refs/Niku.tjp +80 -139
  525. data/test/TestSuite/Export-Reports/refs/Numberformat.tjp +1 -0
  526. data/test/TestSuite/Export-Reports/refs/Period.tjp +1 -0
  527. data/test/TestSuite/Export-Reports/refs/Persistent.tjp +17 -21
  528. data/test/TestSuite/Export-Reports/refs/Precedes1.tjp +1 -0
  529. data/test/TestSuite/Export-Reports/refs/Priority.tjp +121 -107
  530. data/test/TestSuite/Export-Reports/refs/Project.tjp +1 -0
  531. data/test/TestSuite/Export-Reports/refs/ProjectIDs.tjp +1 -0
  532. data/test/TestSuite/Export-Reports/refs/Query.tjp +17 -26
  533. data/test/TestSuite/Export-Reports/refs/Reports.tjp +42 -61
  534. data/test/TestSuite/Export-Reports/refs/Resource.tjp +21 -20
  535. data/test/TestSuite/Export-Reports/refs/ResourcePrefix.tjp +16 -20
  536. data/test/TestSuite/Export-Reports/refs/ResourceRoot.tjp +36 -35
  537. data/test/TestSuite/Export-Reports/refs/Responsible.tjp +17 -21
  538. data/test/TestSuite/Export-Reports/refs/RollupResource.tjp +36 -35
  539. data/test/TestSuite/Export-Reports/refs/Scenario.tjp +3 -1
  540. data/test/TestSuite/Export-Reports/refs/Scheduling.tjp +1 -0
  541. data/test/TestSuite/Export-Reports/refs/Select.tjp +29 -43
  542. data/test/TestSuite/Export-Reports/refs/Shift.tjp +12 -11
  543. data/test/TestSuite/Export-Reports/refs/Simple.tjp +15 -19
  544. data/test/TestSuite/Export-Reports/refs/StatusSheet.tjp +33 -47
  545. data/test/TestSuite/Export-Reports/refs/String.tjp +9 -10
  546. data/test/TestSuite/Export-Reports/refs/Supplement.tjp +7 -8
  547. data/test/TestSuite/Export-Reports/refs/TaskPrefix.tjp +10 -11
  548. data/test/TestSuite/Export-Reports/refs/TaskRoot.tjp +10 -9
  549. data/test/TestSuite/Export-Reports/refs/TimeFrame.tjp +9 -9
  550. data/test/TestSuite/Export-Reports/refs/TimeSheet1.tjp +25 -37
  551. data/test/TestSuite/Export-Reports/refs/Timezone.tjp +1 -0
  552. data/test/TestSuite/Export-Reports/refs/Vacation.tjp +26 -25
  553. data/test/TestSuite/Export-Reports/refs/tutorial.tjp +453 -821
  554. data/test/TestSuite/HTML-Reports/Alerts.html +160 -412
  555. data/test/TestSuite/HTML-Reports/CellText.html +758 -0
  556. data/test/TestSuite/HTML-Reports/ColumnPeriods.html +156 -0
  557. data/test/TestSuite/HTML-Reports/IsOngoing.html +172 -0
  558. data/test/TestSuite/HTML-Reports/LogicalFunctions.html +245 -0
  559. data/test/TestSuite/HTML-Reports/Query.html +31 -0
  560. data/test/TestSuite/HTML-Reports/css/tjmanual.css +0 -20
  561. data/test/TestSuite/HTML-Reports/css/tjreport.css +6 -7
  562. data/test/TestSuite/HTML-Reports/depArrows.html +851 -0
  563. data/test/TestSuite/HTML-Reports/profile.html +37581 -0
  564. data/test/TestSuite/{ReportGenerator/Correct → HTML-Reports/scripts}/scripts/wz_tooltip.js +20 -20
  565. data/test/TestSuite/ReportGenerator/Correct/Journal.tjp +27 -3
  566. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions3.tjp +20 -0
  567. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions4.tjp +16 -0
  568. data/test/TestSuite/ReportGenerator/Correct/refs/DependencyList-1.csv +4 -0
  569. data/test/TestSuite/ReportGenerator/Correct/refs/Journal-1.csv +2 -0
  570. data/test/TestSuite/ReportGenerator/Correct/refs/Journal-2.csv +8 -0
  571. data/test/TestSuite/ReportGenerator/Correct/refs/LogicalFunctions3-1.csv +4 -0
  572. data/test/TestSuite/ReportGenerator/Correct/refs/LogicalFunctions4-1.csv +2 -0
  573. data/test/TestSuite/Scheduler/Correct/Allocate.tjp +3 -1
  574. data/test/TestSuite/Scheduler/Correct/Booking.tjp +8 -7
  575. data/test/TestSuite/Scheduler/Correct/Booking2.tjp +16 -9
  576. data/test/TestSuite/Scheduler/Correct/Booking3.tjp +28 -0
  577. data/test/TestSuite/Scheduler/Correct/Container.tjp +2 -2
  578. data/test/TestSuite/Scheduler/Correct/Depends.tjp +3 -3
  579. data/test/TestSuite/Scheduler/Correct/InheritStartEnd.tjp +4 -4
  580. data/test/TestSuite/Scheduler/Correct/Limits.tjp +3 -1
  581. data/test/TestSuite/Scheduler/Correct/Mandatory.tjp +2 -2
  582. data/test/TestSuite/Scheduler/Correct/MultipleMandatories.tjp +2 -2
  583. data/test/TestSuite/Scheduler/Correct/Optimize-1.tjp +2 -2
  584. data/test/TestSuite/Scheduler/Correct/Optimize-2.tjp +3 -3
  585. data/test/TestSuite/Scheduler/Correct/Optimize-3.tjp +3 -3
  586. data/test/TestSuite/Scheduler/Correct/Optimize-4.tjp +3 -3
  587. data/test/TestSuite/Scheduler/Correct/Optimize-5.tjp +7 -7
  588. data/test/TestSuite/Scheduler/Correct/Scenarios.tjp +2 -2
  589. data/test/TestSuite/Scheduler/Correct/Shift.tjp +7 -5
  590. data/test/TestSuite/Scheduler/Correct/Shift2.tjp +1 -1
  591. data/test/TestSuite/Scheduler/Correct/TimeSheet2.tjp +5 -2
  592. data/test/TestSuite/Scheduler/Errors/booking_no_duty.tjp +1 -1
  593. data/test/TestSuite/Scheduler/Errors/ts_alert1_more_details.tjp +4 -2
  594. data/test/TestSuite/Scheduler/Errors/ts_alert2_more_details.tjp +4 -2
  595. data/test/TestSuite/Scheduler/Errors/ts_no_expected_end.tjp +4 -2
  596. data/test/TestSuite/Scheduler/Errors/ts_no_headline1.tjp +4 -2
  597. data/test/TestSuite/Scheduler/Errors/ts_no_rem_or_end.tjp +4 -2
  598. data/test/TestSuite/Scheduler/Errors/ts_no_remaining.tjp +4 -2
  599. data/test/TestSuite/Scheduler/Errors/ts_no_status_work.tjp +4 -2
  600. data/test/TestSuite/Scheduler/Errors/ts_no_work.tjp +4 -2
  601. data/test/TestSuite/Scheduler/Errors/ts_res_new_task.tjp +5 -2
  602. data/test/TestSuite/Scheduler/Errors/ts_work_too_high.tjp +4 -2
  603. data/test/TestSuite/Scheduler/Errors/ts_work_too_low.tjp +4 -2
  604. data/test/TestSuite/StatusSheets/dev2.tji +22 -0
  605. data/test/TestSuite/StatusSheets/run +1 -1
  606. data/test/TestSuite/Syntax/Correct/Booking.tjp +0 -5
  607. data/test/TestSuite/Syntax/Correct/CompletedWork.tji.tjp +38 -0
  608. data/test/TestSuite/Syntax/Correct/EnvVar.tjp +12 -0
  609. data/test/TestSuite/Syntax/Correct/Freeze.tjp +1 -3
  610. data/test/TestSuite/Syntax/Correct/Limits-1.tjp +9 -5
  611. data/test/TestSuite/Syntax/Correct/Priority.tjp +22 -11
  612. data/test/TestSuite/Syntax/Correct/Scenario.tjp +1 -1
  613. data/test/TestSuite/Syntax/Correct/StatusSheet.tjp +2 -0
  614. data/test/TestSuite/Syntax/Correct/TimeSheet1.tjp +4 -4
  615. data/test/TestSuite/Syntax/Correct/css/tjmanual.css +20 -0
  616. data/test/TestSuite/Syntax/Correct/css/tjreport.css +7 -6
  617. data/test/TestSuite/Syntax/Correct/tutorial.tjp +2 -1
  618. data/test/TestSuite/Syntax/Errors/no_own_resource_booking.tjp +16 -0
  619. data/test/TestSuite/Syntax/Errors/no_own_task_booking.tjp +16 -0
  620. data/test/TestSuite/Syntax/Errors/resourceroot_leaf.tjp +10 -0
  621. data/test/TestSuite/Syntax/Errors/runaway_token.tjp +8 -0
  622. data/test/TestSuite/Syntax/Errors/sorting_bsi.tjp +11 -0
  623. data/test/TestSuite/Syntax/Errors/ss_no_tracking_scenario.tjp +14 -0
  624. data/test/TestSuite/Syntax/Errors/taskroot_leaf.tjp +8 -0
  625. data/test/TestSuite/Syntax/Errors/ts_bad_priority.tjp +4 -2
  626. data/test/TestSuite/Syntax/Errors/ts_default_details.tjp +4 -2
  627. data/test/TestSuite/Syntax/Errors/ts_default_summary.tjp +4 -2
  628. data/test/TestSuite/Syntax/Errors/ts_duplicate_task.tjp +4 -2
  629. data/test/TestSuite/Syntax/Errors/ts_end_too_early.tjp +4 -2
  630. data/test/TestSuite/Syntax/Errors/ts_headline_too_long.tjp +4 -2
  631. data/test/TestSuite/Syntax/Errors/ts_no_headline2.tjp +4 -2
  632. data/test/TestSuite/Syntax/Errors/ts_no_tracking_scenario.tjp +14 -0
  633. data/test/TestSuite/Syntax/Errors/ts_summary_too_long.tjp +4 -2
  634. data/test/TestSuite/Syntax/Errors/unknown_env_var.tjp +7 -0
  635. data/test/TestSuite/TimeSheets/resrep.tji +7 -0
  636. data/test/TestSuite/TimeSheets/ts.tji +351 -0
  637. data/test/TestSuite/TimeSheets/tsdef.tji +2 -0
  638. data/test/test_Export-Reports.rb +3 -0
  639. data/test/test_Journal.rb +4 -4
  640. data/test/test_PropertySet.rb +5 -5
  641. data/test/test_Syntax.rb +3 -0
  642. data/test/test_WorkingHours.rb +11 -18
  643. metadata +1012 -649
  644. data/lib/exchangebug.rb +0 -42
  645. data/lib/ruby-signal-bug.rb +0 -55
  646. data/spec/tj3client.log +0 -23
  647. data/test/TestSuite/CSV-Reports/alert.tjp +0 -9
  648. data/test/TestSuite/CSV-Reports/refs/alert.csv +0 -15
  649. data/test/TestSuite/Export-Reports/refs/CriticalPath.tjp +0 -41
  650. data/test/TestSuite/Export-Reports/refs/DST.tjp +0 -89
  651. data/test/TestSuite/Export-Reports/refs/ReleasePlan.tjp +0 -79
  652. data/test/TestSuite/HTML-Reports/TimeSheet.html +0 -79
  653. data/test/TestSuite/HTML-Reports/reference.html +0 -51
  654. data/test/TestSuite/ReportGenerator/Correct/Alerts-1.csv +0 -1
  655. data/test/TestSuite/ReportGenerator/Correct/Alerts-1.html +0 -78
  656. data/test/TestSuite/ReportGenerator/Correct/Journal-1.csv +0 -6
  657. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +0 -3
  658. data/test/TestSuite/ReportGenerator/Correct/css/tjmanual.css +0 -66
  659. data/test/TestSuite/ReportGenerator/Correct/css/tjreport.css +0 -413
  660. data/test/TestSuite/ReportGenerator/Correct/icons/details.png +0 -0
  661. data/test/TestSuite/ReportGenerator/Correct/icons/flag-green.png +0 -0
  662. data/test/TestSuite/ReportGenerator/Correct/icons/flag-red.png +0 -0
  663. data/test/TestSuite/ReportGenerator/Correct/icons/flag-yellow.png +0 -0
  664. data/test/TestSuite/ReportGenerator/Correct/icons/resource.png +0 -0
  665. data/test/TestSuite/ReportGenerator/Correct/icons/resourcegroup.png +0 -0
  666. data/test/TestSuite/ReportGenerator/Correct/icons/task.png +0 -0
  667. data/test/TestSuite/ReportGenerator/Correct/icons/taskgroup.png +0 -0
  668. data/test/TestSuite/ReportGenerator/Correct/icons/trend-down.png +0 -0
  669. data/test/TestSuite/ReportGenerator/Correct/icons/trend-flat.png +0 -0
  670. data/test/TestSuite/ReportGenerator/Correct/icons/trend-up.png +0 -0
  671. data/test/TestSuite/ReportGenerator/Correct/opennodes-1.csv +0 -2
  672. data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +0 -2
  673. data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +0 -26
  674. data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +0 -2
  675. data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +0 -86
  676. data/test/TestSuite/Scheduler/Correct/css/tjreport.css +0 -413
  677. data/test/TestSuite/Scheduler/Correct/icons/details.png +0 -0
  678. data/test/TestSuite/Scheduler/Correct/icons/flag-green.png +0 -0
  679. data/test/TestSuite/Scheduler/Correct/icons/flag-red.png +0 -0
  680. data/test/TestSuite/Scheduler/Correct/icons/flag-yellow.png +0 -0
  681. data/test/TestSuite/Scheduler/Correct/icons/resource.png +0 -0
  682. data/test/TestSuite/Scheduler/Correct/icons/resourcegroup.png +0 -0
  683. data/test/TestSuite/Scheduler/Correct/icons/task.png +0 -0
  684. data/test/TestSuite/Scheduler/Correct/icons/taskgroup.png +0 -0
  685. data/test/TestSuite/Scheduler/Correct/icons/trend-down.png +0 -0
  686. data/test/TestSuite/Scheduler/Correct/icons/trend-flat.png +0 -0
  687. data/test/TestSuite/Scheduler/Correct/icons/trend-up.png +0 -0
  688. data/test/TestSuite/Scheduler/Correct/scripts/wz_tooltip.js +0 -1301
  689. data/test/TestSuite/StatusSheetTemplates/project.tji +0 -35
  690. data/test/TestSuite/StatusSheetTemplates/project.tjp +0 -56
  691. data/test/TestSuite/StatusSheets/TimeSheets/2002-03-01/resource1_2002-03-01.tji +0 -0
  692. data/test/TestSuite/Syntax/Correct/CriticalPath.tjp +0 -33
  693. data/test/TestSuite/Syntax/Correct/DST.tjp +0 -11
  694. data/test/TestSuite/Syntax/Correct/ReleasePlan.tjp +0 -32
  695. data/test/TestSuite/Syntax/Correct/niku.xml +0 -30
  696. data/test/TestSuite/Syntax/Errors/sorting_wbs.tjp +0 -11
  697. data/test/TestSuite/TimeSheets/uu.txt +0 -29
@@ -119,6 +119,7 @@ EOT
119
119
  " # details -8<-\n" +
120
120
  " # Some more details\n" +
121
121
  " # ->8-\n" +
122
+ " # flags ...\n" +
122
123
  " #{c}}\n"
123
124
  @file << " }\n\n"
124
125
  end
@@ -136,6 +137,7 @@ EOT
136
137
  # details -8<-
137
138
  # Some more details
138
139
  # ->8-
140
+ # flags ...
139
141
  # }
140
142
  # }
141
143
 
@@ -190,6 +192,7 @@ EOT
190
192
  'timeFormat' => a('timeFormat'),
191
193
  'currencyFormat' => a('currencyFormat'),
192
194
  'start' => from, 'end' => to,
195
+ 'hideJournalEntry' => a('hideJournalEntry'),
193
196
  'costAccount' => a('costAccount'),
194
197
  'revenueAccount' => a('revenueAccount') }
195
198
  resourceList.query = Query.new(queryAttrs)
@@ -87,7 +87,8 @@ class TaskJuggler
87
87
  scenario.children.each do |sc|
88
88
  generateScenarioDefinition(sc, indent + 2)
89
89
  end
90
- @file << "#{' ' * (indent + 2)}disabled\n" unless scenario.get('enabled')
90
+ @file << "#{' ' * (indent + 2)}active " +
91
+ "#{scenario.get('active') ? 'yes' : 'no'}\n"
91
92
  @file << "#{' ' * indent}}\n"
92
93
  end
93
94
 
@@ -340,12 +341,11 @@ class TaskJuggler
340
341
  end
341
342
 
342
343
  def generateAttribute(property, attrId, indent, scenarioIdx = nil)
343
- val = scenarioIdx.nil? ? property.getAttr(attrId) :
344
- property[attrId, scenarioIdx]
344
+ val = scenarioIdx ? property[attrId, scenarioIdx] : property.get(attrId)
345
345
  return if val.nil? || (val.is_a?(Array) && val.empty?) ||
346
346
  (scenarioIdx && inheritable?(property, attrId, scenarioIdx))
347
347
 
348
- generateAttributeText(property.getAttr(attrId, scenarioIdx).to_tjp,
348
+ generateAttributeText(property.getAttribute(attrId, scenarioIdx).to_tjp,
349
349
  indent, scenarioIdx)
350
350
  end
351
351
 
data/lib/tj3man.rb CHANGED
@@ -11,6 +11,6 @@
11
11
  # published by the Free Software Foundation.
12
12
  #
13
13
 
14
- require 'taskjuggler/Tj3Man'
14
+ require 'taskjuggler/apps/Tj3Man'
15
15
 
16
16
  exit TaskJuggler::Tj3Man.new.main()
@@ -22,7 +22,7 @@ and ''''test''''. These two scenarios are identical to the
22
22
  ''''plan'''' scenario except for those attributes that are changed
23
23
  for these scenarios. Normally, all scenarios are scheduled on each
24
24
  ''''tj3'''' run. To temporarily disable the scheduling of a scenario,
25
- you can use the [[disabled]] attribute.
25
+ you can set the [[active]] attribute to ''''no''''.
26
26
 
27
27
  <[example file="Scenario" tag="task"]>
28
28
 
@@ -37,25 +37,67 @@ scenario of plan.
37
37
  The syntax reference lists for each attribute whether it is scenario
38
38
  specific or not.
39
39
 
40
+ === Important and fall-back Tasks ===
41
+
42
+ By default, the scheduler tries to guess the right priority of tasks.
43
+ The higher the priority, the more likely it will get the requested
44
+ resources. To override this mechanism, the [[priority]] attribute can
45
+ be used.
46
+
47
+ <[example file="Priority" tag="project"]>
48
+
49
+ In the above example, the regular project work needs to be frequently
50
+ interrupted by the ''Customer Support'' task. It's only 2 hours a
51
+ day, but it's pretty important that this is done. Since the task has
52
+ a higher priority than the regular work, the scheduler will try to
53
+ ensure that a maximum of 2 hours per day is spent on support. There
54
+ is no guarantee, that the task will always get the resource for 2
55
+ hours each day, but it's pretty likely in this setup.
56
+
57
+ There is only one task that is more important, the ''Attend
58
+ Conference'' task. It has fixed dates and we want to make sure
59
+ ''Tux'' can attend. So we use ''''priority 1000'''', the highest possible
60
+ priority. There should be only one such task. If not, you need to
61
+ ensure that the top priority tasks don't compete for the same resource
62
+ in the same time frame.
63
+
64
+ In contrast to the support and conference task, the ''Maintenance
65
+ work'' task is a fall-back task. It has a lower priority than the
66
+ regular work. Tux only gets assigned to it when there is no other
67
+ work. We have limited the regular work to 25 hours per week. Since we
68
+ spend up to 10 hours per week on support, there should be a remainder
69
+ of 5 hours per week for the maintenance task. Again, no guarantees
70
+ given.
71
+
72
+ If you want to ensure that a certain minimum or maximum effort is
73
+ spent on a task, you can use the [[warn]] attribute. This will not
74
+ affect the decisions of the scheduler, but at least it will trigger a
75
+ warning if your criteria are not met.
76
+
40
77
  === Tracking the Project ===
41
78
 
42
79
  Once the initial plan has been made and the project has started, TaskJuggler
43
80
  can be turned from a planning tool into a tracking tool. You don't have to
44
81
  change a lot to do this. After all, as the initial plan is almost always just a
45
82
  first guess, you need to continue planning your project as new details become
46
- evident. So what you really want is a way to gradually freeze the plan as work
47
- has been completed, while still having full flexibility with all future work.
83
+ evident. As the work progresses, you continuously review the state of
84
+ the project and update the plan accordingly. A weekly review and
85
+ update cycle seems to be pretty common for most projects. Usually the
86
+ plan for the past week and the reality are mostly aligned. The future
87
+ parts of the project often are more affected by necessary changes.
48
88
 
49
89
  While it is generally accepted to invest some amount of time in project
50
90
  planning, it is very common that once the project has been started, project
51
91
  managers tend to avoid a proper tracking of the project. Our bet is that the
52
92
  vast majority of project plans are only made to get management or investor
53
93
  approval. After the approval phase, many project managers only work with their
54
- project plan again when the project is running really late. On the other hand
55
- there are projects that are done using strict project management techniques
56
- that require detailed status tracking. Both extremes probably have their fans
57
- and TaskJuggler offers good support for both extremes as well as various
58
- techniques in between.
94
+ project plan again when the project is getting out of control and
95
+ they are desperate for any help they can get.
96
+
97
+ Of course, there are projects that are done using strict project
98
+ management techniques that require detailed status tracking. Both
99
+ extremes probably have their fans and TaskJuggler offers good support
100
+ for both extremes as well as various techniques in between.
59
101
 
60
102
  === Recording Progress ===
61
103
 
@@ -82,7 +124,7 @@ the complete attribute.
82
124
 
83
125
  This tells TaskJuggler that 50% of the task's effort has been completed by the
84
126
  [[now|current date]]. Tasks that have no completion specification will
85
- be assumed to be on track. TaskJuggler calculates the expected
127
+ be assumed to be on track and TaskJuggler calculates the expected
86
128
  completion degree based on the current date. Completion specifications
87
129
  only need to be supplied for tasks that are either ahead of schedule
88
130
  or behind schedule. Please be aware that the completion degree does
@@ -102,8 +144,9 @@ described by providing booking statements, you can enable
102
144
 
103
145
  Entering all the bookings for each resource and task may sound like a
104
146
  daunting task at first. If you do it manually, it certainly is.
105
- Fortunately, TaskJuggler can generate them for you by using
106
- [[export|export reports]]. Before we discuss this in more detail, we
147
+ Fortunately, TaskJuggler can generate them for you by using either
148
+ the ''''--freeze'''' option of ''''tj3'''' or by generating a manual
149
+ [[export|export report]]. Before we discuss this in more detail, we
107
150
  need to make sure that the plan is up-to-date.
108
151
 
109
152
  === Tracking status and actuals ===
@@ -111,13 +154,14 @@ need to make sure that the plan is up-to-date.
111
154
  Creating a good project plan is one thing. Executing it is a whole
112
155
  new story. Usually, the first plan is never fully correct and the
113
156
  only way to make sure that you are making progress according to plan
114
- is to regularly get status updates from all resources.
157
+ is to regularly get status updates from all the project contributors.
115
158
 
116
- Status updates should be provided by all project contributors on a
117
- regular basis, usually once a week. These updates should tell project
118
- managers who really worked how much on what tasks and how much work
119
- the contributors believe is really left now. There are two categories
120
- of tasks in a project that need to be treated slightly differently.
159
+ These status updates should be provided by all project contributors on
160
+ a regular basis, usually once a week. The gathered information should
161
+ tell project managers who really worked how much on what tasks and how
162
+ much work the contributors believe is really left now. There are two
163
+ categories of tasks in a project that need to be treated slightly
164
+ differently.
121
165
 
122
166
  A task can either be effort based or duration based. In the former
123
167
  case, the contributors must tell how much effort is left. For
@@ -129,22 +173,24 @@ want to have a textual status that describes what happened and what
129
173
  kind of issues were encountered. Usually, these textual status
130
174
  reports are combined with alert levels like green, yellow and red.
131
175
  Green means everything is progressing according to plan, yellow means
132
- there is some schedule risk and red means serious trouble. Usually
133
- first line managers like to get all the details while people further
134
- up in the reporting chain only like to see summaries varying level of
135
- details.
176
+ there is some schedule risk and red means the project is in serious
177
+ trouble. Usually first line managers like to get all the details while
178
+ people further up in the reporting chain only like to see summaries
179
+ with varying level of details.
136
180
 
137
181
  All of this creates additional overhead but is usually inevitable to
138
- ensure that you complete the project within time and budget. As a
139
- comprehensive project management solution, TaskJuggler provides full
140
- support for all those tracking and reporting steps. It comes with a
141
- powerful email and web based communication system that simplifies the
142
- tracking process for individual contributors as well as managers.
182
+ ensure that you complete the project within the given time and budget.
183
+ As a comprehensive project management solution, TaskJuggler provides
184
+ full support for all those tracking and reporting steps. It comes with
185
+ a powerful email and web based communication system that simplifies
186
+ the tracking process for individual contributors as well as managers.
143
187
 
144
188
  As a side note we would like to mention that the recording of the work
145
189
  time of employees is regulated by labor law in certain countries. You
146
190
  might also require approval from a Worker's Council before you can
147
- deploy time recording tools.
191
+ deploy any time recording tools. Please consult with your corporate
192
+ counsel or legal expert for all geographic regions of your teams
193
+ before you deploy a time tracking solution.
148
194
 
149
195
  We also would like to point out that introducing status reporting and
150
196
  time sheets is usually a big change for every staff. Don't
@@ -152,7 +198,7 @@ underestimate the psychological impact and the training requirements.
152
198
  We also recommend to test the described process with a small group of
153
199
  employees first to get familiar with the process and to adapt it to
154
200
  your needs. Don't rush a deployment! You usually only have one chance
155
- to roll-out such a process.
201
+ to roll-out such a new process.
156
202
 
157
203
  ==== The reporting and tracking cycle ====
158
204
 
@@ -179,7 +225,7 @@ contributors that have not submitted their report.
179
225
  # On Monday the project managers need to review the time sheets and
180
226
  update the plan accordingly. TaskJuggler can compile a list changes
181
227
  compared to the plan. This makes it easy to update the plan according
182
- to the actual progress that was made. The close the actuals match the
228
+ to the actual progress that was made. The closer the actuals match the
183
229
  plan the less work this is. The project managers now generate
184
230
  bookings for the last week and add them to the database with previous
185
231
  bookings. Doing so, will prevent changes to the plan to affect the
@@ -583,118 +629,69 @@ further submissions of time sheets for this time period.
583
629
  === Recording actual Resource Usage ===
584
630
 
585
631
  To ensure that future changes won't change the past of the project,
586
- you should follow the procedure described in this section.
587
-
588
- The initial project plan should be made by entering the minimum amount of
589
- required information such as task dependencies and efforts. TaskJuggler will
590
- then compute all the missing data based on this initial setup. This is your
591
- project baseline. As the project progresses you can now track the work already
592
- completed by recording the work that your resources have done. Let's assume you
593
- had the following task in your original plan:
594
-
595
- task impl "Implementation" {
596
- depends !spec
597
- effort 4w
598
- allocate dev1, dev2
599
- }
600
-
601
- After the first week of work on this task the two resources have really been
602
- able to complete half the job. You can capture this in your project plan using
603
- the booking attribute. Bookings are resource specific, so you have to add the
604
- booking to the resource definition, not the task definition.
605
-
606
- resource dev1 "Developer 1" {
607
- booking impl 2005-04-11 - 2005-04-16 { sloppy 2 }
608
- }
609
-
610
- resource dev2 "Developer 2" {
611
- booking impl 2005-04-11 - 2005-04-16 { sloppy 2 }
612
- }
613
-
614
- The sloppy attribute defines the accuracy of your bookings. If it's missing or
615
- 0, the booking must only describe a continuous working period during working
616
- hours. With higher values the interval may overlap with off-hour or vacation
617
- time slots. See details on sloppy.
618
-
619
- The booking statements are designed to describe actual work performed
620
- by resources at a very accurate level. Many project managers are too
621
- lazy to record information at such a level of detail. TaskJuggler
622
- offers some mechanisms to simplify your work. Using ''''sloppy'''' is
623
- one of them, but you should read very carefully what it does. In
624
- almost every case we recommend to use the procedure described below
625
- instead.
626
-
627
- Another popular mistake is that user forget that dates for bookings
628
- behave just like every other date in TaskJuggler.
629
-
630
- resource dev1 "Developer 1" {
631
- booking impl 2005-04-11 +8h { sloppy 2 }
632
- }
633
-
634
- This is almost a classic on the mailing list. 2005-04-11 means
635
- 2005-04-11-0:00. So you are trying to allocate dev1 from midnight to
636
- 8am. Since dev1 is usually is off duty at this time no allocations
637
- will be performed. By using the ''''sloppy 2'''' attribute you won't
638
- even get a warning for this mistake.
639
-
640
- If you don't like to mix the resource definitions and their bookings, you can
641
- specify the bookings with supplement statements. These supplement statements
642
- can even reside in an other file.
643
-
644
- It is ok to specify bookings beyond the effort value found in the task
645
- definition. In case you want to declare a task as done, even if the bookings do
646
- not reach the specified effort or length, you can use the scheduled property.
647
-
648
- supplement task impl {
649
- actual:scheduled
650
- }
651
-
652
- In case your actual progress does not deviate a lot from your project plan, you
653
- can generate the file with the booking statements automatically.
654
-
655
- export "DoneWork-Week15.tji" {
656
- hideresource 0
657
- start 2005-04-11
658
- end 2005-04-16
659
- taskattributes *
660
- }
661
-
662
- This will generate a TaskJuggler include file that contains all bookings
663
- according to the project plan for the specified interval. You can then use this
664
- file as a baseline and modify it to reflect the real work that has happened
665
- during the interval. After that you can include it into your project again.
666
-
667
- include "DoneWork-Week15.tji"
632
+ we need to freeze the history of the project. History in this context
633
+ means which resource worked on what task from when to when. Since
634
+ TaskJuggler cannot know what level of detail you want to include in
635
+ the reports, this information has to be recorded with the highest
636
+ possible accuracy. This means that we have to capture the exact start
637
+ and end dates for every period that a resource worked on a task.
638
+
639
+ Unless you use some external time tracking system to capture this
640
+ information and export it to TaskJuggler, you probably want
641
+ TaskJuggler to generate this data for you based on the plan
642
+ information.
643
+
644
+ Before you can freeze that past part of your project, you need to
645
+ tell TaskJuggler which scenario should be used for tracking the
646
+ actual progress. See the [[trackingscenario]] documentation for more
647
+ details on this. Before you freeze your project for the first time,
648
+ you should make sure that the current date is still before the
649
+ project start. If that is not the case, use the [[now]] attribute to
650
+ set the current date to the project start:
651
+
652
+ now ${projectstart}
653
+
654
+ Once you have frozen the project for the first time, you should
655
+ remove the [[now]] attribute again. It will be automatically updated.
656
+
657
+ To freeze your project up to a certain date, you can use the following
658
+ command:
659
+
660
+ tj3 --freeze yourproject.tjp --freezedate YYYY-MM-DD
661
+
662
+ This will generate two files, ''''yourproject-header.tji'''' and
663
+ ''''yourproject-bookings.tji''''. The header files contains the date
664
+ of the freeze as a [[now]] attribute. You must [[include.project|
665
+ include]] this file at the end of your project header section.
666
+
667
+ The bookings file contains the resource assignment data. It usually
668
+ contains many [[booking.task|booking]] entries that look similar to
669
+ this:
670
+
671
+ supplement task t {
672
+ booking r 2010-02-19-09:00-+0000 + 3.0h,
673
+ 2010-02-19-13:00-+0000 + 5.0h,
674
+ 2010-02-22-09:00-+0000 + 3.0h,
675
+ 2010-02-22-13:00-+0000 + 5.0h,
676
+ }
668
677
 
669
- As this include file references the tasks and resources of your project you
670
- should include it after all task and resource definitions.
678
+ The booking file must be [[include.properties|included]] at the end of
679
+ your main project file.
671
680
 
672
- To make TaskJuggler aware that you want to compute the end date based on the
673
- bookings and the effort you need to enable the projection mode for the
674
- scenario. This has to be done in the scenario definition in the project header.
675
- If you don't have a scenario definition because you are only using the built-in
676
- default scenario, you have to add a scenario definition.
681
+ In case there are still some discrepancies between the booking data
682
+ and the actual assignments of the resources, you can edit the booking
683
+ file to correct the data.
677
684
 
678
- project prj "Project" "1.0" 2005-04-01 - 2005-05-01 {
679
- scenario plan "Plan" {
680
- # Compute when the task will be ready based on the already
681
- # done work and the current date.
682
- projection
683
- }
684
- }
685
+ The next time you run ''''tj3'''' with your project, all assignments
686
+ prior to the date in the project header file will be taken only from
687
+ the bookings file. All assignments after this date will be determined
688
+ by the scheduler according to your provided constraints.
685
689
 
686
- TaskJuggler now assumes that for all tasks that have bookings, all work has
687
- been specified with bookings up to the current date. It then calculates the end
688
- date of the task based on the effort that is still left over. It also computes
689
- the complete value based on the specified bookings. So if you specify bookings
690
- for a task you should not specify a completion value as well. It will be
691
- ignored and replaced by a value based on the specified bookings.
692
-
693
- When you now schedule the project again, it will take these bookings into
694
- account and generate a new project plan based on your current project status.
695
- Each time you review your project status you should generate such an include
696
- file for the period that you are reviewing. Then you sync the content with the
697
- feedback that you get from your resources and add the file to the project plan.
690
+ When you run ''''tj3 --freeze'''' again, it will update the header
691
+ and booking files. Since you have included your booking file, any
692
+ modifications you have made, will be preserved. That is, the actual
693
+ data will be preserved, not the formatting since the file will be
694
+ completely re-generated again.
698
695
 
699
696
  ==== Status Sheets ====
700
697
 
@@ -2,6 +2,26 @@
2
2
 
3
3
  This section will cover changes between TaskJuggler 2.x and 3.x.
4
4
 
5
+ * The syntax for macros has changed slightly. The terminating
6
+ ''''<nowiki>]</nowiki>'''' must be the last character before the
7
+ line break. No spaces or comments are allowed here. Parameters of
8
+ macro calls must always be enclosed by double quotes. In contrast to
9
+ regular strings, single quotes are not allowed here. The parameter
10
+ may not span multiple lines.
11
+
12
+ * The ''''projection'''' attribute has been removed. The
13
+ is now provided by [[trackingscenario]].
14
+
15
+ * The default working hours have been changed to 9:00 - 17:00.
16
+
17
+ * IDs for properties such as tasks, resources and reports are now
18
+ optional. If you don't need to reference a property, you can omit the
19
+ ID. TaskJuggler will automatically assign an ID then.
20
+
21
+ * Top-level accounts no longer need a ''''cost'''' or ''''revenue''''
22
+ attribute. Any two top level accounts can now be balanced against
23
+ each other using the [[balance]] attribute in the report.
24
+
5
25
  * The ''''shift'''' attribute for tasks and resources has been
6
26
  renamed to ''''shifts'''' to allow support for multiple shifts.
7
27
 
@@ -10,24 +30,32 @@ tasks and resources have a ''''limits'''' attribute, a global
10
30
  attribute was inconsistent as only resources inherited this
11
31
  attribute. Use a parent resource to emulate the old behaviour.
12
32
 
33
+ * Shifts and limits for allocations have been deprecated. The concept
34
+ was bogus and not compatible with bookings. The functionality is
35
+ now provided by [[shifts.task|shifts]] and [[limits.task|limits]] on the
36
+ task level. Limits for a task can be [[resources.limit|selectively
37
+ applied]] to certain resources.
38
+
13
39
  * The ''''startbuffer'''' and ''''endbuffer'''' attributes have been
14
40
  deprecated. They have not been widely used and had no impact on
15
41
  scheduling.
16
42
 
17
- * The ''''barlabels'''' attribute for reports is no longer needed.
18
- HTML reports have always empty Gantt-chart bars and the calendar
19
- reports always have values.
20
-
21
43
  * The project attribute ''''allowredifinitions'''' has been dropped.
22
44
  It was an ugly workaround for a rare corner case. Using [[supplement]] is
23
45
  the clean way to do this.
24
46
 
25
47
  * Camel case names for function names in logical expressions have
26
- been deprecated. Function names need to be all lower case now.
48
+ been deprecated. Function names need to be all lower case now. Some
49
+ functions have been removed as all attributes can now be accessed by
50
+ scenario.attribute_id notation.
27
51
 
28
- * Top-level accounts no longer need a ''''cost'''' or ''''revenue''''
29
- attribute. Any two top level accounts can now be balanced against
30
- each other using the [[balance]] attribute in the report.
52
+ * The format for [[report|reports]] has been changed considerably.
53
+ The old format was not very flexible and had some design flaws.
54
+ TaskJuggler III now supports report nesting and composition. A report
55
+ definition can be used to generated multiple output [[formats]]. The
56
+ name of a report must now be specified without the file name
57
+ extension. It will be automatically added depending on the output
58
+ format.
31
59
 
32
60
  * The sorting modes have been extended to include the scenario. Also,
33
61
  the sorting direction is no longer mangled with the attribute name.
@@ -39,11 +67,9 @@ longer supported. The naming was inconsistent with TaskJuggler lingo
39
67
  and did not handle tasks and resources separately. It has been
40
68
  replaced with [[taskattributes]] and [[resourceattributes]].
41
69
 
42
- * Shifts and limits for allocations have been deprecated. The concept
43
- was bogus and not compatible with bookings. The functionality is
44
- now provided by [[shifts.task|shifts]] and [[limits.task|limits]] on the
45
- task level. Limits for a task can be [[resources.limit|selectively
46
- applied]] to certain resources.
70
+ * The ''''barlabels'''' attribute for reports is no longer needed.
71
+ HTML reports have always empty Gantt-chart bars and the calendar
72
+ reports always have values.
47
73
 
48
74
  * Support for reading and writing XML files is no longer available.
49
75
  The content was redundant with the TJP file format and it was not
@@ -52,25 +78,6 @@ it. There is nothing in the TJ3 design that would prevent this
52
78
  feature from being added again, but there are no plans for this right
53
79
  now.
54
80
 
55
- * The format for [[report|reports]] has been changed considerably.
56
- The old format was not very flexible and had some design flaws.
57
- TaskJuggler III now supports report nesting and composition. A report
58
- definition can be used to generated multiple output [[formats]]. The
59
- name of a report must now be specified without the file name
60
- extension. It will be automatically added depending on the output
61
- format.
62
-
63
- * IDs for properties such as tasks, resources and reports are now
64
- optional. If you don't need to reference a property, you can omit the
65
- ID. TaskJuggler will automatically assign an ID then.
66
-
67
- * The syntax for macros has changed slightly. The terminating
68
- ''''<nowiki>]</nowiki>'''' must be the last character before the
69
- line break. No spaces or comments are allowed here. Parameters of
70
- macro calls must always be enclosed by double quotes. In contrast to
71
- regular strings, single quotes are not allowed here. The parameter
72
- may not span multiple lines.
73
-
74
81
  === Using TaskJuggler 2.x and TaskJuggler 3.x in parallel ===
75
82
 
76
83
  While TaskJuggler 3.x has many new features over TaskJuggler 2.x like