taskjuggler 0.0.7 → 0.0.8
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.
- data/CHANGELOG +119 -0
- data/benchmarks/allocatedSlots.tjp +1602 -0
- data/benchmarks/booking.tjp +40 -30
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/css/tjmanual.css +0 -0
- data/{test/TestSuite/Scheduler/Correct → benchmarks}/css/tjreport.css +1 -0
- data/benchmarks/gantt.tjp +57 -0
- data/benchmarks/htmltaskreport.tjp +26 -1
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/details.png +0 -0
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/flag-green.png +0 -0
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/flag-red.png +0 -0
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/flag-yellow.png +0 -0
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/resource.png +0 -0
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/resourcegroup.png +0 -0
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/task.png +0 -0
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/taskgroup.png +0 -0
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/trend-down.png +0 -0
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/trend-flat.png +0 -0
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/trend-up.png +0 -0
- data/benchmarks/profile.clt +36082 -0
- data/benchmarks/profile.html +58182 -0
- data/benchmarks/runbench.rb +6 -0
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/scripts/wz_tooltip.js +0 -0
- data/doc/AppConfig.html +85 -37
- data/doc/Arguments.html +11 -1
- data/doc/CHANGELOG.html +131 -2
- data/doc/COPYING.html +11 -1
- data/doc/Object.html +12 -3
- data/doc/README.html +11 -1
- data/doc/RuntimeConfig.html +11 -1
- data/doc/String.html +11 -1
- data/doc/StringIO.html +11 -1
- data/doc/TaskJuggler.html +250 -219
- data/doc/TaskJuggler/Account.html +11 -1
- data/doc/TaskJuggler/AccountAttribute.html +11 -1
- data/doc/TaskJuggler/AccountScenario.html +11 -1
- data/doc/TaskJuggler/Allocation.html +11 -1
- data/doc/TaskJuggler/AllocationAttribute.html +11 -1
- data/doc/TaskJuggler/AttributeBase.html +11 -1
- data/doc/TaskJuggler/AttributeDefinition.html +11 -1
- data/doc/TaskJuggler/BatchProcessor.html +11 -1
- data/doc/TaskJuggler/Booking.html +11 -1
- data/doc/TaskJuggler/BookingListAttribute.html +11 -1
- data/doc/TaskJuggler/BooleanAttribute.html +11 -1
- data/doc/TaskJuggler/CSVFile.html +12 -2
- data/doc/TaskJuggler/CellSettingPattern.html +11 -1
- data/doc/TaskJuggler/CellSettingPatternList.html +11 -1
- data/doc/TaskJuggler/Charge.html +11 -1
- data/doc/TaskJuggler/ChargeListAttribute.html +11 -1
- data/doc/TaskJuggler/ChargeSet.html +11 -1
- data/doc/TaskJuggler/ChargeSetListAttribute.html +11 -1
- data/doc/TaskJuggler/CollisionDetector.html +1063 -0
- data/doc/TaskJuggler/ColumnListAttribute.html +11 -1
- data/doc/TaskJuggler/ColumnTable.html +11 -1
- data/doc/TaskJuggler/Daemon.html +11 -1
- data/doc/TaskJuggler/{OnShiftCache.html → DataCache.html} +127 -139
- data/doc/TaskJuggler/DataCacheEntry.html +711 -0
- data/doc/TaskJuggler/DateAttribute.html +11 -1
- data/doc/TaskJuggler/DefinitionListAttribute.html +11 -1
- data/doc/TaskJuggler/DependencyListAttribute.html +11 -1
- data/doc/TaskJuggler/DurationAttribute.html +16 -5
- data/doc/TaskJuggler/FileList.html +11 -1
- data/doc/TaskJuggler/FileRecord.html +11 -1
- data/doc/TaskJuggler/FixnumAttribute.html +19 -9
- data/doc/TaskJuggler/FlagListAttribute.html +29 -19
- data/doc/TaskJuggler/FloatAttribute.html +23 -13
- data/doc/TaskJuggler/FormatListAttribute.html +19 -9
- data/doc/TaskJuggler/GanttChart.html +94 -133
- data/doc/TaskJuggler/GanttContainer.html +11 -1
- data/doc/TaskJuggler/GanttHeader.html +11 -1
- data/doc/TaskJuggler/GanttHeaderScaleItem.html +11 -1
- data/doc/TaskJuggler/GanttLine.html +11 -1
- data/doc/TaskJuggler/GanttLoadStack.html +11 -1
- data/doc/TaskJuggler/GanttMilestone.html +11 -1
- data/doc/TaskJuggler/GanttRouter.html +247 -596
- data/doc/TaskJuggler/GanttTaskBar.html +11 -1
- data/doc/TaskJuggler/HTMLDocument.html +11 -1
- data/doc/TaskJuggler/HTMLGraphics.html +11 -1
- data/doc/TaskJuggler/Interval.html +11 -1
- data/doc/TaskJuggler/IntervalListAttribute.html +33 -23
- data/doc/TaskJuggler/JobInfo.html +11 -1
- data/doc/TaskJuggler/Journal.html +11 -1
- data/doc/TaskJuggler/JournalEntry.html +11 -1
- data/doc/TaskJuggler/JournalEntryList.html +11 -1
- data/doc/TaskJuggler/KeywordArray.html +11 -1
- data/doc/TaskJuggler/KeywordDocumentation.html +16 -6
- data/doc/TaskJuggler/Limits.html +11 -1
- data/doc/TaskJuggler/Limits/Limit.html +11 -1
- data/doc/TaskJuggler/LimitsAttribute.html +24 -14
- data/doc/TaskJuggler/ListAttributeBase.html +11 -1
- data/doc/TaskJuggler/Log.html +11 -1
- data/doc/TaskJuggler/LogFile.html +11 -1
- data/doc/TaskJuggler/LogicalAttribute.html +11 -1
- data/doc/TaskJuggler/LogicalExpression.html +11 -1
- data/doc/TaskJuggler/LogicalExpressionAttribute.html +19 -9
- data/doc/TaskJuggler/LogicalFlag.html +11 -1
- data/doc/TaskJuggler/LogicalFunction.html +11 -1
- data/doc/TaskJuggler/LogicalOperation.html +11 -1
- data/doc/TaskJuggler/Macro.html +11 -1
- data/doc/TaskJuggler/MacroTable.html +11 -1
- data/doc/TaskJuggler/ManagerResponsibilities.html +11 -1
- data/doc/TaskJuggler/ManagerStatusRecord.html +11 -1
- data/doc/TaskJuggler/Message.html +11 -1
- data/doc/TaskJuggler/MessageHandler.html +11 -1
- data/doc/TaskJuggler/Navigator.html +12 -2
- data/doc/TaskJuggler/NavigatorElement.html +11 -1
- data/doc/TaskJuggler/NikuProject.html +11 -1
- data/doc/TaskJuggler/NikuReport.html +11 -1
- data/doc/TaskJuggler/NikuResource.html +11 -1
- data/doc/TaskJuggler/NodeListAttribute.html +17 -7
- data/doc/TaskJuggler/PlaceHolderCell.html +722 -0
- data/doc/TaskJuggler/ProcessIntercom.html +11 -1
- data/doc/TaskJuggler/ProcessIntercomIface.html +11 -1
- data/doc/TaskJuggler/Project.html +587 -500
- data/doc/TaskJuggler/ProjectBroker.html +11 -1
- data/doc/TaskJuggler/ProjectBrokerIface.html +11 -1
- data/doc/TaskJuggler/ProjectFileParser.html +205 -192
- data/doc/TaskJuggler/ProjectFileScanner.html +230 -207
- data/doc/TaskJuggler/ProjectRecord.html +11 -1
- data/doc/TaskJuggler/ProjectServer.html +11 -1
- data/doc/TaskJuggler/ProjectServerIface.html +11 -1
- data/doc/TaskJuggler/PropertyAttribute.html +19 -9
- data/doc/TaskJuggler/PropertyList.html +95 -83
- data/doc/TaskJuggler/PropertySet.html +11 -1
- data/doc/TaskJuggler/PropertyTreeNode.html +11 -1
- data/doc/TaskJuggler/Query.html +234 -232
- data/doc/TaskJuggler/RTFHandlers.html +11 -1
- data/doc/TaskJuggler/RTFNavigator.html +11 -1
- data/doc/TaskJuggler/RTFQuery.html +11 -1
- data/doc/TaskJuggler/RTFReport.html +11 -1
- data/doc/TaskJuggler/RTFReportLink.html +11 -1
- data/doc/TaskJuggler/RTFWithQuerySupport.html +11 -1
- data/doc/TaskJuggler/RealFormat.html +12 -2
- data/doc/TaskJuggler/RealFormatAttribute.html +15 -5
- data/doc/TaskJuggler/ReferenceAttribute.html +38 -28
- data/doc/TaskJuggler/Report.html +96 -113
- data/doc/TaskJuggler/ReportBase.html +161 -152
- data/doc/TaskJuggler/ReportContext.html +11 -1
- data/doc/TaskJuggler/ReportServer.html +59 -48
- data/doc/TaskJuggler/ReportServerIface.html +51 -41
- data/doc/TaskJuggler/ReportServerRecord.html +11 -1
- data/doc/TaskJuggler/ReportServlet.html +11 -1
- data/doc/TaskJuggler/ReportTable.html +46 -25
- data/doc/TaskJuggler/ReportTableCell.html +296 -275
- data/doc/TaskJuggler/ReportTableColumn.html +14 -4
- data/doc/TaskJuggler/ReportTableLegend.html +11 -1
- data/doc/TaskJuggler/ReportTableLine.html +19 -7
- data/doc/TaskJuggler/Resource.html +12 -2
- data/doc/TaskJuggler/ResourceListAttribute.html +40 -30
- data/doc/TaskJuggler/ResourceListRE.html +11 -1
- data/doc/TaskJuggler/ResourceScenario.html +708 -565
- data/doc/TaskJuggler/RichText.html +54 -36
- data/doc/TaskJuggler/RichTextAttribute.html +31 -21
- data/doc/TaskJuggler/RichTextDocument.html +11 -1
- data/doc/TaskJuggler/RichTextElement.html +11 -1
- data/doc/TaskJuggler/RichTextFunctionExample.html +11 -1
- data/doc/TaskJuggler/RichTextFunctionHandler.html +11 -1
- data/doc/TaskJuggler/RichTextImage.html +11 -1
- data/doc/TaskJuggler/RichTextIntermediate.html +81 -71
- data/doc/TaskJuggler/RichTextParser.html +88 -33
- data/doc/TaskJuggler/RichTextScanner.html +45 -35
- data/doc/TaskJuggler/RichTextSnip.html +11 -1
- data/doc/TaskJuggler/RichTextSyntaxRules.html +436 -389
- data/doc/TaskJuggler/Scenario.html +11 -1
- data/doc/TaskJuggler/ScenarioData.html +11 -1
- data/doc/TaskJuggler/ScenarioListAttribute.html +23 -13
- data/doc/TaskJuggler/Scoreboard.html +92 -73
- data/doc/TaskJuggler/SheetHandlerBase.html +11 -1
- data/doc/TaskJuggler/SheetReceiver.html +11 -1
- data/doc/TaskJuggler/SheetSender.html +11 -1
- data/doc/TaskJuggler/Shift.html +11 -1
- data/doc/TaskJuggler/ShiftAssignment.html +11 -1
- data/doc/TaskJuggler/ShiftAssignments.html +11 -1
- data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +24 -14
- data/doc/TaskJuggler/ShiftScenario.html +11 -1
- data/doc/TaskJuggler/SimpleQueryExpander.html +11 -1
- data/doc/TaskJuggler/SortListAttribute.html +21 -11
- data/doc/TaskJuggler/SourceFileInfo.html +11 -1
- data/doc/TaskJuggler/StatusSheetReceiver.html +11 -1
- data/doc/TaskJuggler/StatusSheetReport.html +11 -1
- data/doc/TaskJuggler/StatusSheetSender.html +112 -11
- data/doc/TaskJuggler/StringAttribute.html +23 -13
- data/doc/TaskJuggler/SymbolAttribute.html +19 -9
- data/doc/TaskJuggler/SyntaxReference.html +80 -71
- data/doc/TaskJuggler/TOCEntry.html +11 -1
- data/doc/TaskJuggler/TSResourceRecord.html +11 -1
- data/doc/TaskJuggler/TSTaskRecord.html +11 -1
- data/doc/TaskJuggler/TableColumnDefinition.html +11 -1
- data/doc/TaskJuggler/TableOfContents.html +11 -1
- data/doc/TaskJuggler/TableReport.html +422 -411
- data/doc/TaskJuggler/Task.html +11 -1
- data/doc/TaskJuggler/TaskDependency.html +11 -1
- data/doc/TaskJuggler/TaskListAttribute.html +33 -23
- data/doc/TaskJuggler/TaskListRE.html +11 -1
- data/doc/TaskJuggler/TaskScenario.html +2007 -1919
- data/doc/TaskJuggler/TextFormatter.html +11 -1
- data/doc/TaskJuggler/TextParser.html +421 -612
- data/doc/TaskJuggler/TextParser/Pattern.html +410 -211
- data/doc/TaskJuggler/TextParser/Rule.html +224 -152
- data/doc/TaskJuggler/TextParser/StackElement.html +190 -28
- data/doc/TaskJuggler/TextParser/State.html +989 -0
- data/doc/TaskJuggler/TextParser/StateTransition.html +782 -0
- data/doc/TaskJuggler/TextParser/TextParserResultArray.html +25 -14
- data/doc/TaskJuggler/TextParser/TokenDoc.html +11 -1
- data/doc/TaskJuggler/TextReport.html +11 -1
- data/doc/TaskJuggler/TextScanner.html +285 -273
- data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +17 -7
- data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +24 -14
- data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +11 -1
- data/doc/TaskJuggler/TextScanner/StreamHandle.html +64 -52
- data/doc/TaskJuggler/TimeSheet.html +11 -1
- data/doc/TaskJuggler/TimeSheetReceiver.html +11 -1
- data/doc/TaskJuggler/TimeSheetRecord.html +11 -1
- data/doc/TaskJuggler/TimeSheetReport.html +11 -1
- data/doc/TaskJuggler/TimeSheetSender.html +11 -1
- data/doc/TaskJuggler/TimeSheetSummary.html +11 -1
- data/doc/TaskJuggler/TimeSheets.html +11 -1
- data/doc/TaskJuggler/Tj3AppBase.html +11 -1
- data/doc/TaskJuggler/Tj3Client.html +11 -1
- data/doc/TaskJuggler/Tj3Daemon.html +11 -1
- data/doc/TaskJuggler/Tj3SheetAppBase.html +11 -1
- data/doc/TaskJuggler/Tj3SsReceiver.html +11 -1
- data/doc/TaskJuggler/Tj3SsSender.html +11 -1
- data/doc/TaskJuggler/Tj3TsReceiver.html +11 -1
- data/doc/TaskJuggler/Tj3TsSender.html +11 -1
- data/doc/TaskJuggler/Tj3TsSummary.html +11 -1
- data/doc/TaskJuggler/TjException.html +11 -1
- data/doc/TaskJuggler/TjTime.html +474 -324
- data/doc/TaskJuggler/TjpExample.html +11 -1
- data/doc/TaskJuggler/TjpExportRE.html +11 -1
- data/doc/TaskJuggler/TjpSyntaxRules.html +3731 -3662
- data/doc/TaskJuggler/URLParameter.html +11 -1
- data/doc/TaskJuggler/UserManual.html +11 -1
- data/doc/TaskJuggler/VimSyntax.html +11 -1
- data/doc/TaskJuggler/WebServer.html +11 -1
- data/doc/TaskJuggler/WorkingHours.html +295 -221
- data/doc/TaskJuggler/WorkingHoursAttribute.html +11 -1
- data/doc/TaskJuggler/XMLBlob.html +11 -1
- data/doc/TaskJuggler/XMLComment.html +11 -1
- data/doc/TaskJuggler/XMLDocument.html +11 -1
- data/doc/TaskJuggler/XMLElement.html +11 -1
- data/doc/TaskJuggler/XMLNamedText.html +11 -1
- data/doc/TaskJuggler/XMLText.html +11 -1
- data/doc/index.html +694 -624
- data/doc/lib/AppConfig_rb.html +1 -1
- data/doc/lib/Attributes_rb.html +1 -1
- data/doc/lib/Booking_rb.html +1 -1
- data/doc/lib/DataCache_rb.html +69 -0
- data/doc/lib/KeywordDocumentation_rb.html +1 -1
- data/doc/lib/ProjectFileParser_rb.html +1 -1
- data/doc/lib/ProjectFileScanner_rb.html +1 -1
- data/doc/lib/Project_rb.html +1 -1
- data/doc/lib/PropertyList_rb.html +1 -1
- data/doc/lib/Query_rb.html +1 -1
- data/doc/lib/RealFormat_rb.html +1 -1
- data/doc/lib/ResourceScenario_rb.html +1 -1
- data/doc/lib/Resource_rb.html +1 -1
- data/doc/lib/RichTextParser_rb.html +1 -1
- data/doc/lib/RichTextScanner_rb.html +1 -1
- data/doc/lib/RichTextSyntaxRules_rb.html +1 -1
- data/doc/lib/RichText_rb.html +1 -1
- data/doc/lib/Scoreboard_rb.html +1 -1
- data/doc/lib/StatusSheetSender_rb.html +1 -1
- data/doc/lib/SyntaxReference_rb.html +1 -1
- data/doc/lib/TaskJuggler_rb.html +1 -1
- data/doc/lib/TaskScenario_rb.html +3 -1
- data/doc/lib/TextParser/Pattern_rb.html +3 -1
- data/doc/lib/TextParser/Rule_rb.html +3 -1
- data/doc/lib/TextParser/StackElement_rb.html +3 -1
- data/doc/lib/TextParser/State_rb.html +65 -0
- data/doc/lib/TextParser_rb.html +1 -1
- data/doc/lib/TextScanner_rb.html +1 -1
- data/doc/lib/Tj3Config_rb.html +1 -1
- data/doc/lib/TjTime_rb.html +1 -1
- data/doc/lib/TjpSyntaxRules_rb.html +1 -1
- data/doc/lib/WorkingHours_rb.html +3 -1
- data/doc/lib/daemon/ReportServer_rb.html +1 -1
- data/doc/lib/reports/CSVFile_rb.html +1 -1
- data/doc/lib/reports/CollisionDetector_rb.html +67 -0
- data/doc/lib/reports/GanttChart_rb.html +1 -1
- data/doc/lib/reports/GanttRouter_rb.html +3 -1
- data/doc/lib/reports/Navigator_rb.html +1 -1
- data/doc/lib/reports/ReportBase_rb.html +1 -1
- data/doc/lib/reports/ReportTableCell_rb.html +1 -1
- data/doc/lib/reports/ReportTableColumn_rb.html +1 -1
- data/doc/lib/reports/ReportTableLine_rb.html +1 -1
- data/doc/lib/reports/ReportTable_rb.html +1 -1
- data/doc/lib/reports/Report_rb.html +1 -1
- data/doc/lib/reports/TableReport_rb.html +1 -1
- data/doc/lib/taskjuggler3_rb.html +1 -1
- data/examples/tutorial.tjp +1 -2
- data/lib/AppConfig.rb +10 -4
- data/lib/Attributes.rb +4 -4
- data/lib/DataCache.rb +124 -0
- data/lib/KeywordDocumentation.rb +5 -5
- data/lib/Project.rb +54 -10
- data/lib/ProjectFileParser.rb +10 -9
- data/lib/ProjectFileScanner.rb +38 -25
- data/lib/PropertyList.rb +6 -4
- data/lib/Query.rb +0 -8
- data/lib/RealFormat.rb +1 -1
- data/lib/Resource.rb +1 -1
- data/lib/ResourceScenario.rb +96 -31
- data/lib/RichText.rb +17 -5
- data/lib/RichTextParser.rb +22 -9
- data/lib/RichTextScanner.rb +34 -34
- data/lib/RichTextSyntaxRules.rb +41 -36
- data/lib/Scoreboard.rb +16 -7
- data/lib/StatusSheetSender.rb +63 -0
- data/lib/SyntaxReference.rb +9 -10
- data/lib/TaskJuggler.rb +28 -4
- data/lib/TaskScenario.rb +66 -19
- data/lib/TextParser.rb +219 -384
- data/lib/TextParser/Pattern.rb +168 -49
- data/lib/TextParser/Rule.rb +33 -17
- data/lib/TextParser/StackElement.rb +42 -2
- data/lib/TextParser/State.rb +175 -0
- data/lib/TextScanner.rb +19 -15
- data/lib/Tj3Config.rb +1 -1
- data/lib/TjTime.rb +111 -3
- data/lib/TjpSyntaxRules.rb +122 -66
- data/lib/WorkingHours.rb +91 -186
- data/lib/daemon/ReportServer.rb +3 -2
- data/lib/reports/CSVFile.rb +1 -1
- data/lib/reports/CollisionDetector.rb +177 -0
- data/lib/reports/GanttChart.rb +25 -41
- data/lib/reports/GanttRouter.rb +104 -233
- data/lib/reports/Navigator.rb +1 -1
- data/lib/reports/Report.rb +9 -33
- data/lib/reports/ReportBase.rb +0 -1
- data/lib/reports/ReportTable.rb +19 -8
- data/lib/reports/ReportTableCell.rb +61 -25
- data/lib/reports/ReportTableColumn.rb +2 -2
- data/lib/reports/ReportTableLine.rb +4 -2
- data/lib/reports/TableReport.rb +1 -0
- data/lib/taskjuggler3.rb +0 -1
- data/manual/Installation +7 -3
- data/manual/Intro +12 -10
- data/manual/The_TaskJuggler_Syntax +4 -4
- data/test/TestSuite/CSV-Reports/celltext-Reference.csv +14 -14
- data/test/TestSuite/CSV-Reports/genrefs +1 -1
- data/test/TestSuite/CSV-Reports/resourcereport-Reference.csv +4 -4
- data/test/TestSuite/CSV-Reports/resourcereport_with_tasks-Reference.csv +22 -22
- data/test/TestSuite/CSV-Reports/sortByTree-Reference.csv +14 -14
- data/test/TestSuite/CSV-Reports/sortBy_duration.down-Reference.csv +14 -14
- data/test/TestSuite/CSV-Reports/sortBy_effort.up-Reference.csv +14 -14
- data/test/TestSuite/CSV-Reports/sortBy_plan.start.down-Reference.csv +14 -14
- data/test/TestSuite/CSV-Reports/taskreport-Reference.csv +14 -14
- data/test/TestSuite/CSV-Reports/taskreport_with_resources-Reference.csv +32 -24
- data/test/TestSuite/CSV-Reports/weekly-Reference.csv +13 -0
- data/test/TestSuite/CSV-Reports/weekly.tjp +9 -0
- data/test/TestSuite/HTML-Reports/css/tjreport.css +7 -2
- data/test/TestSuite/HTML-Reports/depArrows.html +839 -830
- data/test/TestSuite/HTML-Reports/depArrows.tjp +12 -12
- data/test/TestSuite/HTML-Reports/profile.html +37581 -0
- data/test/TestSuite/ReportGenerator/Errors/no_report_defined.tjp +7 -0
- data/test/TestSuite/ReportGenerator/Errors/rtp_report_recursion.tjp +1 -1
- data/test/TestSuite/StatusSheets/TimeSheets/2002-03-01/missing-reports +2 -0
- data/test/TestSuite/StatusSheets/run +2 -0
- data/test/TestSuite/Syntax/Correct/Booking.tjp +13 -5
- data/test/TestSuite/Syntax/Correct/ResourceRoot.tjp +21 -0
- data/test/TestSuite/Syntax/Correct/RollupResource.tjp +21 -0
- data/test/TestSuite/Syntax/Correct/TaskRoot.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/empty.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/include_before_project.tjp +2 -0
- data/test/TestSuite/Syntax/Errors/no_reduce.tjp +6 -0
- data/test/TestSuite/Syntax/Errors/unsupported_token.tjp +1 -1
- data/test/TestSuite/TimeSheets/run +1 -1
- data/test/test_CSV-Reports.rb +2 -4
- data/test/test_CollisionDetector.rb +85 -0
- data/test/test_Project.rb +2 -2
- data/test/test_ProjectFileScanner.rb +73 -31
- data/test/test_Query.rb +2 -2
- data/test/test_ReportGenerator.rb +1 -1
- data/test/test_RichText.rb +4 -4
- data/test/test_WorkingHours.rb +150 -11
- metadata +75 -67
- data/test/TestSuite/ReportGenerator/Errors/css/tjreport.css +0 -407
- data/test/TestSuite/ReportGenerator/Errors/rtp_report_recursion.html +0 -26
- data/test/TestSuite/Scheduler/Correct/Allocate.html +0 -3210
- data/test/TestSuite/Scheduler/Correct/Container.html +0 -349
- data/test/TestSuite/Scheduler/Correct/Limits.html +0 -4964
- data/test/TestSuite/Scheduler/Correct/Shift.html +0 -1719
- data/test/TestSuite/Scheduler/Correct/Shift2.html +0 -476
- data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +0 -66
- data/test/TestSuite/Scheduler/Correct/icons/details.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/flag-green.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/flag-red.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/flag-yellow.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/resource.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/resourcegroup.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/task.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/taskgroup.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/trend-down.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/trend-flat.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/trend-up.png +0 -0
- data/test/TestSuite/Scheduler/Correct/scripts/wz_tooltip.js +0 -1301
- data/test/TestSuite/Scheduler/Errors/css/tjmanual.css +0 -66
- data/test/TestSuite/Scheduler/Errors/css/tjreport.css +0 -407
- data/test/TestSuite/Scheduler/Errors/icons/details.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/flag-green.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/flag-red.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/flag-yellow.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/resource.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/resourcegroup.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/task.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/taskgroup.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/trend-down.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/trend-flat.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/trend-up.png +0 -0
- data/test/TestSuite/Scheduler/Errors/scripts/wz_tooltip.js +0 -1301
- data/test/TestSuite/StatusSheets/resrep.tji +0 -7
- data/test/TestSuite/StatusSheets/tj3d.log +0 -312
- data/test/TestSuite/Syntax/Correct/Managers.html +0 -263
- data/test/TestSuite/TimeSheets/acceptable_intervals +0 -1
- data/test/TestSuite/TimeSheets/statussheets.log +0 -1
data/lib/reports/Navigator.rb
CHANGED
data/lib/reports/Report.rb
CHANGED
|
@@ -141,7 +141,7 @@ class TaskJuggler
|
|
|
141
141
|
cssFileName = (auxSrcDir ? auxSrcDir + '/tjreport.css' : '')
|
|
142
142
|
# Raise an error if we haven't found the data directory
|
|
143
143
|
if auxSrcDir.nil? || !File.exists?(cssFileName)
|
|
144
|
-
dataDirError(cssFileName)
|
|
144
|
+
dataDirError(cssFileName, AppConfig.dataSearchDirs('data/css'))
|
|
145
145
|
end
|
|
146
146
|
cssFile = IO.read(cssFileName)
|
|
147
147
|
if cssFile.empty?
|
|
@@ -214,35 +214,6 @@ EOT
|
|
|
214
214
|
# CSV format can only handle the first element.
|
|
215
215
|
return nil unless (csv = @content.to_csv)
|
|
216
216
|
|
|
217
|
-
# Expand nested tables into the outer table.
|
|
218
|
-
columnIdx = 0
|
|
219
|
-
while columnIdx < csv[0].length do
|
|
220
|
-
if csv[0][columnIdx].is_a?(Array)
|
|
221
|
-
# We've found a nested table.
|
|
222
|
-
nestedTable = csv[0][columnIdx]
|
|
223
|
-
# The nested table must have exactly as many lines as the outer table.
|
|
224
|
-
if csv.length != nestedTable.length
|
|
225
|
-
raise "Table size mismatch"
|
|
226
|
-
end
|
|
227
|
-
# Insert the nested table into the lines of the outer table.
|
|
228
|
-
csv.each do |line|
|
|
229
|
-
lineIdx = csv.index(line)
|
|
230
|
-
if lineIdx == 0
|
|
231
|
-
# The header cell can be reused.
|
|
232
|
-
line[columnIdx] = nestedTable[lineIdx]
|
|
233
|
-
else
|
|
234
|
-
# For normal lines we have no cells for the table. Just inject
|
|
235
|
-
# them.
|
|
236
|
-
line.insert(columnIdx, nestedTable[lineIdx])
|
|
237
|
-
end
|
|
238
|
-
# Make sure there are no more Arrays nested into the line.
|
|
239
|
-
line.flatten!
|
|
240
|
-
end
|
|
241
|
-
else
|
|
242
|
-
columnIdx += 1
|
|
243
|
-
end
|
|
244
|
-
end
|
|
245
|
-
|
|
246
217
|
# Use the CSVFile class to write the Array of Arrays to a colon
|
|
247
218
|
# separated file. Write to $stdout if the filename was set to '.'.
|
|
248
219
|
begin
|
|
@@ -300,7 +271,9 @@ EOT
|
|
|
300
271
|
# Find the data directory that came with the TaskJuggler installation.
|
|
301
272
|
auxSrcDir = AppConfig.dataDirs("data/#{dirName}")[0].untaint
|
|
302
273
|
# Raise an error if we haven't found the data directory
|
|
303
|
-
|
|
274
|
+
if auxSrcDir.nil? || !File.exists?(auxSrcDir)
|
|
275
|
+
dataDirError(dirName, AppConfig.dataSearchDirs("data/#{dirName}"))
|
|
276
|
+
end
|
|
304
277
|
# Don't copy directory if all files are up-to-date.
|
|
305
278
|
return if directoryUpToDate?(auxSrcDir, auxDstDir + dirName)
|
|
306
279
|
|
|
@@ -322,13 +295,16 @@ EOT
|
|
|
322
295
|
true
|
|
323
296
|
end
|
|
324
297
|
|
|
325
|
-
def dataDirError(dirName)
|
|
298
|
+
def dataDirError(dirName, dirs)
|
|
326
299
|
error('data_dir_error', <<"EOT"
|
|
327
300
|
Cannot find the #{dirName} directory. This is usually the result of an
|
|
328
301
|
improper TaskJuggler installation. If you know the directory, you can use the
|
|
329
302
|
TASKJUGGLER_DATA_PATH environment variable to specify the location. The
|
|
330
303
|
variable should be set to the path without the /data at the end. Multiple
|
|
331
|
-
directories must be separated by colons.
|
|
304
|
+
directories must be separated by colons. The following directories have been
|
|
305
|
+
tried:
|
|
306
|
+
|
|
307
|
+
#{dirs.join("\n")}
|
|
332
308
|
EOT
|
|
333
309
|
)
|
|
334
310
|
end
|
data/lib/reports/ReportBase.rb
CHANGED
data/lib/reports/ReportTable.rb
CHANGED
|
@@ -131,16 +131,27 @@ class TaskJuggler
|
|
|
131
131
|
|
|
132
132
|
# Convert the intermediate representation into an Array of Arrays. _csv_ is
|
|
133
133
|
# the destination Array of Arrays. It may contain columns already.
|
|
134
|
-
def to_csv(csv =
|
|
135
|
-
|
|
136
|
-
|
|
134
|
+
def to_csv(csv = [[ ]], startColumn = 0)
|
|
135
|
+
# Generate the header line.
|
|
136
|
+
columnIdx = startColumn
|
|
137
|
+
@columns.each do |col|
|
|
138
|
+
columnIdx += col.to_csv(csv, columnIdx)
|
|
139
|
+
end
|
|
137
140
|
|
|
138
|
-
@
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
141
|
+
if @embedded
|
|
142
|
+
columnIdx - startColumn
|
|
143
|
+
else
|
|
144
|
+
# Content of embedded tables is inserted when generating the
|
|
145
|
+
# respective Line.
|
|
146
|
+
lineIdx = 1
|
|
147
|
+
@lines.each do |line|
|
|
148
|
+
# Insert a new Array for each line.
|
|
149
|
+
csv[lineIdx] = []
|
|
150
|
+
line.to_csv(csv, startColumn, lineIdx)
|
|
151
|
+
lineIdx += 1
|
|
152
|
+
end
|
|
153
|
+
csv
|
|
142
154
|
end
|
|
143
|
-
csv
|
|
144
155
|
end
|
|
145
156
|
|
|
146
157
|
private
|
|
@@ -35,6 +35,7 @@ class TaskJuggler
|
|
|
35
35
|
@line = line
|
|
36
36
|
@line.addCell(self) if line
|
|
37
37
|
|
|
38
|
+
# Specifies whether this is a header cell or not.
|
|
38
39
|
@headerCell = headerCell
|
|
39
40
|
# A copy of a Query object that is needed to access project data via the
|
|
40
41
|
# query function.
|
|
@@ -49,6 +50,7 @@ class TaskJuggler
|
|
|
49
50
|
@showTooltipHint = true
|
|
50
51
|
# The original data of the cell content (optional, nil if not provided)
|
|
51
52
|
@data = nil
|
|
53
|
+
# Determines the background color of the cell.
|
|
52
54
|
@category = nil
|
|
53
55
|
@hidden = false
|
|
54
56
|
# How to horizontally align the cell
|
|
@@ -139,35 +141,43 @@ class TaskJuggler
|
|
|
139
141
|
end
|
|
140
142
|
|
|
141
143
|
# Add the text content of the cell to an Array of Arrays form of the table.
|
|
142
|
-
def to_csv(csv)
|
|
144
|
+
def to_csv(csv, columnIdx, lineIdx)
|
|
143
145
|
# We only support left indentation in CSV files as the spaces for right
|
|
144
146
|
# indentation will be disregarded by most applications.
|
|
145
147
|
indent = @indent && @alignment == :left ? ' ' * @indent : ''
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
str.
|
|
148
|
+
columns = 1
|
|
149
|
+
if @special
|
|
150
|
+
# This is for nested tables. They will be inserted as whole columns
|
|
151
|
+
# in the existing table.
|
|
152
|
+
csv[lineIdx][columnIdx] = nil
|
|
153
|
+
columns = @special.to_csv(csv, columnIdx)
|
|
154
|
+
else
|
|
155
|
+
cell =
|
|
156
|
+
if @data && @data.is_a?(String)
|
|
157
|
+
@data
|
|
158
|
+
elsif @text
|
|
159
|
+
if @text.respond_to?('functionHandler')
|
|
160
|
+
@text.setQuery(@query)
|
|
161
|
+
end
|
|
162
|
+
str = @text.to_s
|
|
163
|
+
# Remove any trailing line breaks. These don't really make much
|
|
164
|
+
# sense in CSV files.
|
|
165
|
+
while str[-1] == ?\n
|
|
166
|
+
str.chomp!
|
|
167
|
+
end
|
|
168
|
+
str
|
|
161
169
|
end
|
|
162
|
-
str
|
|
163
|
-
end
|
|
164
170
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
171
|
+
# Try to convert numbers and other types to their native Ruby type if
|
|
172
|
+
# they are supported by CSVFile.
|
|
173
|
+
native = CSVFile.strToNative(cell)
|
|
168
174
|
|
|
169
|
-
|
|
170
|
-
|
|
175
|
+
# Only for String objects, we add the indentation.
|
|
176
|
+
csv[lineIdx][columnIdx] = (native.is_a?(String) ? indent + native :
|
|
177
|
+
native)
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
return columns
|
|
171
181
|
end
|
|
172
182
|
|
|
173
183
|
private
|
|
@@ -260,10 +270,11 @@ class TaskJuggler
|
|
|
260
270
|
|
|
261
271
|
shortText, singleLine = shortVersion(textAsString)
|
|
262
272
|
|
|
263
|
-
if (@line && @line.table.equiLines && (!singleLine || @width ))
|
|
264
|
-
!@
|
|
273
|
+
if (@line && @line.table.equiLines && (!singleLine || @width )) &&
|
|
274
|
+
!@headerCell
|
|
265
275
|
# The cell is size-limited. We only put a shortened plain-text version
|
|
266
276
|
# in the cell and provide the full content via a tooltip.
|
|
277
|
+
# Header cells are never shortened.
|
|
267
278
|
tooltip = @text if shortText != textAsString
|
|
268
279
|
td << XMLText.new(shortText)
|
|
269
280
|
else
|
|
@@ -322,5 +333,30 @@ class TaskJuggler
|
|
|
322
333
|
|
|
323
334
|
end
|
|
324
335
|
|
|
336
|
+
# This class is used to model cells that are just placeholders for a line of
|
|
337
|
+
# an embedded ReportTable.
|
|
338
|
+
class PlaceHolderCell
|
|
339
|
+
|
|
340
|
+
# Create a new placeholder cell. _line_ is the line that this cell belongs
|
|
341
|
+
# to. _embeddedLine_ is the ReportTableLine that is embedded in this cell.
|
|
342
|
+
def initialize(line, embeddedLine)
|
|
343
|
+
@line = line
|
|
344
|
+
@line.addCell(self) if line
|
|
345
|
+
@embeddedLine = embeddedLine
|
|
346
|
+
end
|
|
347
|
+
|
|
348
|
+
# Add the current cell to the _csv_ CSV Arrays. _columnIdx_ is the start
|
|
349
|
+
# column in the _csv_. _lineIdx_ is the index of the current line. The
|
|
350
|
+
# return value is the number of added cells.
|
|
351
|
+
def to_csv(csv, columnIdx, lineIdx)
|
|
352
|
+
@embeddedLine.to_csv(csv, columnIdx, lineIdx)
|
|
353
|
+
end
|
|
354
|
+
|
|
355
|
+
def to_html
|
|
356
|
+
nil
|
|
357
|
+
end
|
|
358
|
+
|
|
359
|
+
end
|
|
360
|
+
|
|
325
361
|
end
|
|
326
362
|
|
|
@@ -71,9 +71,9 @@ class TaskJuggler
|
|
|
71
71
|
# Put the abstract representation into an Array. _csv_ is an Array of Arrays
|
|
72
72
|
# of Strings. We have an Array with Strings for every cell. The outer Array
|
|
73
73
|
# holds the Arrays representing the lines.
|
|
74
|
-
def to_csv(csv)
|
|
74
|
+
def to_csv(csv, startColumn)
|
|
75
75
|
# For CSV reports we can only include the first header line.
|
|
76
|
-
@cell1.to_csv(csv)
|
|
76
|
+
@cell1.to_csv(csv, startColumn, 0)
|
|
77
77
|
end
|
|
78
78
|
|
|
79
79
|
end
|
|
@@ -83,10 +83,12 @@ class TaskJuggler
|
|
|
83
83
|
|
|
84
84
|
# Convert the intermediate format into an Array of values. One entry for
|
|
85
85
|
# every column cell of this line.
|
|
86
|
-
def to_csv(csv)
|
|
86
|
+
def to_csv(csv, startColumn, lineIdx)
|
|
87
|
+
columnIdx = startColumn
|
|
87
88
|
@cells.each do |cell|
|
|
88
|
-
cell.to_csv(csv)
|
|
89
|
+
columnIdx += cell.to_csv(csv, columnIdx, lineIdx)
|
|
89
90
|
end
|
|
91
|
+
columnIdx - startColumn
|
|
90
92
|
end
|
|
91
93
|
|
|
92
94
|
end
|
data/lib/reports/TableReport.rb
CHANGED
|
@@ -581,6 +581,7 @@ class TaskJuggler
|
|
|
581
581
|
tcLine = ReportTableLine.new(columnDef.column.cell1.special,
|
|
582
582
|
line.property, line.scopeLine)
|
|
583
583
|
|
|
584
|
+
PlaceHolderCell.new(line, tcLine)
|
|
584
585
|
# Depending on the property type we use different generator functions.
|
|
585
586
|
if property.is_a?(Task)
|
|
586
587
|
genCalChartTaskCell(query, tcLine, columnDef, start, sameTimeNextFunc)
|
data/lib/taskjuggler3.rb
CHANGED
data/manual/Installation
CHANGED
|
@@ -21,8 +21,12 @@ have the minimum required version installed.
|
|
|
21
21
|
runtime environment to run it. This can be downloaded from
|
|
22
22
|
[http://www.ruby-lang.org/en/downloads/ here]. Most Linux
|
|
23
23
|
distributions usually have Ruby already included. So does MacOS X
|
|
24
|
-
Leopard. For Windows, there is a one-click installer available.
|
|
25
|
-
|
|
24
|
+
Leopard. For Windows, there is a one-click installer available. The
|
|
25
|
+
recommended Ruby version to make full use of TaskJuggler is 1.9.2.
|
|
26
|
+
Ruby 1.9.1 contains some bugs that prevent the multi-core support to
|
|
27
|
+
work. For users that are not interested in multi-core support, the web
|
|
28
|
+
server, the time sheet infrastructure and daemon Ruby 1.8.7 is still
|
|
29
|
+
ok to use.
|
|
26
30
|
|
|
27
31
|
* '''RubyGems:''' If it did not come with your OS or the Ruby
|
|
28
32
|
installation, see [http://docs.rubygems.org here] how to get and
|
|
@@ -45,7 +49,7 @@ or command window:
|
|
|
45
49
|
gem install taskjuggler
|
|
46
50
|
|
|
47
51
|
This will download and install the latest version from the
|
|
48
|
-
[http://
|
|
52
|
+
[http://rubygems.org/gems/taskjuggler RubyGems.org] site.
|
|
49
53
|
|
|
50
54
|
==== The manual way ====
|
|
51
55
|
|
data/manual/Intro
CHANGED
|
@@ -34,11 +34,11 @@ will become a companion you don't want to miss anymore.
|
|
|
34
34
|
=== About TaskJuggler III ===
|
|
35
35
|
|
|
36
36
|
TaskJuggler III is the completely re-implemented version of the TaskJuggler
|
|
37
|
-
2.x series.
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
37
|
+
2.x series. We have not yet released a stable version. It already is
|
|
38
|
+
mostly stable and each official release is installed by more than a
|
|
39
|
+
1000 users. The code base is still in active development and the
|
|
40
|
+
quality and reliability may change daily. You are welcome to try it
|
|
41
|
+
and play with it, but be sure to independently check all results.
|
|
42
42
|
|
|
43
43
|
TaskJuggler is a commandline tool that you use from a
|
|
44
44
|
[http://en.wikipedia.org/wiki/Shell_(computing) shell]. This does not
|
|
@@ -84,22 +84,24 @@ License].
|
|
|
84
84
|
|
|
85
85
|
=== Features and Highlights ===
|
|
86
86
|
|
|
87
|
-
* Manages tasks, resources and
|
|
87
|
+
* Manages tasks, resources, costs and revenue in one package
|
|
88
88
|
* Automatic resource leveling and tasks conflict resolution
|
|
89
89
|
* Flexible working hours and vacation handling
|
|
90
90
|
* Multiple timezone support
|
|
91
91
|
* Support for shift working
|
|
92
92
|
* Project tracking and status reporting
|
|
93
|
+
* Server based time sheet system for status and actual collection
|
|
93
94
|
* Unlimited number of scenarios (baselines) of same project for what-if
|
|
94
95
|
analysis
|
|
95
96
|
* CSV data export for exchange with popular office software
|
|
97
|
+
* Support for profit/loss analysis
|
|
98
|
+
* Built-in web server for dynamically generated reports
|
|
96
99
|
* Project breakdown and management team support
|
|
97
100
|
* Powerful and flexible filtering functions to provide the right
|
|
98
101
|
amount of detail to the right audience
|
|
99
|
-
*
|
|
100
|
-
*
|
|
101
|
-
* Support for
|
|
102
|
-
* Powerful project description syntax with macro support
|
|
102
|
+
* Project description syntax with macro support
|
|
103
|
+
* Detailed reference manual
|
|
104
|
+
* Support for project management teams and revision control
|
|
103
105
|
|
|
104
106
|
=== TaskJuggler on the Web ===
|
|
105
107
|
|
|
@@ -110,8 +110,8 @@ provided in the project header.
|
|
|
110
110
|
* ''''now'''' The current date. If the user does not provide a date
|
|
111
111
|
with the [[now]] keyword, the moment of the processing of the file
|
|
112
112
|
will be inserted. Keep in mind that this will change every time you
|
|
113
|
-
process your project.
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
113
|
+
process your project. The current setting of [[timeformat]] has no
|
|
114
|
+
impact on the expansion of the macro.
|
|
115
|
+
* ''''today'''' Identical to ''''now'''' but formatted according to
|
|
116
|
+
the [[timeformat]] setting of the current context.
|
|
117
117
|
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
WBS;Name
|
|
2
|
-
1;Plan Work (plan)
|
|
3
|
-
1.1; Plan A (plan.plan_a)
|
|
4
|
-
1.2; Plan B (plan.plan_b)
|
|
5
|
-
1.3; Plan C (plan.plan_c)
|
|
6
|
-
2;Execute Work (execute)
|
|
7
|
-
2.1; Step 1 (execute.ex1)
|
|
8
|
-
2.2; Step 2 (execute.ex2)
|
|
9
|
-
2.2.1; Step 2.1 (execute.ex2.ex2_1)
|
|
10
|
-
2.2.2; Step 2.2 (execute.ex2.ex2_2)
|
|
11
|
-
2.
|
|
12
|
-
2.
|
|
13
|
-
2.
|
|
14
|
-
3;Check Work (check)
|
|
1
|
+
"WBS";"Name"
|
|
2
|
+
1;"Plan Work (plan)"
|
|
3
|
+
1.1;" Plan A (plan.plan_a)"
|
|
4
|
+
1.2;" Plan B (plan.plan_b)"
|
|
5
|
+
1.3;" Plan C (plan.plan_c)"
|
|
6
|
+
2;"Execute Work (execute)"
|
|
7
|
+
2.1;" Step 1 (execute.ex1)"
|
|
8
|
+
2.2;" Step 2 (execute.ex2)"
|
|
9
|
+
"2.2.1";" Step 2.1 (execute.ex2.ex2_1)"
|
|
10
|
+
"2.2.2";" Step 2.2 (execute.ex2.ex2_2)"
|
|
11
|
+
2.4;" Step 3 (execute.ex3)"
|
|
12
|
+
2.5;" Step 4 (execute.ex4)"
|
|
13
|
+
2.3;" Milestone 1 (execute.ms1)"
|
|
14
|
+
3;"Check Work (check)"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
WBS;Name;Effort;2007-12-10-00:00:00;2007-12-17-00:00:00;2007-12-24-00:00:00;2007-12-31-00:00:00;2008-01-07-00:00:00;2008-01-14-00:00:00;2008-01-21-00:00:00;2008-01-28-00:00:00;2008-02-04-00:00:00;2008-02-11-00:00:00;2008-02-18-00:00:00
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"WBS";"Name";"Effort";"2007-12-03-00:00:00";"2007-12-10-00:00:00";"2007-12-17-00:00:00";"2007-12-24-00:00:00";"2007-12-31-00:00:00";"2008-01-07-00:00:00";"2008-01-14-00:00:00";"2008-01-21-00:00:00";"2008-01-28-00:00:00";"2008-02-04-00:00:00";"2008-02-11-00:00:00";"2008-02-18-00:00:00"
|
|
2
|
+
3;"Jack";17.0;"";"";"";"";"";3.0;5.0;4.0;"";5.0;"";""
|
|
3
|
+
1;"Jill";42.5;"";"";5.0;2.5;5.0;5.0;5.0;5.0;5.0;5.0;5.0;""
|
|
4
|
+
2;"Joe";14.0;"";"";5.0;5.0;"";2.0;"";"";"";2.0;"";""
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
WBS;Name;Effort;2007-12-10-00:00:00;2007-12-17-00:00:00;2007-12-24-00:00:00;2007-12-31-00:00:00;2008-01-07-00:00:00;2008-01-14-00:00:00;2008-01-21-00:00:00;2008-01-28-00:00:00;2008-02-04-00:00:00;2008-02-11-00:00:00;2008-02-18-00:00:00
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
2;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
2;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
2.2.
|
|
22
|
-
|
|
1
|
+
"WBS";"Name";"Effort";"2007-12-03-00:00:00";"2007-12-10-00:00:00";"2007-12-17-00:00:00";"2007-12-24-00:00:00";"2007-12-31-00:00:00";"2008-01-07-00:00:00";"2008-01-14-00:00:00";"2008-01-21-00:00:00";"2008-01-28-00:00:00";"2008-02-04-00:00:00";"2008-02-11-00:00:00";"2008-02-18-00:00:00"
|
|
2
|
+
3;"Jack";17.0;"";"";"";"";"";3.0;5.0;4.0;"";5.0;"";""
|
|
3
|
+
2;" Execute Work";17.0;"";"";"";"";"";3.0;5.0;4.0;"";5.0;"";""
|
|
4
|
+
2.2;" Step 2";5.0;"";"";"";"";"";"";"";"";"";5.0;"";""
|
|
5
|
+
" 2.2.2";" Step 2.2";5.0;"";"";"";"";"";"";"";"";"";5.0;"";""
|
|
6
|
+
2.4;" Step 3";12.0;"";"";"";"";"";3.0;5.0;4.0;"";"";"";""
|
|
7
|
+
1;"Jill";42.5;"";"";5.0;2.5;5.0;5.0;5.0;5.0;5.0;5.0;5.0;""
|
|
8
|
+
1;" Plan Work";12.5;"";"";5.0;2.5;5.0;"";"";"";"";"";"";""
|
|
9
|
+
1.2;" Plan B";7.5;"";"";5.0;2.5;"";"";"";"";"";"";"";""
|
|
10
|
+
1.3;" Plan C";5.0;"";"";"";"";5.0;"";"";"";"";"";"";""
|
|
11
|
+
2;" Execute Work";25.0;"";"";"";"";"";5.0;5.0;5.0;5.0;5.0;"";""
|
|
12
|
+
2.1;" Step 1";20.0;"";"";"";"";"";5.0;5.0;5.0;5.0;"";"";""
|
|
13
|
+
2.2;" Step 2";5.0;"";"";"";"";"";"";"";"";"";5.0;"";""
|
|
14
|
+
" 2.2.2";" Step 2.2";5.0;"";"";"";"";"";"";"";"";"";5.0;"";""
|
|
15
|
+
3;" Check Work";5.0;"";"";"";"";"";"";"";"";"";"";5.0;""
|
|
16
|
+
2;"Joe";14.0;"";"";5.0;5.0;"";2.0;"";"";"";2.0;"";""
|
|
17
|
+
1;" Plan Work";10.0;"";"";5.0;5.0;"";"";"";"";"";"";"";""
|
|
18
|
+
1.1;" Plan A";10.0;"";"";5.0;5.0;"";"";"";"";"";"";"";""
|
|
19
|
+
2;" Execute Work";4.0;"";"";"";"";"";2.0;"";"";"";2.0;"";""
|
|
20
|
+
2.2;" Step 2";2.0;"";"";"";"";"";2.0;"";"";"";"";"";""
|
|
21
|
+
" 2.2.1";" Step 2.1";2.0;"";"";"";"";"";2.0;"";"";"";"";"";""
|
|
22
|
+
2.5;" Step 4";2.0;"";"";"";"";"";"";"";"";"";2.0;"";""
|