taskjuggler 0.0.2 → 0.0.3
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/Rakefile +1 -0
- data/benchmarks/depends.tjp +2 -1
- data/benchmarks/htmltaskreport.tjp +2 -1
- data/doc/classes/AppConfig.html +124 -120
- data/doc/classes/Arguments.html +10 -6
- data/doc/classes/Object.html +229 -0
- data/doc/classes/String.html +35 -31
- data/doc/classes/TaskJuggler/Account.html +18 -18
- data/doc/classes/TaskJuggler/AccountAttribute.html +261 -0
- data/doc/classes/TaskJuggler/AccountScenario.html +12 -12
- data/doc/classes/TaskJuggler/Allocation.html +34 -30
- data/doc/classes/TaskJuggler/AllocationAttribute.html +70 -70
- data/doc/classes/TaskJuggler/AttributeBase.html +131 -147
- data/doc/classes/TaskJuggler/AttributeDefinition.html +38 -21
- data/doc/classes/TaskJuggler/BatchProcessor.html +313 -0
- data/doc/classes/TaskJuggler/Booking.html +22 -18
- data/doc/classes/TaskJuggler/BookingListAttribute.html +42 -42
- data/doc/classes/TaskJuggler/BooleanAttribute.html +40 -40
- data/doc/classes/TaskJuggler/CSVFile.html +28 -24
- data/doc/classes/TaskJuggler/Charge.html +22 -18
- data/doc/classes/TaskJuggler/ChargeListAttribute.html +30 -30
- data/doc/classes/TaskJuggler/ChargeSet.html +41 -37
- data/doc/classes/TaskJuggler/ChargeSetListAttribute.html +46 -46
- data/doc/classes/TaskJuggler/ColumnListAttribute.html +231 -0
- data/doc/classes/TaskJuggler/ColumnTable.html +23 -21
- data/doc/classes/TaskJuggler/DateAttribute.html +20 -20
- data/doc/classes/TaskJuggler/DefinitionListAttribute.html +162 -0
- data/doc/classes/TaskJuggler/DependencyListAttribute.html +46 -46
- data/doc/classes/TaskJuggler/DurationAttribute.html +30 -30
- data/doc/classes/TaskJuggler/FixnumAttribute.html +20 -20
- data/doc/classes/TaskJuggler/FlagListAttribute.html +42 -42
- data/doc/classes/TaskJuggler/FloatAttribute.html +30 -30
- data/doc/classes/TaskJuggler/FormatListAttribute.html +197 -0
- data/doc/classes/TaskJuggler/GanttChart.html +236 -207
- data/doc/classes/TaskJuggler/GanttContainer.html +46 -42
- data/doc/classes/TaskJuggler/GanttHeader.html +16 -12
- data/doc/classes/TaskJuggler/GanttHeaderScaleItem.html +16 -12
- data/doc/classes/TaskJuggler/GanttLine.html +28 -24
- data/doc/classes/TaskJuggler/GanttLoadStack.html +22 -18
- data/doc/classes/TaskJuggler/GanttMilestone.html +46 -42
- data/doc/classes/TaskJuggler/GanttRouter.html +104 -98
- data/doc/classes/TaskJuggler/GanttTaskBar.html +46 -42
- data/doc/classes/TaskJuggler/HTMLDocument.html +12 -12
- data/doc/classes/TaskJuggler/HTMLGraphics.html +12 -12
- data/doc/classes/TaskJuggler/Interval.html +126 -120
- data/doc/classes/TaskJuggler/IntervalListAttribute.html +46 -46
- data/doc/classes/TaskJuggler/JobInfo.html +284 -0
- data/doc/classes/TaskJuggler/Journal.html +197 -0
- data/doc/classes/TaskJuggler/JournalEntry.html +218 -0
- data/doc/classes/TaskJuggler/KeywordArray.html +179 -0
- data/doc/classes/TaskJuggler/KeywordDocumentation.html +445 -396
- data/doc/classes/TaskJuggler/Limits/Limit.html +34 -30
- data/doc/classes/TaskJuggler/Limits.html +68 -62
- data/doc/classes/TaskJuggler/LimitsAttribute.html +40 -40
- data/doc/classes/TaskJuggler/ListAttributeBase.html +207 -0
- data/doc/classes/TaskJuggler/Log.html +72 -68
- data/doc/classes/TaskJuggler/LogicalAttribute.html +38 -34
- data/doc/classes/TaskJuggler/LogicalExpression.html +16 -12
- data/doc/classes/TaskJuggler/LogicalExpressionAttribute.html +194 -0
- data/doc/classes/TaskJuggler/LogicalFlag.html +32 -32
- data/doc/classes/TaskJuggler/LogicalFunction.html +28 -24
- data/doc/classes/TaskJuggler/LogicalOperation.html +17 -13
- data/doc/classes/TaskJuggler/Macro.html +10 -6
- data/doc/classes/TaskJuggler/MacroParser.html +36 -36
- data/doc/classes/TaskJuggler/MacroTable.html +40 -36
- data/doc/classes/TaskJuggler/Message.html +16 -12
- data/doc/classes/TaskJuggler/MessageHandler.html +16 -12
- data/doc/classes/TaskJuggler/Navigator.html +249 -0
- data/doc/classes/TaskJuggler/OnShiftCache.html +316 -0
- data/doc/classes/TaskJuggler/Project.html +1064 -678
- data/doc/classes/TaskJuggler/ProjectFileParser.html +90 -85
- data/doc/classes/TaskJuggler/PropertyAttribute.html +194 -0
- data/doc/classes/TaskJuggler/PropertyList.html +114 -113
- data/doc/classes/TaskJuggler/PropertySet.html +355 -312
- data/doc/classes/TaskJuggler/PropertyTreeNode.html +527 -474
- data/doc/classes/TaskJuggler/Query.html +90 -85
- data/doc/classes/TaskJuggler/RTPNavigator.html +292 -0
- data/doc/classes/TaskJuggler/RTPReport.html +301 -0
- data/doc/classes/TaskJuggler/RealFormat.html +114 -57
- data/doc/classes/TaskJuggler/RealFormatAttribute.html +162 -0
- data/doc/classes/TaskJuggler/ReferenceAttribute.html +87 -20
- data/doc/classes/TaskJuggler/Report.html +82 -291
- data/doc/classes/TaskJuggler/ReportBase.html +448 -0
- data/doc/classes/TaskJuggler/ReportContext.html +243 -0
- data/doc/classes/TaskJuggler/ReportTable.html +158 -129
- data/doc/classes/TaskJuggler/ReportTableCell.html +30 -26
- data/doc/classes/TaskJuggler/ReportTableColumn.html +29 -25
- data/doc/classes/TaskJuggler/ReportTableLegend.html +28 -24
- data/doc/classes/TaskJuggler/ReportTableLine.html +34 -30
- data/doc/classes/TaskJuggler/Resource.html +12 -12
- data/doc/classes/TaskJuggler/ResourceListAttribute.html +46 -46
- data/doc/classes/TaskJuggler/ResourceListRE.html +49 -57
- data/doc/classes/TaskJuggler/ResourceScenario.html +126 -126
- data/doc/classes/TaskJuggler/RichText.html +52 -48
- data/doc/classes/TaskJuggler/RichTextAttribute.html +30 -30
- data/doc/classes/TaskJuggler/RichTextDocument.html +41 -37
- data/doc/classes/TaskJuggler/RichTextElement.html +274 -264
- data/doc/classes/TaskJuggler/RichTextException.html +13 -13
- data/doc/classes/TaskJuggler/RichTextParser.html +48 -47
- data/doc/classes/TaskJuggler/RichTextProtocolExample.html +52 -55
- data/doc/classes/TaskJuggler/RichTextProtocolHandler.html +55 -10
- data/doc/classes/TaskJuggler/RichTextScanner.html +106 -245
- data/doc/classes/TaskJuggler/RichTextSnip.html +28 -24
- data/doc/classes/TaskJuggler/RichTextSyntaxRules.html +381 -301
- data/doc/classes/TaskJuggler/Scenario.html +6 -6
- data/doc/classes/TaskJuggler/ScenarioData.html +40 -36
- data/doc/classes/TaskJuggler/ScenarioListAttribute.html +229 -0
- data/doc/classes/TaskJuggler/Scoreboard.html +70 -66
- data/doc/classes/TaskJuggler/Shift.html +18 -18
- data/doc/classes/TaskJuggler/ShiftAssignment.html +58 -54
- data/doc/classes/TaskJuggler/ShiftAssignments.html +82 -78
- data/doc/classes/TaskJuggler/ShiftAssignmentsAttribute.html +40 -40
- data/doc/classes/TaskJuggler/ShiftScenario.html +24 -24
- data/doc/classes/TaskJuggler/SortListAttribute.html +196 -0
- data/doc/classes/TaskJuggler/SourceFileInfo.html +16 -12
- data/doc/classes/TaskJuggler/StringAttribute.html +30 -30
- data/doc/classes/TaskJuggler/SymbolAttribute.html +20 -20
- data/doc/classes/TaskJuggler/SyntaxReference.html +46 -42
- data/doc/classes/TaskJuggler/TOCEntry.html +16 -12
- data/doc/classes/TaskJuggler/TableColumnDefinition.html +48 -33
- data/doc/classes/TaskJuggler/TableOfContents.html +22 -18
- data/doc/classes/TaskJuggler/TableReport.html +1036 -0
- data/doc/classes/TaskJuggler/Task.html +12 -12
- data/doc/classes/TaskJuggler/TaskDependency.html +16 -12
- data/doc/classes/TaskJuggler/TaskListAttribute.html +46 -46
- data/doc/classes/TaskJuggler/TaskListRE.html +49 -58
- data/doc/classes/TaskJuggler/TaskScenario.html +1270 -1180
- data/doc/classes/TaskJuggler/TextParser/Pattern.html +100 -96
- data/doc/classes/TaskJuggler/TextParser/Rule.html +88 -84
- data/doc/classes/TaskJuggler/TextParser/StackElement.html +16 -12
- data/doc/classes/TaskJuggler/TextParser/TextParserResultArray.html +12 -12
- data/doc/classes/TaskJuggler/TextParser/TokenDoc.html +10 -6
- data/doc/classes/TaskJuggler/TextParser.html +203 -140
- data/doc/classes/TaskJuggler/TextReport.html +364 -0
- data/doc/classes/TaskJuggler/TextScanner/BufferStreamHandle.html +70 -70
- data/doc/classes/TaskJuggler/TextScanner/FileStreamHandle.html +50 -42
- data/doc/classes/TaskJuggler/TextScanner/StreamHandle.html +16 -12
- data/doc/classes/TaskJuggler/TextScanner.html +334 -240
- data/doc/classes/TaskJuggler/TjException.html +6 -6
- data/doc/classes/TaskJuggler/TjTime.html +547 -497
- data/doc/classes/TaskJuggler/TjpExample.html +29 -25
- data/doc/classes/TaskJuggler/TjpExportRE.html +77 -97
- data/doc/classes/TaskJuggler/TjpSyntaxRules.html +3911 -3886
- data/doc/classes/TaskJuggler/UserManual.html +54 -54
- data/doc/classes/TaskJuggler/WorkingHours.html +53 -49
- data/doc/classes/TaskJuggler/WorkingHoursAttribute.html +53 -85
- data/doc/classes/TaskJuggler/XMLBlob.html +21 -21
- data/doc/classes/TaskJuggler/XMLComment.html +21 -21
- data/doc/classes/TaskJuggler/XMLDocument.html +28 -24
- data/doc/classes/TaskJuggler/XMLElement.html +70 -58
- data/doc/classes/TaskJuggler/XMLNamedText.html +11 -11
- data/doc/classes/TaskJuggler/XMLText.html +36 -36
- data/doc/classes/TaskJuggler.html +266 -183
- data/doc/files/COPYING.html +1 -1
- data/doc/files/README.html +1 -1
- data/doc/files/lib/AccountScenario_rb.html +1 -1
- data/doc/files/lib/Account_rb.html +1 -1
- data/doc/files/lib/Allocation_rb.html +1 -1
- data/doc/files/lib/AppConfig_rb.html +1 -1
- data/doc/files/lib/AttributeBase_rb.html +11 -1
- data/doc/files/lib/AttributeDefinition_rb.html +1 -1
- data/doc/files/lib/Attributes_rb.html +1 -1
- data/doc/files/lib/{LogicalFlag_rb.html → BatchProcessor_rb.html} +8 -6
- data/doc/files/lib/Booking_rb.html +1 -1
- data/doc/files/lib/ChargeSet_rb.html +1 -1
- data/doc/files/lib/Charge_rb.html +1 -1
- data/doc/files/lib/HTMLDocument_rb.html +1 -1
- data/doc/files/lib/Interval_rb.html +1 -1
- data/doc/files/lib/Journal_rb.html +106 -0
- data/doc/files/lib/KeywordArray_rb.html +106 -0
- data/doc/files/lib/KeywordDocumentation_rb.html +1 -1
- data/doc/files/lib/Limits_rb.html +1 -1
- data/doc/files/lib/Log_rb.html +1 -1
- data/doc/files/lib/LogicalExpression_rb.html +1 -3
- data/doc/files/lib/LogicalFunction_rb.html +1 -1
- data/doc/files/lib/LogicalOperation_rb.html +1 -1
- data/doc/files/lib/MacroParser_rb.html +1 -1
- data/doc/files/lib/MacroTable_rb.html +1 -1
- data/doc/files/lib/MessageHandler_rb.html +1 -1
- data/doc/files/lib/Message_rb.html +1 -1
- data/doc/files/lib/ProjectFileParser_rb.html +5 -1
- data/doc/files/lib/Project_rb.html +5 -1
- data/doc/files/lib/PropertyList_rb.html +1 -1
- data/doc/files/lib/PropertySet_rb.html +1 -1
- data/doc/files/lib/PropertyTreeNode_rb.html +1 -1
- data/doc/files/lib/Query_rb.html +1 -1
- data/doc/files/lib/RTPNavigator_rb.html +120 -0
- data/doc/files/lib/RTPReport_rb.html +118 -0
- data/doc/files/lib/RealFormat_rb.html +1 -1
- data/doc/files/lib/ResourceScenario_rb.html +1 -1
- data/doc/files/lib/Resource_rb.html +1 -1
- data/doc/files/lib/RichTextDocument_rb.html +1 -1
- data/doc/files/lib/RichTextElement_rb.html +1 -1
- data/doc/files/lib/RichTextParser_rb.html +1 -1
- data/doc/files/lib/RichTextProtocolExample_rb.html +1 -1
- data/doc/files/lib/RichTextProtocolHandler_rb.html +1 -1
- data/doc/files/lib/RichTextScanner_rb.html +1 -1
- data/doc/files/lib/RichTextSnip_rb.html +1 -1
- data/doc/files/lib/RichTextSyntaxRules_rb.html +1 -1
- data/doc/files/lib/RichText_rb.html +1 -1
- data/doc/files/lib/ScenarioData_rb.html +1 -1
- data/doc/files/lib/Scenario_rb.html +1 -1
- data/doc/files/lib/Scoreboard_rb.html +1 -1
- data/doc/files/lib/ShiftAssignments_rb.html +1 -1
- data/doc/files/lib/ShiftScenario_rb.html +1 -1
- data/doc/files/lib/Shift_rb.html +1 -1
- data/doc/files/lib/SourceFileInfo_rb.html +1 -1
- data/doc/files/lib/SyntaxReference_rb.html +1 -1
- data/doc/files/lib/TOCEntry_rb.html +1 -1
- data/doc/files/lib/TableColumnDefinition_rb.html +1 -1
- data/doc/files/lib/TableOfContents_rb.html +1 -1
- data/doc/files/lib/TaskDependency_rb.html +1 -1
- data/doc/files/lib/TaskJuggler_rb.html +1 -1
- data/doc/files/lib/TaskScenario_rb.html +1 -1
- data/doc/files/lib/Task_rb.html +1 -1
- data/doc/files/lib/TextParser/Pattern_rb.html +1 -1
- data/doc/files/lib/TextParser/Rule_rb.html +1 -1
- data/doc/files/lib/TextParser/StackElement_rb.html +1 -1
- data/doc/files/lib/TextParser/TokenDoc_rb.html +1 -1
- data/doc/files/lib/TextParser_rb.html +1 -1
- data/doc/files/lib/TextScanner_rb.html +1 -1
- data/doc/files/lib/Tj3Config_rb.html +1 -1
- data/doc/files/lib/TjException_rb.html +1 -1
- data/doc/files/lib/TjTime_rb.html +1 -1
- data/doc/files/lib/TjpExample_rb.html +1 -1
- data/doc/files/lib/TjpSyntaxRules_rb.html +1 -1
- data/doc/files/lib/UTF8String_rb.html +1 -1
- data/doc/files/lib/UserManual_rb.html +1 -1
- data/doc/files/lib/WorkingHours_rb.html +1 -1
- data/doc/files/lib/XMLDocument_rb.html +1 -1
- data/doc/files/lib/XMLElement_rb.html +1 -1
- data/doc/files/lib/deep_copy_rb.html +106 -0
- data/doc/files/lib/ms_test_rb.html +90 -0
- data/doc/files/lib/reports/CSVFile_rb.html +1 -1
- data/doc/files/lib/reports/ColumnTable_rb.html +1 -1
- data/doc/files/lib/reports/GanttChart_rb.html +1 -1
- data/doc/files/lib/reports/GanttContainer_rb.html +1 -1
- data/doc/files/lib/reports/GanttHeaderScaleItem_rb.html +1 -1
- data/doc/files/lib/reports/GanttHeader_rb.html +1 -1
- data/doc/files/lib/reports/GanttLine_rb.html +1 -1
- data/doc/files/lib/reports/GanttLoadStack_rb.html +1 -1
- data/doc/files/lib/reports/GanttMilestone_rb.html +1 -1
- data/doc/files/lib/reports/GanttRouter_rb.html +1 -1
- data/doc/files/lib/reports/GanttTaskBar_rb.html +1 -1
- data/doc/files/lib/reports/HTMLGraphics_rb.html +1 -1
- data/doc/files/lib/reports/{ReportElement_rb.html → Navigator_rb.html} +6 -8
- data/doc/files/lib/reports/ReportBase_rb.html +106 -0
- data/doc/files/lib/reports/ReportContext_rb.html +106 -0
- data/doc/files/lib/reports/ReportTableCell_rb.html +1 -1
- data/doc/files/lib/reports/ReportTableColumn_rb.html +1 -1
- data/doc/files/lib/reports/ReportTableLegend_rb.html +1 -1
- data/doc/files/lib/reports/ReportTableLine_rb.html +1 -1
- data/doc/files/lib/reports/ReportTable_rb.html +1 -1
- data/doc/files/lib/reports/Report_rb.html +8 -2
- data/doc/files/lib/reports/ResourceListRE_rb.html +2 -2
- data/doc/files/lib/reports/{ReportTableElement_rb.html → TableReport_rb.html} +7 -5
- data/doc/files/lib/reports/TaskListRE_rb.html +2 -2
- data/doc/files/lib/reports/TextReport_rb.html +116 -0
- data/doc/files/lib/reports/TjpExportRE_rb.html +2 -2
- data/doc/files/lib/taskjuggler3_rb.html +61 -56
- data/doc/files/lib/tj3man_rb.html +1 -1
- data/doc/fr_class_index.html +41 -3
- data/doc/fr_file_index.html +21 -5
- data/doc/fr_method_index.html +1069 -959
- data/examples/ContactList.html +1467 -0
- data/examples/Deliveries.html +485 -0
- data/examples/Development.html +2525 -0
- data/examples/Overview.html +747 -0
- data/examples/Resource Graph.html +616 -0
- data/examples/tutorial.tjp +63 -67
- data/lib/AttributeBase.rb +27 -31
- data/lib/AttributeDefinition.rb +12 -7
- data/lib/Attributes.rb +134 -34
- data/lib/Interval.rb +2 -0
- data/lib/Journal.rb +44 -0
- data/lib/{LogicalFlag.rb → KeywordArray.rb} +5 -13
- data/lib/KeywordDocumentation.rb +84 -47
- data/lib/Limits.rb +7 -5
- data/lib/LogicalExpression.rb +1 -1
- data/lib/LogicalOperation.rb +33 -0
- data/lib/Project.rb +313 -99
- data/lib/ProjectFileParser.rb +88 -11
- data/lib/PropertyList.rb +2 -1
- data/lib/PropertySet.rb +13 -4
- data/lib/PropertyTreeNode.rb +34 -15
- data/lib/Query.rb +2 -1
- data/lib/RTPNavigator.rb +53 -0
- data/lib/RTPReport.rb +62 -0
- data/lib/RealFormat.rb +28 -10
- data/lib/RichTextElement.rb +18 -12
- data/lib/RichTextParser.rb +1 -0
- data/lib/RichTextProtocolExample.rb +8 -11
- data/lib/RichTextProtocolHandler.rb +11 -1
- data/lib/RichTextScanner.rb +308 -164
- data/lib/RichTextSyntaxRules.rb +24 -0
- data/lib/TableColumnDefinition.rb +5 -1
- data/lib/TaskJuggler.rb +3 -2
- data/lib/TaskScenario.rb +123 -31
- data/lib/TextParser.rb +14 -3
- data/lib/TextScanner.rb +210 -34
- data/lib/Tj3Config.rb +1 -1
- data/lib/TjTime.rb +15 -0
- data/lib/TjpExample.rb +1 -1
- data/lib/TjpSyntaxRules.rb +674 -473
- data/lib/WorkingHours.rb +1 -1
- data/lib/XMLElement.rb +11 -3
- data/lib/deep_copy.rb +72 -0
- data/lib/ms_test.rb +27 -0
- data/lib/reports/ColumnTable.rb +7 -5
- data/lib/reports/GanttChart.rb +60 -34
- data/lib/reports/GanttHeader.rb +1 -1
- data/lib/reports/GanttRouter.rb +7 -5
- data/lib/reports/Navigator.rb +72 -0
- data/lib/reports/Report.rb +58 -73
- data/lib/reports/ReportBase.rb +241 -0
- data/lib/reports/ReportContext.rb +41 -0
- data/lib/reports/ReportTable.rb +7 -2
- data/lib/reports/ReportTableCell.rb +3 -3
- data/lib/reports/ResourceListRE.rb +19 -26
- data/lib/reports/{ReportTableElement.rb → TableReport.rb} +297 -97
- data/lib/reports/TaskListRE.rb +16 -24
- data/lib/reports/TextReport.rb +87 -0
- data/lib/reports/TjpExportRE.rb +55 -50
- data/lib/taskjuggler3.rb +6 -1
- data/manual/Getting_Started +57 -6
- data/manual/How_To_Contribute +2 -4
- data/manual/Intro +2 -2
- data/manual/Reporting_Bugs +9 -2
- data/manual/Rich_Text_Attributes +41 -0
- data/manual/Tutorial +219 -173
- data/tasks/test.rake +3 -0
- data/test/TestSuite/CSV-Reports/celltext.tjp +2 -1
- data/test/TestSuite/CSV-Reports/resourcereport.tjp +2 -1
- data/test/TestSuite/CSV-Reports/resourcereport_with_tasks.tjp +2 -1
- data/test/TestSuite/CSV-Reports/sortByTree.tjp +2 -1
- data/test/TestSuite/CSV-Reports/sortBy_duration.down.tjp +2 -1
- data/test/TestSuite/CSV-Reports/sortBy_effort.up.tjp +2 -1
- data/test/TestSuite/CSV-Reports/sortBy_plan.start.down.tjp +2 -1
- data/test/TestSuite/CSV-Reports/taskreport.tjp +2 -1
- data/test/TestSuite/CSV-Reports/taskreport_with_resources.tjp +2 -1
- data/test/TestSuite/HTML-Reports/depArrows.tjp +72 -0
- data/test/TestSuite/HTML-Reports/reference-export.html +187 -0
- data/test/TestSuite/HTML-Reports/reference.tjp +21 -0
- data/test/TestSuite/Scheduler/Correct/Allocate.tjp +2 -1
- data/test/TestSuite/Scheduler/Correct/AutomaticMilestones.tjp +3 -3
- data/test/TestSuite/Scheduler/Correct/Booking.tjp +3 -3
- data/test/TestSuite/Scheduler/Correct/Container-2.tjp +37 -0
- data/test/TestSuite/Scheduler/Correct/Container.tjp +40 -0
- data/test/TestSuite/Scheduler/Correct/Depends.tjp +9 -14
- data/test/TestSuite/Scheduler/Correct/Duration.tjp +2 -1
- data/test/TestSuite/Scheduler/Correct/InheritStartEnd.tjp +20 -29
- data/test/TestSuite/Scheduler/Correct/Limits.tjp +11 -13
- data/test/TestSuite/Scheduler/Correct/Optimize-1.tjp +6 -5
- data/test/TestSuite/Scheduler/Correct/Optimize-2.tjp +10 -6
- data/test/TestSuite/Scheduler/Correct/Optimize-3.tjp +9 -6
- data/test/TestSuite/Scheduler/Correct/Optimize-4.tjp +9 -6
- data/test/TestSuite/Scheduler/Correct/Optimize-5.tjp +13 -10
- data/test/TestSuite/Scheduler/Correct/Precedes.tjp +9 -14
- data/test/TestSuite/Scheduler/Correct/Shift.tjp +9 -8
- data/test/TestSuite/Scheduler/Correct/checks.tji +4 -0
- data/test/TestSuite/Scheduler/Errors/weak_end_dep.tjp +16 -0
- data/test/TestSuite/Scheduler/Errors/weak_start_dep.tjp +16 -0
- data/test/TestSuite/Syntax/Correct/Account.tjp +1 -1
- data/test/TestSuite/Syntax/Correct/AutoID.tjp +21 -0
- data/test/TestSuite/Syntax/Correct/AutoMacros.tjp +2 -1
- data/test/TestSuite/Syntax/Correct/Caption.tjp +7 -6
- data/test/TestSuite/Syntax/Correct/Celltext.tjp +7 -4
- data/test/TestSuite/Syntax/Correct/Comments.tjp +1 -1
- data/test/TestSuite/Syntax/Correct/CompletedWork.tji +11 -19
- data/test/TestSuite/Syntax/Correct/CriticalPath.tjp +4 -3
- data/test/TestSuite/Syntax/Correct/Export.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Flags.tjp +2 -1
- data/test/TestSuite/Syntax/Correct/HtmlTaskReport.tjp +2 -1
- data/test/TestSuite/Syntax/Correct/Journal.tjp +18 -0
- data/test/TestSuite/Syntax/Correct/LoadUnits.tjp +2 -1
- data/test/TestSuite/Syntax/Correct/LogicalExpression.tjp +16 -0
- data/test/TestSuite/Syntax/Correct/Period.tjp +2 -1
- data/test/TestSuite/Syntax/Correct/RawHTML.tjp +4 -2
- data/test/TestSuite/Syntax/Correct/Reports.tjp +4 -2
- data/test/TestSuite/Syntax/Correct/ResourcePrefix.tji +2 -0
- data/test/TestSuite/Syntax/Correct/ResourcePrefix.tjp +23 -0
- data/test/TestSuite/Syntax/Correct/Responsible.tjp +1 -1
- data/test/TestSuite/Syntax/Correct/Simple.tjp +1 -1
- data/test/TestSuite/Syntax/Correct/String.tjp +1 -1
- data/test/TestSuite/Syntax/Correct/TaskRoot.tjp +2 -1
- data/test/TestSuite/Syntax/Correct/tutorial.tjp +92 -70
- data/test/TestSuite/Syntax/Errors/bad_comment.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/bad_include.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/bad_time_zone.tjp +6 -0
- data/test/TestSuite/Syntax/Errors/bad_timing_res.tjp +5 -0
- data/test/TestSuite/Syntax/Errors/chargeset_master.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/container_attribute.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/cost_acct_no_top.tjp +3 -2
- data/test/TestSuite/Syntax/Errors/cost_rev_same.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/eof_in_istring1.tjp +5 -0
- data/test/TestSuite/Syntax/Errors/eof_in_istring2.tjp +5 -0
- data/test/TestSuite/Syntax/Errors/eof_in_istring3.tjp +6 -0
- data/test/TestSuite/Syntax/Errors/eof_in_istring4.tjp +6 -0
- data/test/TestSuite/Syntax/Errors/eof_in_istring5.tjp +6 -0
- data/test/TestSuite/Syntax/Errors/include_recursion.tji +1 -0
- data/test/TestSuite/Syntax/Errors/include_recursion.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/junk_after_cut.tjp +6 -0
- data/test/TestSuite/Syntax/Errors/navigator_exists.tjp +10 -0
- data/test/TestSuite/Syntax/Errors/operand_unkn_flag.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/report_end.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/report_exists.tjp +10 -0
- data/test/TestSuite/Syntax/Errors/report_start.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/rev_acct_no_top.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/sort_direction.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/sort_unknown_scen.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/sorting_crit_exptd1.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/sorting_crit_exptd2.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/sorting_wbs.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/too_large_timing_res.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/unknown_scenario_idx.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/unknown_task.tjp +1 -1
- data/test/all.rb +1 -16
- data/test/test_CSV-Reports.rb +8 -5
- data/test/test_Query.rb +2 -2
- data/test/test_RichText.rb +95 -0
- data/test/test_Scheduler.rb +8 -4
- data/test/test_Syntax.rb +8 -4
- data/test/test_deep_copy.rb +83 -0
- metadata +549 -487
- data/benchmarks/UTF-8-Strings.rb +0 -58
- data/doc/classes/TaskJuggler/ReportElement.html +0 -1070
- data/doc/classes/TaskJuggler/ReportTableElement.html +0 -644
- data/lib/reports/ReportElement.rb +0 -427
- data/test/TestSuite/Syntax/Correct/csvtest +0 -16
- data/test/TestSuite/Syntax/Errors/no_csv_suffix.tjp +0 -10
- data/test/TestSuite/Syntax/Errors/no_html_suffix.tjp +0 -10
- data/test/TestSuite/Syntax/Errors/report_redifinition.tjp +0 -10
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
#!/usr/bin/env ruby -w
|
|
2
|
+
# encoding: UTF-8
|
|
3
|
+
#
|
|
4
|
+
# = ReportBase.rb -- The TaskJuggler III Project Management Software
|
|
5
|
+
#
|
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009 by Chris Schlaeger <cs@kde.org>
|
|
7
|
+
#
|
|
8
|
+
# This program is free software; you can redistribute it and/or modify
|
|
9
|
+
# it under the terms of version 2 of the GNU General Public License as
|
|
10
|
+
# published by the Free Software Foundation.
|
|
11
|
+
#
|
|
12
|
+
|
|
13
|
+
class TaskJuggler
|
|
14
|
+
|
|
15
|
+
# This is the abstract base class for all kinds of reports. The derived
|
|
16
|
+
# classes must implement the generateIntermediateFormat function as well as
|
|
17
|
+
# the to_* members.
|
|
18
|
+
class ReportBase
|
|
19
|
+
|
|
20
|
+
def initialize(report)
|
|
21
|
+
@report = report
|
|
22
|
+
@project = report.project
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# Convenience function to access a report attribute
|
|
26
|
+
def a(attribute)
|
|
27
|
+
@report.get(attribute)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def generateIntermediateFormat
|
|
31
|
+
raise 'This function must be overriden by derived classes.'
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def to_html
|
|
35
|
+
raise 'This function must be overriden by derived classes.'
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def to_csv
|
|
39
|
+
raise 'This function must be overriden by derived classes.'
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# Take the complete task list and remove all tasks that are matching the
|
|
43
|
+
# hide expression, the rollup Expression or are not a descendent of
|
|
44
|
+
# taskRoot. In case resource is not nil, a task is only included if
|
|
45
|
+
# the resource is allocated to it in any of the reported scenarios.
|
|
46
|
+
def filterTaskList(list_, resource, hideExpr, rollupExpr)
|
|
47
|
+
list = PropertyList.new(list_)
|
|
48
|
+
if (taskRoot = a('taskRoot'))
|
|
49
|
+
# Remove all tasks that are not descendents of the taskRoot.
|
|
50
|
+
list.delete_if { |task| !task.isChildOf?(taskRoot) }
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
if resource
|
|
54
|
+
# If we have a resource we need to check that the resource is allocated
|
|
55
|
+
# to the tasks in any of the reported scenarios.
|
|
56
|
+
list.delete_if do |task|
|
|
57
|
+
delete = true
|
|
58
|
+
a('scenarios').each do |scenarioIdx|
|
|
59
|
+
if task['assignedresources', scenarioIdx].include?(resource)
|
|
60
|
+
delete = false
|
|
61
|
+
break;
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
delete
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
# Remove all tasks that don't overlap with the reported interval.
|
|
69
|
+
list.delete_if do |task|
|
|
70
|
+
delete = true
|
|
71
|
+
a('scenarios').each do |scenarioIdx|
|
|
72
|
+
iv = Interval.new(task['start', scenarioIdx].nil? ?
|
|
73
|
+
@project['start'] : task['start', scenarioIdx],
|
|
74
|
+
task['end', scenarioIdx].nil? ?
|
|
75
|
+
@project['end'] : task['end', scenarioIdx])
|
|
76
|
+
# Special case to include milestones at the report end.
|
|
77
|
+
if iv.start == iv.end && iv.end == @end
|
|
78
|
+
iv.start = iv.end = iv.start - 1
|
|
79
|
+
end
|
|
80
|
+
if iv.overlaps?(Interval.new(a('start'), a('end')))
|
|
81
|
+
delete = false
|
|
82
|
+
break;
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
delete
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
standardFilterOps(list, hideExpr, rollupExpr, resource, taskRoot)
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
# Take the complete resource list and remove all resources that are matching
|
|
92
|
+
# the hide expression, the rollup Expression or are not a descendent of
|
|
93
|
+
# resourceRoot. In case task is not nil, a resource is only included if
|
|
94
|
+
# it is assigned to the task in any of the reported scenarios.
|
|
95
|
+
def filterResourceList(list_, task, hideExpr, rollupExpr)
|
|
96
|
+
list = PropertyList.new(list_)
|
|
97
|
+
if (resourceRoot = a('resourceRoot'))
|
|
98
|
+
# Remove all resources that are not descendents of the resourceRoot.
|
|
99
|
+
list.delete_if { |resource| !resource.isChildOf?(resourceRoot) }
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
if task
|
|
103
|
+
# If we have a task we need to check that the resources are assigned
|
|
104
|
+
# to the task in any of the reported scenarios.
|
|
105
|
+
iv = Interval.new(a('start'), a('end'))
|
|
106
|
+
list.delete_if do |resource|
|
|
107
|
+
delete = true
|
|
108
|
+
a('scenarios').each do |scenarioIdx|
|
|
109
|
+
if resource.allocated?(scenarioIdx, iv, task)
|
|
110
|
+
delete = false
|
|
111
|
+
break;
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
delete
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
standardFilterOps(list, hideExpr, rollupExpr, task, resourceRoot)
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
private
|
|
122
|
+
|
|
123
|
+
# Convert the RichText object _name_ into a HTML form.
|
|
124
|
+
def rt_to_html(name)
|
|
125
|
+
return unless a(name)
|
|
126
|
+
|
|
127
|
+
a(name).sectionNumbers = false
|
|
128
|
+
a(name).to_html
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
# This function implements the generic filtering functionality for all kinds
|
|
132
|
+
# of lists.
|
|
133
|
+
def standardFilterOps(list, hideExpr, rollupExpr, scopeProperty, root)
|
|
134
|
+
# Remove all properties that the user wants to have hidden.
|
|
135
|
+
if hideExpr
|
|
136
|
+
list.delete_if do |property|
|
|
137
|
+
hideExpr.eval(property, scopeProperty)
|
|
138
|
+
end
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
# Remove all children of properties that the user has rolled-up.
|
|
142
|
+
if rollupExpr
|
|
143
|
+
list.delete_if do |property|
|
|
144
|
+
parent = property.parent
|
|
145
|
+
delete = false
|
|
146
|
+
while (parent)
|
|
147
|
+
if rollupExpr.eval(parent, scopeProperty)
|
|
148
|
+
delete = true
|
|
149
|
+
break
|
|
150
|
+
end
|
|
151
|
+
parent = parent.parent
|
|
152
|
+
end
|
|
153
|
+
delete
|
|
154
|
+
end
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
# Re-add parents in tree mode
|
|
158
|
+
if list.treeMode?
|
|
159
|
+
parents = []
|
|
160
|
+
list.each do |property|
|
|
161
|
+
parent = property
|
|
162
|
+
while (parent = parent.parent)
|
|
163
|
+
parents << parent unless list.include?(parent) ||
|
|
164
|
+
parents.include?(parent)
|
|
165
|
+
break if parent == root
|
|
166
|
+
end
|
|
167
|
+
end
|
|
168
|
+
list.append(parents)
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
list
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
# This function converts number to strings that may include a unit. The
|
|
175
|
+
# unit is determined by @loadUnit. In the automatic modes, the shortest
|
|
176
|
+
# possible result is shown and the unit is always appended. _value_ is the
|
|
177
|
+
# value to convert. _factors_ determines the conversion factors for the
|
|
178
|
+
# different units.
|
|
179
|
+
# TODO: Delete when all users have been migrated to use Query!
|
|
180
|
+
def scaleValue(value, factors)
|
|
181
|
+
loadUnit = a('loadUnit')
|
|
182
|
+
numberFormat = a('numberFormat')
|
|
183
|
+
|
|
184
|
+
if loadUnit == :shortauto || loadUnit == :longauto
|
|
185
|
+
# We try all possible units and store the resulting strings here.
|
|
186
|
+
options = []
|
|
187
|
+
# For each of the units we can define a maximum value that the value
|
|
188
|
+
# should not exceed. A maximum of 0 means no limit.
|
|
189
|
+
max = [ 60, 48, 0, 8, 24, 0 ]
|
|
190
|
+
|
|
191
|
+
i = 0
|
|
192
|
+
shortest = nil
|
|
193
|
+
factors.each do |factor|
|
|
194
|
+
scaledValue = value * factor
|
|
195
|
+
str = numberFormat.format(scaledValue)
|
|
196
|
+
# We ignore results that are 0 or exceed the maximum. To ensure that
|
|
197
|
+
# we have at least one result the unscaled value is always taken.
|
|
198
|
+
if (factor != 1.0 && scaledValue == 0) ||
|
|
199
|
+
(max[i] != 0 && scaledValue > max[i])
|
|
200
|
+
options << nil
|
|
201
|
+
else
|
|
202
|
+
options << str
|
|
203
|
+
end
|
|
204
|
+
i += 1
|
|
205
|
+
end
|
|
206
|
+
|
|
207
|
+
# Default to days in case they are all the same.
|
|
208
|
+
shortest = 2
|
|
209
|
+
# Find the shortest option.
|
|
210
|
+
6.times do |j|
|
|
211
|
+
shortest = j if options[j] &&
|
|
212
|
+
options[j].length < options[shortest].length
|
|
213
|
+
end
|
|
214
|
+
|
|
215
|
+
str = options[shortest]
|
|
216
|
+
if loadUnit == :longauto
|
|
217
|
+
# For the long units we handle singular and plural properly. For
|
|
218
|
+
# English we just need to append an 's', but this code will work for
|
|
219
|
+
# other languages as well.
|
|
220
|
+
units = []
|
|
221
|
+
if str == "1"
|
|
222
|
+
units = %w( minute hour day week month year )
|
|
223
|
+
else
|
|
224
|
+
units = %w( minutes hours days weeks months years )
|
|
225
|
+
end
|
|
226
|
+
str += ' ' + units[shortest]
|
|
227
|
+
else
|
|
228
|
+
str += %w( min h d w m y )[shortest]
|
|
229
|
+
end
|
|
230
|
+
else
|
|
231
|
+
# For fixed units we just need to do the conversion. No unit is
|
|
232
|
+
# included.
|
|
233
|
+
units = [ :minutes, :hours, :days, :weeks, :months, :years ]
|
|
234
|
+
str = numberFormat.format(value * factors[units.index(loadUnit)])
|
|
235
|
+
end
|
|
236
|
+
str
|
|
237
|
+
end
|
|
238
|
+
|
|
239
|
+
end
|
|
240
|
+
|
|
241
|
+
end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
#!/usr/bin/env ruby -w
|
|
2
|
+
# encoding: UTF-8
|
|
3
|
+
#
|
|
4
|
+
# = ReportContext.rb -- The TaskJuggler III Project Management Software
|
|
5
|
+
#
|
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009 by Chris Schlaeger <cs@kde.org>
|
|
7
|
+
#
|
|
8
|
+
# This program is free software; you can redistribute it and/or modify
|
|
9
|
+
# it under the terms of version 2 of the GNU General Public License as
|
|
10
|
+
# published by the Free Software Foundation.
|
|
11
|
+
#
|
|
12
|
+
|
|
13
|
+
class TaskJuggler
|
|
14
|
+
|
|
15
|
+
# Each Project has a single ReportContext object that is used during the
|
|
16
|
+
# report generation. It is a container for global state.
|
|
17
|
+
class ReportContext
|
|
18
|
+
|
|
19
|
+
attr_reader :project, :report
|
|
20
|
+
attr_accessor :start, :end, :tasks, :resources
|
|
21
|
+
|
|
22
|
+
def initialize(project, report)
|
|
23
|
+
@project = project
|
|
24
|
+
@report = report
|
|
25
|
+
|
|
26
|
+
if (parent = @project.reportContext)
|
|
27
|
+
# If the new ReportContext is created from within an existing context,
|
|
28
|
+
# this is used as parent context and all attribute values are copied
|
|
29
|
+
# as default initial values.
|
|
30
|
+
@start = parent.start
|
|
31
|
+
@end = parent.end
|
|
32
|
+
@tasks = parent.tasks
|
|
33
|
+
@resources = parent.resources
|
|
34
|
+
else
|
|
35
|
+
@start = @end = nil
|
|
36
|
+
@tasks = @resources = nil
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
end
|
|
41
|
+
end
|
data/lib/reports/ReportTable.rb
CHANGED
|
@@ -21,6 +21,10 @@ class TaskJuggler
|
|
|
21
21
|
# appropriate format.
|
|
22
22
|
class ReportTable
|
|
23
23
|
|
|
24
|
+
# The height in pixels of a horizontal scrollbar on an HTML page. This
|
|
25
|
+
# value should be large enough to work for all browsers.
|
|
26
|
+
SCROLLBARHEIGHT = 20
|
|
27
|
+
|
|
24
28
|
attr_reader :maxIndent, :headerLineHeight, :headerFontSize
|
|
25
29
|
attr_accessor :equiLines
|
|
26
30
|
|
|
@@ -93,9 +97,10 @@ class TaskJuggler
|
|
|
93
97
|
|
|
94
98
|
# In case we have columns with scrollbars, we generate an extra line with
|
|
95
99
|
# cells for all columns that don't have a scrollbar. The scrollbar must
|
|
96
|
-
# have a height of
|
|
100
|
+
# have a height of SCROLLBARHEIGHT pixels or less.
|
|
97
101
|
if hasScrollbar?
|
|
98
|
-
tbody << (tr = XMLElement.new('tr',
|
|
102
|
+
tbody << (tr = XMLElement.new('tr',
|
|
103
|
+
'style' => "height:#{SCROLLBARHEIGHT}px"))
|
|
99
104
|
@columns.each do |column|
|
|
100
105
|
unless column.scrollbar
|
|
101
106
|
tr << XMLElement.new('td')
|
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
class TaskJuggler
|
|
14
14
|
|
|
15
15
|
# This class models the output format independent version of a cell in a
|
|
16
|
-
#
|
|
16
|
+
# TableReport. It belongs to a certain ReportTableLine and
|
|
17
17
|
# ReportTableColumn. Normally a cell contains text on a colored background.
|
|
18
|
-
# By help of the @special variable it can alternatively contain any object
|
|
19
|
-
# provides the necessary output methods such as to_html.
|
|
18
|
+
# By help of the @special variable it can alternatively contain any object
|
|
19
|
+
# the provides the necessary output methods such as to_html.
|
|
20
20
|
class ReportTableCell
|
|
21
21
|
|
|
22
22
|
attr_reader :line
|
|
@@ -10,58 +10,51 @@
|
|
|
10
10
|
# published by the Free Software Foundation.
|
|
11
11
|
#
|
|
12
12
|
|
|
13
|
-
require 'reports/
|
|
13
|
+
require 'reports/TableReport'
|
|
14
14
|
require 'reports/ReportTable'
|
|
15
15
|
require 'TableColumnDefinition'
|
|
16
16
|
require 'LogicalExpression'
|
|
17
17
|
|
|
18
18
|
class TaskJuggler
|
|
19
19
|
|
|
20
|
-
# This specialization of
|
|
20
|
+
# This specialization of TableReport implements a resource listing. It
|
|
21
21
|
# generates a list of resources that can optionally have the assigned tasks
|
|
22
22
|
# nested underneath each resource line.
|
|
23
|
-
class ResourceListRE <
|
|
23
|
+
class ResourceListRE < TableReport
|
|
24
24
|
|
|
25
25
|
# Create a new object and set some default values.
|
|
26
26
|
def initialize(report)
|
|
27
27
|
super
|
|
28
|
-
# Set the default columns for this report.
|
|
29
|
-
%w( no name ).each do |col|
|
|
30
|
-
@columns << TableColumnDefinition.new(col, defaultColumnTitle(col))
|
|
31
|
-
end
|
|
32
|
-
# Show all resources, sorted by tree and id-up.
|
|
33
|
-
@hideResource = LogicalExpression.new(LogicalOperation.new(0))
|
|
34
|
-
@sortResources = [ [ 'tree', true, -1 ],
|
|
35
|
-
[ 'id', true, -1 ] ]
|
|
36
|
-
# Hide all resources, but set sorting to tree, start-up, seqno-up.
|
|
37
|
-
@hideTask = LogicalExpression.new(LogicalOperation.new(1))
|
|
38
|
-
@sortTasks = [ [ 'tree', true, -1 ],
|
|
39
|
-
[ 'start', true, 0 ],
|
|
40
|
-
[ 'seqno', true, -1 ] ]
|
|
41
|
-
|
|
42
28
|
@table = ReportTable.new
|
|
43
29
|
end
|
|
44
30
|
|
|
45
31
|
# Generate the table in the intermediate format.
|
|
46
32
|
def generateIntermediateFormat
|
|
47
|
-
|
|
48
|
-
@columns.each do |columnDescr|
|
|
49
|
-
generateHeaderCell(columnDescr)
|
|
50
|
-
end
|
|
33
|
+
setReportPeriod
|
|
51
34
|
|
|
52
35
|
# Prepare the resource list.
|
|
53
36
|
resourceList = PropertyList.new(@project.resources)
|
|
54
|
-
resourceList.setSorting(@sortResources)
|
|
55
|
-
resourceList = filterResourceList(resourceList, nil,
|
|
56
|
-
@
|
|
37
|
+
resourceList.setSorting(@report.get('sortResources'))
|
|
38
|
+
resourceList = filterResourceList(resourceList, nil,
|
|
39
|
+
@report.get('hideResource'),
|
|
40
|
+
@report.get('rollupResource'))
|
|
57
41
|
resourceList.sort!
|
|
58
42
|
|
|
59
43
|
# Prepare the task list.
|
|
60
44
|
taskList = PropertyList.new(@project.tasks)
|
|
61
|
-
taskList.setSorting(@sortTasks)
|
|
62
|
-
taskList = filterTaskList(taskList, nil, @hideTask,
|
|
45
|
+
taskList.setSorting(@report.get('sortTasks'))
|
|
46
|
+
taskList = filterTaskList(taskList, nil, @report.get('hideTask'),
|
|
47
|
+
@report.get('rollupTask'))
|
|
63
48
|
taskList.sort!
|
|
64
49
|
|
|
50
|
+
adjustReportPeriod(taskList, @report.get('scenarios'),
|
|
51
|
+
@report.get('columns'))
|
|
52
|
+
|
|
53
|
+
# Generate the table header.
|
|
54
|
+
@report.get('columns').each do |columnDescr|
|
|
55
|
+
generateHeaderCell(columnDescr)
|
|
56
|
+
end
|
|
57
|
+
|
|
65
58
|
# Generate the list.
|
|
66
59
|
generateResourceList(resourceList, taskList, nil)
|
|
67
60
|
end
|