taskjuggler 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +7 -0
- data/data/tjp.vim +1 -1
- data/lib/exchangebug.rb +42 -0
- data/lib/ruby-signal-bug.rb +55 -0
- data/lib/taskjuggler/DataCache.rb +30 -41
- data/lib/taskjuggler/ResourceScenario.rb +19 -20
- data/lib/taskjuggler/TaskScenario.rb +11 -8
- data/lib/taskjuggler/Tj3Config.rb +1 -1
- data/prj_cfg.rb +3 -3
- data/test/TestSuite/Export-Reports/refs/DST.tjp +60 -0
- data/test/TestSuite/Export-Reports/refs/ReleasePlan.tjp +80 -0
- data/test/TestSuite/Export-Reports/tp.tjp +49 -0
- data/test/TestSuite/HTML-Reports/Alerts.html +412 -160
- data/test/TestSuite/HTML-Reports/TimeSheet.html +79 -0
- data/test/TestSuite/HTML-Reports/css/tjmanual.css +20 -0
- data/test/TestSuite/HTML-Reports/css/tjreport.css +7 -6
- data/test/TestSuite/HTML-Reports/reference.html +51 -0
- data/test/TestSuite/ReportGenerator/Correct/css/tjmanual.css +86 -0
- data/test/TestSuite/{Scheduler/Errors → ReportGenerator/Correct}/css/tjreport.css +0 -0
- data/test/TestSuite/{Scheduler/Errors → ReportGenerator/Correct}/icons/details.png +0 -0
- data/test/TestSuite/{Scheduler/Errors → ReportGenerator/Correct}/icons/flag-green.png +0 -0
- data/test/TestSuite/{Scheduler/Errors → ReportGenerator/Correct}/icons/flag-red.png +0 -0
- data/test/TestSuite/{Scheduler/Errors → ReportGenerator/Correct}/icons/flag-yellow.png +0 -0
- data/test/TestSuite/{Scheduler/Errors → ReportGenerator/Correct}/icons/resource.png +0 -0
- data/test/TestSuite/{Scheduler/Errors → ReportGenerator/Correct}/icons/resourcegroup.png +0 -0
- data/test/TestSuite/{Scheduler/Errors → ReportGenerator/Correct}/icons/task.png +0 -0
- data/test/TestSuite/{Scheduler/Errors → ReportGenerator/Correct}/icons/taskgroup.png +0 -0
- data/test/TestSuite/{Scheduler/Errors → ReportGenerator/Correct}/icons/trend-down.png +0 -0
- data/test/TestSuite/{Scheduler/Errors → ReportGenerator/Correct}/icons/trend-flat.png +0 -0
- data/test/TestSuite/{Scheduler/Errors → ReportGenerator/Correct}/icons/trend-up.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +26 -0
- data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +2 -0
- data/test/TestSuite/{Scheduler/Errors → ReportGenerator/Correct}/scripts/wz_tooltip.js +0 -0
- data/test/TestSuite/Scheduler/Correct/Allocate.html +1075 -0
- data/test/TestSuite/Scheduler/Correct/Duration.html +610 -0
- data/test/TestSuite/Scheduler/{Errors → Correct}/css/tjmanual.css +0 -0
- data/test/TestSuite/Scheduler/Correct/css/tjreport.css +413 -0
- 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/{HTML-Reports/scripts → Scheduler/Correct}/scripts/wz_tooltip.js +20 -20
- data/test/TestSuite/StatusSheetTemplates/project.tji +35 -0
- data/test/TestSuite/StatusSheetTemplates/project.tjp +56 -0
- data/test/TestSuite/StatusSheets/TimeSheets/2002-03-01/resource1_2002-03-01.tji +0 -0
- data/test/TestSuite/Syntax/Correct/DST.tjp +11 -0
- data/test/TestSuite/Syntax/Correct/ReleasePlan.tjp +32 -0
- data/test/TestSuite/TimeSheets/receiver.log.mod +1056 -0
- data/test/TestSuite/TimeSheets/uu.txt +29 -0
- metadata +672 -1076
- data/benchmarks/UTF-8-Strings.rb +0 -58
- data/benchmarks/htmltaskreport-1.html +0 -47702
- data/benchmarks/htmltaskreport-2.html +0 -23345
- data/benchmarks/htmltaskreport-3.html +0 -23265
- data/benchmarks/htmltaskreport-4.html +0 -22135
- data/benchmarks/profile.clt +0 -36082
- data/benchmarks/tj3.profile +0 -0
- data/benchmarks/tj3.profile.grind +0 -6185
- data/benchmarks/tj3.profile.symbols +0 -432
- data/benchmarks/tj3.profile.txt +0 -448
- data/doc/AppConfig.html +0 -1515
- data/doc/CHANGELOG.html +0 -2441
- data/doc/COPYING.html +0 -923
- data/doc/Diff.html +0 -1217
- data/doc/Diff/Hunk.html +0 -1050
- data/doc/Diffable.html +0 -708
- data/doc/DiffableString.html +0 -708
- data/doc/Object.html +0 -744
- data/doc/README_rdoc.html +0 -774
- data/doc/RuntimeConfig.html +0 -880
- data/doc/String.html +0 -1029
- data/doc/TaskJuggler.html +0 -2698
- data/doc/TaskJuggler/Account.html +0 -777
- data/doc/TaskJuggler/AccountAttribute.html +0 -793
- data/doc/TaskJuggler/AccountScenario.html +0 -736
- data/doc/TaskJuggler/Allocation.html +0 -987
- data/doc/TaskJuggler/AllocationAttribute.html +0 -823
- data/doc/TaskJuggler/AttributeBase.html +0 -1379
- data/doc/TaskJuggler/AttributeDefinition.html +0 -839
- data/doc/TaskJuggler/AttributeOverwrite.html +0 -630
- data/doc/TaskJuggler/BatchProcessor.html +0 -1202
- data/doc/TaskJuggler/Booking.html +0 -883
- data/doc/TaskJuggler/BookingListAttribute.html +0 -793
- data/doc/TaskJuggler/BooleanAttribute.html +0 -793
- data/doc/TaskJuggler/CSVFile.html +0 -1152
- data/doc/TaskJuggler/CellSettingPattern.html +0 -724
- data/doc/TaskJuggler/CellSettingPatternList.html +0 -773
- data/doc/TaskJuggler/Charge.html +0 -801
- data/doc/TaskJuggler/ChargeListAttribute.html +0 -757
- data/doc/TaskJuggler/ChargeSet.html +0 -973
- data/doc/TaskJuggler/ChargeSetListAttribute.html +0 -802
- data/doc/TaskJuggler/CollisionDetector.html +0 -1113
- data/doc/TaskJuggler/ColumnListAttribute.html +0 -757
- data/doc/TaskJuggler/ColumnTable.html +0 -787
- data/doc/TaskJuggler/Daemon.html +0 -843
- data/doc/TaskJuggler/DataCache.html +0 -1049
- data/doc/TaskJuggler/DataCacheEntry.html +0 -761
- data/doc/TaskJuggler/DateAttribute.html +0 -761
- data/doc/TaskJuggler/DefinitionListAttribute.html +0 -679
- data/doc/TaskJuggler/DependencyListAttribute.html +0 -797
- data/doc/TaskJuggler/DurationAttribute.html +0 -794
- data/doc/TaskJuggler/FileList.html +0 -817
- data/doc/TaskJuggler/FileRecord.html +0 -726
- data/doc/TaskJuggler/FixnumAttribute.html +0 -715
- data/doc/TaskJuggler/FlagListAttribute.html +0 -793
- data/doc/TaskJuggler/FloatAttribute.html +0 -757
- data/doc/TaskJuggler/FormatListAttribute.html +0 -721
- data/doc/TaskJuggler/GanttChart.html +0 -1511
- data/doc/TaskJuggler/GanttContainer.html +0 -969
- data/doc/TaskJuggler/GanttHeader.html +0 -972
- data/doc/TaskJuggler/GanttHeaderScaleItem.html +0 -786
- data/doc/TaskJuggler/GanttLine.html +0 -1349
- data/doc/TaskJuggler/GanttLoadStack.html +0 -852
- data/doc/TaskJuggler/GanttMilestone.html +0 -950
- data/doc/TaskJuggler/GanttRouter.html +0 -1160
- data/doc/TaskJuggler/GanttTaskBar.html +0 -972
- data/doc/TaskJuggler/HTMLDocument.html +0 -800
- data/doc/TaskJuggler/HTMLElements.html +0 -623
- data/doc/TaskJuggler/HTMLGraphics.html +0 -861
- data/doc/TaskJuggler/ICalReport.html +0 -864
- data/doc/TaskJuggler/ICalendar.html +0 -1035
- data/doc/TaskJuggler/ICalendar/Component.html +0 -969
- data/doc/TaskJuggler/ICalendar/Event.html +0 -742
- data/doc/TaskJuggler/ICalendar/Journal.html +0 -722
- data/doc/TaskJuggler/ICalendar/Person.html +0 -633
- data/doc/TaskJuggler/ICalendar/Todo.html +0 -789
- data/doc/TaskJuggler/Interval.html +0 -1003
- data/doc/TaskJuggler/IntervalList.html +0 -821
- data/doc/TaskJuggler/JobInfo.html +0 -967
- data/doc/TaskJuggler/Journal.html +0 -1272
- data/doc/TaskJuggler/JournalEntry.html +0 -884
- data/doc/TaskJuggler/JournalEntryList.html +0 -1253
- data/doc/TaskJuggler/KeywordArray.html +0 -720
- data/doc/TaskJuggler/KeywordDocumentation.html +0 -2274
- data/doc/TaskJuggler/Limits.html +0 -1019
- data/doc/TaskJuggler/Limits/Limit.html +0 -1022
- data/doc/TaskJuggler/LimitsAttribute.html +0 -759
- data/doc/TaskJuggler/ListAttributeBase.html +0 -727
- data/doc/TaskJuggler/Log.html +0 -1187
- data/doc/TaskJuggler/LogFile.html +0 -1004
- data/doc/TaskJuggler/LogicalAttribute.html +0 -784
- data/doc/TaskJuggler/LogicalExpression.html +0 -825
- data/doc/TaskJuggler/LogicalExpressionAttribute.html +0 -715
- data/doc/TaskJuggler/LogicalExpressionListAttribute.html +0 -715
- data/doc/TaskJuggler/LogicalFlag.html +0 -777
- data/doc/TaskJuggler/LogicalFunction.html +0 -1433
- data/doc/TaskJuggler/LogicalOperation.html +0 -1168
- data/doc/TaskJuggler/ManagerResponsibilities.html +0 -760
- data/doc/TaskJuggler/ManagerStatusRecord.html +0 -764
- data/doc/TaskJuggler/Message.html +0 -861
- data/doc/TaskJuggler/MessageHandler.html +0 -1102
- data/doc/TaskJuggler/Navigator.html +0 -967
- data/doc/TaskJuggler/NavigatorElement.html +0 -1018
- data/doc/TaskJuggler/NikuProject.html +0 -748
- data/doc/TaskJuggler/NikuReport.html +0 -1494
- data/doc/TaskJuggler/NikuResource.html +0 -718
- data/doc/TaskJuggler/NodeListAttribute.html +0 -679
- data/doc/TaskJuggler/PlaceHolderCell.html +0 -772
- data/doc/TaskJuggler/ProcessIntercom.html +0 -1041
- data/doc/TaskJuggler/ProcessIntercomIface.html +0 -797
- data/doc/TaskJuggler/Project.html +0 -3741
- data/doc/TaskJuggler/ProjectBroker.html +0 -1700
- data/doc/TaskJuggler/ProjectBrokerIface.html +0 -875
- data/doc/TaskJuggler/ProjectFileParser.html +0 -2127
- data/doc/TaskJuggler/ProjectFileScanner.html +0 -1921
- data/doc/TaskJuggler/ProjectRecord.html +0 -1002
- data/doc/TaskJuggler/ProjectServer.html +0 -1273
- data/doc/TaskJuggler/ProjectServerIface.html +0 -892
- data/doc/TaskJuggler/PropertyAttribute.html +0 -715
- data/doc/TaskJuggler/PropertyList.html +0 -1423
- data/doc/TaskJuggler/PropertySet.html +0 -1816
- data/doc/TaskJuggler/PropertyTreeNode.html +0 -2895
- data/doc/TaskJuggler/Query.html +0 -1783
- data/doc/TaskJuggler/RTFHandlers.html +0 -688
- data/doc/TaskJuggler/RTFNavigator.html +0 -816
- data/doc/TaskJuggler/RTFQuery.html +0 -1107
- data/doc/TaskJuggler/RTFReport.html +0 -844
- data/doc/TaskJuggler/RTFReportLink.html +0 -836
- data/doc/TaskJuggler/RTFWithQuerySupport.html +0 -726
- data/doc/TaskJuggler/RealFormat.html +0 -829
- data/doc/TaskJuggler/RealFormatAttribute.html +0 -679
- data/doc/TaskJuggler/ReferenceAttribute.html +0 -904
- data/doc/TaskJuggler/Report.html +0 -1645
- data/doc/TaskJuggler/ReportBase.html +0 -1192
- data/doc/TaskJuggler/ReportContext.html +0 -861
- data/doc/TaskJuggler/ReportScenario.html +0 -633
- data/doc/TaskJuggler/ReportServer.html +0 -1092
- data/doc/TaskJuggler/ReportServerIface.html +0 -926
- data/doc/TaskJuggler/ReportServerRecord.html +0 -805
- data/doc/TaskJuggler/ReportServlet.html +0 -1053
- data/doc/TaskJuggler/ReportTable.html +0 -1203
- data/doc/TaskJuggler/ReportTableCell.html +0 -1690
- data/doc/TaskJuggler/ReportTableColumn.html +0 -914
- data/doc/TaskJuggler/ReportTableLegend.html +0 -1084
- data/doc/TaskJuggler/ReportTableLine.html +0 -1091
- data/doc/TaskJuggler/Resource.html +0 -1066
- data/doc/TaskJuggler/ResourceListAttribute.html +0 -853
- data/doc/TaskJuggler/ResourceListRE.html +0 -761
- data/doc/TaskJuggler/ResourceScenario.html +0 -2591
- data/doc/TaskJuggler/RichText.html +0 -903
- data/doc/TaskJuggler/RichTextAttribute.html +0 -835
- data/doc/TaskJuggler/RichTextDocument.html +0 -1062
- data/doc/TaskJuggler/RichTextElement.html +0 -1804
- data/doc/TaskJuggler/RichTextFunctionExample.html +0 -823
- data/doc/TaskJuggler/RichTextFunctionHandler.html +0 -774
- data/doc/TaskJuggler/RichTextImage.html +0 -736
- data/doc/TaskJuggler/RichTextIntermediate.html +0 -1309
- data/doc/TaskJuggler/RichTextParser.html +0 -892
- data/doc/TaskJuggler/RichTextScanner.html +0 -1589
- data/doc/TaskJuggler/RichTextSnip.html +0 -1024
- data/doc/TaskJuggler/RichTextSyntaxRules.html +0 -2076
- data/doc/TaskJuggler/Scenario.html +0 -680
- data/doc/TaskJuggler/ScenarioData.html +0 -905
- data/doc/TaskJuggler/ScenarioListAttribute.html +0 -757
- data/doc/TaskJuggler/Scoreboard.html +0 -1265
- data/doc/TaskJuggler/ScoreboardInterval.html +0 -1116
- data/doc/TaskJuggler/SheetHandlerBase.html +0 -1321
- data/doc/TaskJuggler/SheetReceiver.html +0 -1422
- data/doc/TaskJuggler/SheetSender.html +0 -1192
- data/doc/TaskJuggler/Shift.html +0 -775
- data/doc/TaskJuggler/ShiftAssignment.html +0 -1032
- data/doc/TaskJuggler/ShiftAssignments.html +0 -1438
- data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +0 -759
- data/doc/TaskJuggler/ShiftScenario.html +0 -806
- data/doc/TaskJuggler/SimpleQueryExpander.html +0 -756
- data/doc/TaskJuggler/SortListAttribute.html +0 -715
- data/doc/TaskJuggler/StatusSheetReceiver.html +0 -702
- data/doc/TaskJuggler/StatusSheetReport.html +0 -959
- data/doc/TaskJuggler/StatusSheetSender.html +0 -832
- data/doc/TaskJuggler/StdIoWrapper.html +0 -720
- data/doc/TaskJuggler/StringAttribute.html +0 -757
- data/doc/TaskJuggler/SymbolAttribute.html +0 -715
- data/doc/TaskJuggler/SyntaxReference.html +0 -1264
- data/doc/TaskJuggler/TOCEntry.html +0 -860
- data/doc/TaskJuggler/TSResourceRecord.html +0 -756
- data/doc/TaskJuggler/TSTaskRecord.html +0 -768
- data/doc/TaskJuggler/TableColumnDefinition.html +0 -973
- data/doc/TaskJuggler/TableOfContents.html +0 -814
- data/doc/TaskJuggler/TableReport.html +0 -2580
- data/doc/TaskJuggler/TagFile.html +0 -817
- data/doc/TaskJuggler/TagFile/TagFileEntry.html +0 -841
- data/doc/TaskJuggler/Task.html +0 -914
- data/doc/TaskJuggler/TaskDepListAttribute.html +0 -797
- data/doc/TaskJuggler/TaskDependency.html +0 -856
- data/doc/TaskJuggler/TaskListAttribute.html +0 -797
- data/doc/TaskJuggler/TaskListRE.html +0 -760
- data/doc/TaskJuggler/TaskScenario.html +0 -5237
- data/doc/TaskJuggler/TernarySearchTree.html +0 -1365
- data/doc/TaskJuggler/TextFormatter.html +0 -997
- data/doc/TaskJuggler/TextParser.html +0 -1886
- data/doc/TaskJuggler/TextParser/Macro.html +0 -732
- data/doc/TaskJuggler/TextParser/MacroTable.html +0 -856
- data/doc/TaskJuggler/TextParser/Pattern.html +0 -1767
- data/doc/TaskJuggler/TextParser/Rule.html +0 -1443
- data/doc/TaskJuggler/TextParser/Scanner.html +0 -1542
- data/doc/TaskJuggler/TextParser/Scanner/BufferStreamHandle.html +0 -685
- data/doc/TaskJuggler/TextParser/Scanner/FileStreamHandle.html +0 -751
- data/doc/TaskJuggler/TextParser/Scanner/MacroStackEntry.html +0 -748
- data/doc/TaskJuggler/TextParser/Scanner/StreamHandle.html +0 -1128
- data/doc/TaskJuggler/TextParser/SourceFileInfo.html +0 -784
- data/doc/TaskJuggler/TextParser/StackElement.html +0 -964
- data/doc/TaskJuggler/TextParser/State.html +0 -1039
- data/doc/TaskJuggler/TextParser/StateTransition.html +0 -832
- data/doc/TaskJuggler/TextParser/TextParserResultArray.html +0 -735
- data/doc/TaskJuggler/TextParser/TokenDoc.html +0 -766
- data/doc/TaskJuggler/TextReport.html +0 -945
- data/doc/TaskJuggler/TimeInterval.html +0 -841
- data/doc/TaskJuggler/TimeIntervalListAttribute.html +0 -797
- data/doc/TaskJuggler/TimeSheet.html +0 -1288
- data/doc/TaskJuggler/TimeSheetReceiver.html +0 -699
- data/doc/TaskJuggler/TimeSheetRecord.html +0 -1439
- data/doc/TaskJuggler/TimeSheetReport.html +0 -1037
- data/doc/TaskJuggler/TimeSheetSender.html +0 -724
- data/doc/TaskJuggler/TimeSheetSummary.html +0 -983
- data/doc/TaskJuggler/TimeSheets.html +0 -760
- data/doc/TaskJuggler/Tj3.html +0 -896
- data/doc/TaskJuggler/Tj3AppBase.html +0 -966
- data/doc/TaskJuggler/Tj3Client.html +0 -1534
- data/doc/TaskJuggler/Tj3Daemon.html +0 -894
- data/doc/TaskJuggler/Tj3Man.html +0 -792
- data/doc/TaskJuggler/Tj3SheetAppBase.html +0 -782
- data/doc/TaskJuggler/Tj3SsReceiver.html +0 -771
- data/doc/TaskJuggler/Tj3SsSender.html +0 -804
- data/doc/TaskJuggler/Tj3TsReceiver.html +0 -771
- data/doc/TaskJuggler/Tj3TsSender.html +0 -791
- data/doc/TaskJuggler/Tj3TsSummary.html +0 -799
- data/doc/TaskJuggler/TjException.html +0 -716
- data/doc/TaskJuggler/TjRuntimeError.html +0 -630
- data/doc/TaskJuggler/TjTime.html +0 -3179
- data/doc/TaskJuggler/TjpExample.html +0 -921
- data/doc/TaskJuggler/TjpExportRE.html +0 -1851
- data/doc/TaskJuggler/TjpSyntaxRules.html +0 -14721
- data/doc/TaskJuggler/URLParameter.html +0 -715
- data/doc/TaskJuggler/UserManual.html +0 -1248
- data/doc/TaskJuggler/VimSyntax.html +0 -1088
- data/doc/TaskJuggler/WebServer.html +0 -781
- data/doc/TaskJuggler/WelcomePage.html +0 -813
- data/doc/TaskJuggler/WorkingHours.html +0 -1293
- data/doc/TaskJuggler/WorkingHoursAttribute.html +0 -780
- data/doc/TaskJuggler/XMLBlob.html +0 -731
- data/doc/TaskJuggler/XMLComment.html +0 -726
- data/doc/TaskJuggler/XMLDocument.html +0 -827
- data/doc/TaskJuggler/XMLElement.html +0 -1014
- data/doc/TaskJuggler/XMLNamedText.html +0 -687
- data/doc/TaskJuggler/XMLText.html +0 -741
- data/doc/index.html +0 -4664
- data/doc/lib/taskjuggler/AccountScenario_rb.html +0 -69
- data/doc/lib/taskjuggler/Account_rb.html +0 -71
- data/doc/lib/taskjuggler/AlgorithmDiff_rb.html +0 -67
- data/doc/lib/taskjuggler/Allocation_rb.html +0 -71
- data/doc/lib/taskjuggler/AppConfig_rb.html +0 -69
- data/doc/lib/taskjuggler/AttributeBase_rb.html +0 -69
- data/doc/lib/taskjuggler/AttributeDefinition_rb.html +0 -67
- data/doc/lib/taskjuggler/Attributes_rb.html +0 -83
- data/doc/lib/taskjuggler/BatchProcessor_rb.html +0 -71
- data/doc/lib/taskjuggler/Booking_rb.html +0 -67
- data/doc/lib/taskjuggler/ChargeSet_rb.html +0 -69
- data/doc/lib/taskjuggler/Charge_rb.html +0 -69
- data/doc/lib/taskjuggler/DataCache_rb.html +0 -71
- data/doc/lib/taskjuggler/FileList_rb.html +0 -67
- data/doc/lib/taskjuggler/HTMLDocument_rb.html +0 -71
- data/doc/lib/taskjuggler/HTMLElements_rb.html +0 -69
- data/doc/lib/taskjuggler/ICalendar_rb.html +0 -69
- data/doc/lib/taskjuggler/IntervalList_rb.html +0 -69
- data/doc/lib/taskjuggler/Interval_rb.html +0 -69
- data/doc/lib/taskjuggler/Journal_rb.html +0 -67
- data/doc/lib/taskjuggler/KeywordArray_rb.html +0 -67
- data/doc/lib/taskjuggler/KeywordDocumentation_rb.html +0 -77
- data/doc/lib/taskjuggler/Limits_rb.html +0 -69
- data/doc/lib/taskjuggler/LogFile_rb.html +0 -69
- data/doc/lib/taskjuggler/Log_rb.html +0 -71
- data/doc/lib/taskjuggler/LogicalExpression_rb.html +0 -73
- data/doc/lib/taskjuggler/LogicalFunction_rb.html +0 -69
- data/doc/lib/taskjuggler/LogicalOperation_rb.html +0 -69
- data/doc/lib/taskjuggler/MessageHandler_rb.html +0 -69
- data/doc/lib/taskjuggler/ProjectFileParser_rb.html +0 -77
- data/doc/lib/taskjuggler/ProjectFileScanner_rb.html +0 -69
- data/doc/lib/taskjuggler/Project_rb.html +0 -113
- data/doc/lib/taskjuggler/PropertyList_rb.html +0 -67
- data/doc/lib/taskjuggler/PropertySet_rb.html +0 -71
- data/doc/lib/taskjuggler/PropertyTreeNode_rb.html +0 -67
- data/doc/lib/taskjuggler/Query_rb.html +0 -69
- data/doc/lib/taskjuggler/RealFormat_rb.html +0 -67
- data/doc/lib/taskjuggler/ResourceScenario_rb.html +0 -69
- data/doc/lib/taskjuggler/Resource_rb.html +0 -71
- data/doc/lib/taskjuggler/RichText/Document_rb.html +0 -73
- data/doc/lib/taskjuggler/RichText/Element_rb.html +0 -75
- data/doc/lib/taskjuggler/RichText/FunctionExample_rb.html +0 -73
- data/doc/lib/taskjuggler/RichText/FunctionHandler_rb.html +0 -67
- data/doc/lib/taskjuggler/RichText/Parser_rb.html +0 -75
- data/doc/lib/taskjuggler/RichText/RTFHandlers_rb.html +0 -75
- data/doc/lib/taskjuggler/RichText/RTFNavigator_rb.html +0 -73
- data/doc/lib/taskjuggler/RichText/RTFQuery_rb.html +0 -73
- data/doc/lib/taskjuggler/RichText/RTFReportLink_rb.html +0 -75
- data/doc/lib/taskjuggler/RichText/RTFReport_rb.html +0 -71
- data/doc/lib/taskjuggler/RichText/RTFWithQuerySupport_rb.html +0 -69
- data/doc/lib/taskjuggler/RichText/Scanner_rb.html +0 -71
- data/doc/lib/taskjuggler/RichText/Snip_rb.html +0 -71
- data/doc/lib/taskjuggler/RichText/SyntaxRules_rb.html +0 -67
- data/doc/lib/taskjuggler/RichText/TOCEntry_rb.html +0 -71
- data/doc/lib/taskjuggler/RichText/TableOfContents_rb.html +0 -71
- data/doc/lib/taskjuggler/RichText_rb.html +0 -73
- data/doc/lib/taskjuggler/RuntimeConfig_rb.html +0 -69
- data/doc/lib/taskjuggler/ScenarioData_rb.html +0 -71
- data/doc/lib/taskjuggler/Scenario_rb.html +0 -69
- data/doc/lib/taskjuggler/Scoreboard_rb.html +0 -69
- data/doc/lib/taskjuggler/SheetHandlerBase_rb.html +0 -75
- data/doc/lib/taskjuggler/SheetReceiver_rb.html +0 -81
- data/doc/lib/taskjuggler/SheetSender_rb.html +0 -79
- data/doc/lib/taskjuggler/ShiftAssignments_rb.html +0 -71
- data/doc/lib/taskjuggler/ShiftScenario_rb.html +0 -69
- data/doc/lib/taskjuggler/Shift_rb.html +0 -71
- data/doc/lib/taskjuggler/SimpleQueryExpander_rb.html +0 -69
- data/doc/lib/taskjuggler/StatusSheetReceiver_rb.html +0 -69
- data/doc/lib/taskjuggler/StatusSheetSender_rb.html +0 -69
- data/doc/lib/taskjuggler/StdIoWrapper_rb.html +0 -67
- data/doc/lib/taskjuggler/SyntaxReference_rb.html +0 -75
- data/doc/lib/taskjuggler/TableColumnDefinition_rb.html +0 -67
- data/doc/lib/taskjuggler/TaskDependency_rb.html +0 -67
- data/doc/lib/taskjuggler/TaskJuggler_rb.html +0 -75
- data/doc/lib/taskjuggler/TaskScenario_rb.html +0 -71
- data/doc/lib/taskjuggler/Task_rb.html +0 -71
- data/doc/lib/taskjuggler/TernarySearchTree_rb.html +0 -69
- data/doc/lib/taskjuggler/TextFormatter_rb.html +0 -69
- data/doc/lib/taskjuggler/TextParser/MacroTable_rb.html +0 -67
- data/doc/lib/taskjuggler/TextParser/Pattern_rb.html +0 -71
- data/doc/lib/taskjuggler/TextParser/Rule_rb.html +0 -69
- data/doc/lib/taskjuggler/TextParser/Scanner_rb.html +0 -77
- data/doc/lib/taskjuggler/TextParser/SourceFileInfo_rb.html +0 -67
- data/doc/lib/taskjuggler/TextParser/StackElement_rb.html +0 -67
- data/doc/lib/taskjuggler/TextParser/State_rb.html +0 -67
- data/doc/lib/taskjuggler/TextParser/TokenDoc_rb.html +0 -67
- data/doc/lib/taskjuggler/TextParser_rb.html +0 -79
- data/doc/lib/taskjuggler/TimeSheetReceiver_rb.html +0 -69
- data/doc/lib/taskjuggler/TimeSheetSender_rb.html +0 -69
- data/doc/lib/taskjuggler/TimeSheetSummary_rb.html +0 -69
- data/doc/lib/taskjuggler/TimeSheets_rb.html +0 -67
- data/doc/lib/taskjuggler/Tj3AppBase_rb.html +0 -79
- data/doc/lib/taskjuggler/Tj3Config_rb.html +0 -71
- data/doc/lib/taskjuggler/Tj3SheetAppBase_rb.html +0 -69
- data/doc/lib/taskjuggler/TjException_rb.html +0 -67
- data/doc/lib/taskjuggler/TjTime_rb.html +0 -71
- data/doc/lib/taskjuggler/TjpExample_rb.html +0 -69
- data/doc/lib/taskjuggler/TjpSyntaxRules_rb.html +0 -67
- data/doc/lib/taskjuggler/URLParameter_rb.html +0 -69
- data/doc/lib/taskjuggler/UTF8String_rb.html +0 -69
- data/doc/lib/taskjuggler/UserManual_rb.html +0 -81
- data/doc/lib/taskjuggler/VimSyntax_rb.html +0 -69
- data/doc/lib/taskjuggler/WorkingHours_rb.html +0 -71
- data/doc/lib/taskjuggler/XMLDocument_rb.html +0 -69
- data/doc/lib/taskjuggler/XMLElement_rb.html +0 -69
- data/doc/lib/taskjuggler/apps/Tj3Client_rb.html +0 -75
- data/doc/lib/taskjuggler/apps/Tj3Daemon_rb.html +0 -75
- data/doc/lib/taskjuggler/apps/Tj3Man_rb.html +0 -75
- data/doc/lib/taskjuggler/apps/Tj3SsReceiver_rb.html +0 -71
- data/doc/lib/taskjuggler/apps/Tj3SsSender_rb.html +0 -71
- data/doc/lib/taskjuggler/apps/Tj3TsReceiver_rb.html +0 -71
- data/doc/lib/taskjuggler/apps/Tj3TsSender_rb.html +0 -71
- data/doc/lib/taskjuggler/apps/Tj3TsSummary_rb.html +0 -71
- data/doc/lib/taskjuggler/apps/Tj3_rb.html +0 -71
- data/doc/lib/taskjuggler/daemon/Daemon_rb.html +0 -69
- data/doc/lib/taskjuggler/daemon/ProcessIntercom_rb.html +0 -71
- data/doc/lib/taskjuggler/daemon/ProjectBroker_rb.html +0 -83
- data/doc/lib/taskjuggler/daemon/ProjectServer_rb.html +0 -85
- data/doc/lib/taskjuggler/daemon/ReportServer_rb.html +0 -73
- data/doc/lib/taskjuggler/daemon/ReportServlet_rb.html +0 -69
- data/doc/lib/taskjuggler/daemon/WebServer_rb.html +0 -81
- data/doc/lib/taskjuggler/daemon/WelcomePage_rb.html +0 -71
- data/doc/lib/taskjuggler/deep_copy_rb.html +0 -67
- data/doc/lib/taskjuggler/reports/CSVFile_rb.html +0 -69
- data/doc/lib/taskjuggler/reports/CollisionDetector_rb.html +0 -69
- data/doc/lib/taskjuggler/reports/ColumnTable_rb.html +0 -69
- data/doc/lib/taskjuggler/reports/GanttChart_rb.html +0 -75
- data/doc/lib/taskjuggler/reports/GanttContainer_rb.html +0 -69
- data/doc/lib/taskjuggler/reports/GanttHeaderScaleItem_rb.html +0 -67
- data/doc/lib/taskjuggler/reports/GanttHeader_rb.html +0 -69
- data/doc/lib/taskjuggler/reports/GanttLine_rb.html +0 -79
- data/doc/lib/taskjuggler/reports/GanttLoadStack_rb.html +0 -69
- data/doc/lib/taskjuggler/reports/GanttMilestone_rb.html +0 -69
- data/doc/lib/taskjuggler/reports/GanttRouter_rb.html +0 -69
- data/doc/lib/taskjuggler/reports/GanttTaskBar_rb.html +0 -69
- data/doc/lib/taskjuggler/reports/HTMLGraphics_rb.html +0 -67
- data/doc/lib/taskjuggler/reports/ICalReport_rb.html +0 -71
- data/doc/lib/taskjuggler/reports/Navigator_rb.html +0 -69
- data/doc/lib/taskjuggler/reports/NikuReport_rb.html +0 -71
- data/doc/lib/taskjuggler/reports/ReportBase_rb.html +0 -67
- data/doc/lib/taskjuggler/reports/ReportContext_rb.html +0 -67
- data/doc/lib/taskjuggler/reports/ReportTableCell_rb.html +0 -67
- data/doc/lib/taskjuggler/reports/ReportTableColumn_rb.html +0 -67
- data/doc/lib/taskjuggler/reports/ReportTableLegend_rb.html +0 -67
- data/doc/lib/taskjuggler/reports/ReportTableLine_rb.html +0 -69
- data/doc/lib/taskjuggler/reports/ReportTable_rb.html +0 -71
- data/doc/lib/taskjuggler/reports/Report_rb.html +0 -97
- data/doc/lib/taskjuggler/reports/ResourceListRE_rb.html +0 -75
- data/doc/lib/taskjuggler/reports/StatusSheetReport_rb.html +0 -69
- data/doc/lib/taskjuggler/reports/TableReport_rb.html +0 -77
- data/doc/lib/taskjuggler/reports/TagFile_rb.html +0 -71
- data/doc/lib/taskjuggler/reports/TaskListRE_rb.html +0 -75
- data/doc/lib/taskjuggler/reports/TextReport_rb.html +0 -69
- data/doc/lib/taskjuggler/reports/TimeSheetReport_rb.html +0 -69
- data/doc/lib/taskjuggler/reports/TjpExportRE_rb.html +0 -69
- data/doc/lib/tj3_rb.html +0 -69
- data/doc/lib/tj3client_rb.html +0 -69
- data/doc/lib/tj3d_rb.html +0 -69
- data/doc/lib/tj3man_rb.html +0 -69
- data/doc/lib/tj3ss_receiver_rb.html +0 -69
- data/doc/lib/tj3ss_sender_rb.html +0 -69
- data/doc/lib/tj3ts_receiver_rb.html +0 -69
- data/doc/lib/tj3ts_sender_rb.html +0 -69
- data/doc/lib/tj3ts_summary_rb.html +0 -69
- data/doc/rdoc.css +0 -706
- data/test/TestSuite/Export-Reports/refs/CompletedWork.tji.tjp +0 -40
- data/test/TestSuite/HTML-Reports/CellText.html +0 -758
- data/test/TestSuite/HTML-Reports/ColumnPeriods.html +0 -156
- data/test/TestSuite/HTML-Reports/IsOngoing.html +0 -172
- data/test/TestSuite/HTML-Reports/LogicalFunctions.html +0 -245
- data/test/TestSuite/HTML-Reports/Query.html +0 -31
- data/test/TestSuite/HTML-Reports/depArrows.html +0 -851
- data/test/TestSuite/HTML-Reports/profile.html +0 -37581
- data/test/TestSuite/Scheduler/Errors/R.html +0 -113
- data/test/TestSuite/StatusSheets/dev2.tji +0 -22
- data/test/TestSuite/Syntax/Correct/CompletedWork.tji.tjp +0 -38
- data/test/TestSuite/TimeSheets/resrep.tji +0 -7
- data/test/TestSuite/TimeSheets/ts.tji +0 -351
- data/test/TestSuite/TimeSheets/tsdef.tji +0 -2
data/CHANGELOG
CHANGED
data/data/tjp.vim
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
" Vim syntax file
|
2
2
|
" Language: TaskJuggler
|
3
3
|
" Maintainer: TaskJuggler Developers <taskjuggler-devel@googlegroups.com>
|
4
|
-
" Last Change: 2011-07-
|
4
|
+
" Last Change: 2011-07-13 20:16:00 +0200
|
5
5
|
" This file was automatically generated by VimSyntax.rb
|
6
6
|
|
7
7
|
if exists("b:current_syntax")
|
data/lib/exchangebug.rb
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
#!/usr/bin/env ruby -w
|
2
|
+
# encoding: UTF-8
|
3
|
+
#
|
4
|
+
# = exchangebug.rb -- The TaskJuggler III Project Management Software
|
5
|
+
#
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011
|
7
|
+
# by Chris Schlaeger <chris@linux.com>
|
8
|
+
#
|
9
|
+
# This program is free software; you can redistribute it and/or modify
|
10
|
+
# it under the terms of version 2 of the GNU General Public License as
|
11
|
+
# published by the Free Software Foundation.
|
12
|
+
#
|
13
|
+
|
14
|
+
require 'mail'
|
15
|
+
|
16
|
+
Mail.defaults do
|
17
|
+
delivery_method :smtp, {
|
18
|
+
:address => 'storexbh1.amd.com',
|
19
|
+
:port => 25
|
20
|
+
}
|
21
|
+
end
|
22
|
+
|
23
|
+
mail = Mail.deliver do
|
24
|
+
#to [ 'Test.STOREXPF1@amd.com', 'Test.Storexmbp01@amd.com', 'dl.xadm-in@amd.com' ]
|
25
|
+
to 'Chris.Schlaeger@amd.com'
|
26
|
+
from 'timesheets@taskjuggler.amd.com'
|
27
|
+
subject 'Mail that gets corrupted by Exchange Server'
|
28
|
+
text_part do
|
29
|
+
content_type [ 'text', 'plain', { 'charset' => 'UTF-8' } ]
|
30
|
+
content_transfer_encoding 'quoted-printable'
|
31
|
+
body "This is the plain text part.\nCorrupted mails no longer have this content."
|
32
|
+
end
|
33
|
+
html_part do
|
34
|
+
content_type 'text/html; charset=UTF-8'
|
35
|
+
content_transfer_encoding 'quoted-printable'
|
36
|
+
body "<h1>This is the HTML part.\nCorrupted mails have this text in the text/plain part as well.</h1>"
|
37
|
+
end
|
38
|
+
end
|
39
|
+
#mail.deliver
|
40
|
+
|
41
|
+
puts "The following mail has been sent out:\n"
|
42
|
+
puts mail.to_s
|
@@ -0,0 +1,55 @@
|
|
1
|
+
#!/usr/bin/env ruby -w
|
2
|
+
# encoding: UTF-8
|
3
|
+
#
|
4
|
+
# = ruby-signal-bug.rb -- The TaskJuggler III Project Management Software
|
5
|
+
#
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011
|
7
|
+
# by Chris Schlaeger <chris@linux.com>
|
8
|
+
#
|
9
|
+
# This program is free software; you can redistribute it and/or modify
|
10
|
+
# it under the terms of version 2 of the GNU General Public License as
|
11
|
+
# published by the Free Software Foundation.
|
12
|
+
#
|
13
|
+
|
14
|
+
|
15
|
+
require 'BatchProcessor'
|
16
|
+
|
17
|
+
def test_fileIO
|
18
|
+
# First parameter should be larger than the number of CPU cores.
|
19
|
+
doRun(3, 2000) do
|
20
|
+
fname = "test#{$$}.txt"
|
21
|
+
f = File.new(fname, 'w')
|
22
|
+
0.upto(10000) do |i|
|
23
|
+
f.puts "#{i} Hello, world! "
|
24
|
+
end
|
25
|
+
f.close
|
26
|
+
File.delete(fname)
|
27
|
+
|
28
|
+
# Allow some time for the OS to recycle file descriptors.
|
29
|
+
sleep(0.05)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def doRun(maxCPUs, jobs, &block)
|
34
|
+
# Create a BatchProcessor
|
35
|
+
bp = TaskJuggler::BatchProcessor.new(maxCPUs)
|
36
|
+
|
37
|
+
# Queue jobs
|
38
|
+
jobs.times do |i|
|
39
|
+
bp.queue("job #{i}") { yield }
|
40
|
+
end
|
41
|
+
|
42
|
+
ok = error = 0
|
43
|
+
|
44
|
+
# Wait for them to finish
|
45
|
+
bp.wait do |j|
|
46
|
+
if j.retVal.signaled?
|
47
|
+
error += 1
|
48
|
+
else
|
49
|
+
ok += 1
|
50
|
+
end
|
51
|
+
end
|
52
|
+
puts "Ok: #{ok} Errors: #{error}"
|
53
|
+
end
|
54
|
+
|
55
|
+
test_fileIO
|
@@ -77,58 +77,23 @@ class TaskJuggler
|
|
77
77
|
@entries = {}
|
78
78
|
end
|
79
79
|
|
80
|
-
# Store _value_ into the cache using _key_ to tag it. _key_ must be unique
|
81
|
-
# and must be used to load the value from the cache again. You cannot
|
82
|
-
# store nil values!
|
83
|
-
def store(value, key)
|
84
|
-
@stores += 1
|
85
|
-
|
86
|
-
if @entries.size > @highWaterMark
|
87
|
-
while @entries.size > @lowWaterMark
|
88
|
-
# How many entries do we need to delete to get to the low watermark?
|
89
|
-
toDelete = @entries.size - @lowWaterMark
|
90
|
-
@entries.delete_if do |foo, e|
|
91
|
-
# Hit counts age with every cleanup.
|
92
|
-
(e.hits -= 1) < 0 && (toDelete -= 1) >= 0
|
93
|
-
end
|
94
|
-
end
|
95
|
-
end
|
96
|
-
|
97
|
-
@entries[key] = DataCacheEntry.new(value)
|
98
|
-
|
99
|
-
value
|
100
|
-
end
|
101
|
-
|
102
80
|
if RUBY_VERSION < '1.9.0'
|
103
81
|
|
104
82
|
# Ruby 1.8 has a buggy hash key generation algorithm that leads to many
|
105
83
|
# hash collisions. We completely disable caching on 1.8.
|
106
84
|
|
107
|
-
def
|
108
|
-
nil
|
109
|
-
end
|
110
|
-
|
111
|
-
def cached(key)
|
85
|
+
def cached(*args)
|
112
86
|
yield
|
113
87
|
end
|
114
88
|
|
115
89
|
else
|
116
90
|
|
117
|
-
#
|
118
|
-
#
|
119
|
-
|
120
|
-
if (e = @entries[key])
|
121
|
-
@hits += 1
|
122
|
-
e.value
|
123
|
-
else
|
124
|
-
@misses += 1
|
125
|
-
nil
|
126
|
-
end
|
127
|
-
end
|
128
|
-
|
129
|
-
# If we have a value for the _key_, return the value. Otherwise call the
|
91
|
+
# _args_ is a set of arguments that unambigously identify the data entry.
|
92
|
+
# It's converted into a hash to store or recover a previously stored
|
93
|
+
# entry. If we have a value for the key, return the value. Otherwise call the
|
130
94
|
# block to compute the value, store it and return it.
|
131
|
-
def cached(
|
95
|
+
def cached(*args)
|
96
|
+
key = args.hash
|
132
97
|
if @entries.has_key?(key)
|
133
98
|
e = @entries[key]
|
134
99
|
@hits += 1
|
@@ -149,6 +114,30 @@ Hit Rate: #{@hits * 100.0 / (@hits + @misses)}%
|
|
149
114
|
EOT
|
150
115
|
end
|
151
116
|
|
117
|
+
private
|
118
|
+
|
119
|
+
# Store _value_ into the cache using _key_ to tag it. _key_ must be unique
|
120
|
+
# and must be used to load the value from the cache again. You cannot
|
121
|
+
# store nil values!
|
122
|
+
def store(value, key)
|
123
|
+
@stores += 1
|
124
|
+
|
125
|
+
if @entries.size > @highWaterMark
|
126
|
+
while @entries.size > @lowWaterMark
|
127
|
+
# How many entries do we need to delete to get to the low watermark?
|
128
|
+
toDelete = @entries.size - @lowWaterMark
|
129
|
+
@entries.delete_if do |foo, e|
|
130
|
+
# Hit counts age with every cleanup.
|
131
|
+
(e.hits -= 1) < 0 && (toDelete -= 1) >= 0
|
132
|
+
end
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
@entries[key] = DataCacheEntry.new(value)
|
137
|
+
|
138
|
+
value
|
139
|
+
end
|
140
|
+
|
152
141
|
end
|
153
142
|
|
154
143
|
end
|
@@ -314,28 +314,27 @@ class TaskJuggler
|
|
314
314
|
return 0.0 if startIdx >= endIdx || (task && !@duties.include?(task))
|
315
315
|
|
316
316
|
# The unique key we use to address the result in the cache.
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
317
|
+
@dCache.cached(self, :ResourceScenarioEffectiveWork, startIdx, endIdx,
|
318
|
+
task) do
|
319
|
+
# Convert the interval dates to indexes if needed.
|
320
|
+
startIdx = @project.dateToIdx(startIdx) if startIdx.is_a?(TjTime)
|
321
|
+
endIdx = @project.dateToIdx(endIdx) if endIdx.is_a?(TjTime)
|
322
|
+
|
323
|
+
work = 0.0
|
324
|
+
if @property.container?
|
325
|
+
@property.kids.each do |resource|
|
326
|
+
work += resource.getEffectiveWork(@scenarioIdx, startIdx, endIdx,
|
327
|
+
task)
|
328
|
+
end
|
329
|
+
else
|
330
|
+
unless @scoreboard.nil?
|
331
|
+
work = @project.convertToDailyLoad(
|
332
|
+
getAllocatedSlots(startIdx, endIdx, task) *
|
333
|
+
@project['scheduleGranularity']) * @efficiency
|
334
|
+
end
|
330
335
|
end
|
331
|
-
|
332
|
-
return 0.0 if @scoreboard.nil?
|
333
|
-
|
334
|
-
work = @project.convertToDailyLoad(
|
335
|
-
getAllocatedSlots(startIdx, endIdx, task) *
|
336
|
-
@project['scheduleGranularity']) * @efficiency
|
336
|
+
work
|
337
337
|
end
|
338
|
-
@dCache.store(work, key)
|
339
338
|
end
|
340
339
|
|
341
340
|
# Returns the allocated accumulated time of this resource and its children.
|
@@ -872,7 +872,11 @@ class TaskJuggler
|
|
872
872
|
# least one specified end date and a duration criteria or the other end
|
873
873
|
# date.
|
874
874
|
def readyForScheduling?
|
875
|
-
|
875
|
+
# If the tasks has already been scheduled, we still call it 'ready' so
|
876
|
+
# it will be removed from the todo list.
|
877
|
+
return true if @scheduled
|
878
|
+
|
879
|
+
return false if @isRunAway
|
876
880
|
|
877
881
|
if @forward
|
878
882
|
return true if @start && (hasDurationSpec? || @end)
|
@@ -888,6 +892,9 @@ class TaskJuggler
|
|
888
892
|
# or end date has been determined and other tasks may be ready for
|
889
893
|
# scheduling now.
|
890
894
|
def schedule
|
895
|
+
# Check if the task has already been scheduled e. g. by propagateDate().
|
896
|
+
return true if @scheduled
|
897
|
+
|
891
898
|
# Compute the date of the next slot this task wants to have scheduled.
|
892
899
|
# This must either be the first slot ever or it must be directly
|
893
900
|
# adjecent to the previous slot. If this task has not yet been scheduled
|
@@ -1428,8 +1435,7 @@ class TaskJuggler
|
|
1428
1435
|
return 0.0 if @milestone || startIdx >= endIdx ||
|
1429
1436
|
(resource && !@assignedresources.include?(resource))
|
1430
1437
|
|
1431
|
-
|
1432
|
-
@dCache.cached(key) do
|
1438
|
+
@dCache.cached(self, :TaskScenarioAllocatedTime, startIdx, endIdx, resource) do
|
1433
1439
|
allocatedTime = 0.0
|
1434
1440
|
if @property.container?
|
1435
1441
|
@property.kids.each do |task|
|
@@ -1459,8 +1465,7 @@ class TaskJuggler
|
|
1459
1465
|
return 0.0 if @milestone || startIdx >= endIdx ||
|
1460
1466
|
(resource && !@assignedresources.include?(resource))
|
1461
1467
|
|
1462
|
-
|
1463
|
-
@dCache.cached(key) do
|
1468
|
+
@dCache.cached(self, :TaskScenarioEffectiveWork, startIdx, endIdx, resource) do
|
1464
1469
|
workLoad = 0.0
|
1465
1470
|
if @property.container?
|
1466
1471
|
@property.kids.each do |task|
|
@@ -1488,9 +1493,7 @@ class TaskJuggler
|
|
1488
1493
|
# This function is often called recursively for the same parameters. We
|
1489
1494
|
# store the results in the cache to avoid repeated computations of the
|
1490
1495
|
# same results.
|
1491
|
-
|
1492
|
-
@dCache.cached(key) do
|
1493
|
-
workLoad = @dCache.load(key)
|
1496
|
+
@dCache.cached(self, :TaskScenarioCollectTimeOffIntervals, iv, minDuration) do
|
1494
1497
|
il = IntervalList.new
|
1495
1498
|
il << TimeInterval.new(@project['start'], @project['end'])
|
1496
1499
|
if @property.leaf?
|
@@ -14,7 +14,7 @@
|
|
14
14
|
require 'taskjuggler/UTF8String'
|
15
15
|
require 'taskjuggler/AppConfig'
|
16
16
|
|
17
|
-
AppConfig.version = '0.2.
|
17
|
+
AppConfig.version = '0.2.1'
|
18
18
|
AppConfig.packageName = 'taskjuggler'
|
19
19
|
AppConfig.softwareName = 'TaskJuggler III'
|
20
20
|
AppConfig.packageInfo = 'A Project Management Software'
|
data/prj_cfg.rb
CHANGED
@@ -45,6 +45,6 @@ RAKEFILE = 'Rakefile'
|
|
45
45
|
PRJ_FILE = 'prj_cfg.rb'
|
46
46
|
GEM_SPEC_FILE = 'gem_spec.rb'
|
47
47
|
DATA_FILES = FileList["benchmarks/**/*", "examples/**/*", "manual/*", "test/all.rb", "test/MessageChecker.rb", "test/TestSuite/**/*", "spec/**/*", "data/**/*"]
|
48
|
-
DEPENDENCIES = { 'mail' => '2.2.15' }
|
49
|
-
DEVEL_DEPENDENCIES = { 'rcov' => '0.9.9',
|
50
|
-
'rspec' => '2.5.0' }
|
48
|
+
DEPENDENCIES = { 'mail' => '>= 2.2.15' }
|
49
|
+
DEVEL_DEPENDENCIES = { 'rcov' => '>= 0.9.9',
|
50
|
+
'rspec' => '>= 2.5.0' }
|
@@ -0,0 +1,60 @@
|
|
1
|
+
project prj "DST Test" "1.0" 2012-09-01-00:00-+0000 - 2012-10-31-20:00-+0000 {
|
2
|
+
timezone "UTC"
|
3
|
+
scenario plan "Plan Scenario" {
|
4
|
+
active yes
|
5
|
+
}
|
6
|
+
}
|
7
|
+
|
8
|
+
projectids prj
|
9
|
+
|
10
|
+
resource r "R"
|
11
|
+
|
12
|
+
task t "T" {
|
13
|
+
start 2012-09-03-09:00-+0000
|
14
|
+
end 2012-10-12-17:00-+0000
|
15
|
+
scheduling asap
|
16
|
+
scheduled
|
17
|
+
}
|
18
|
+
supplement task t {
|
19
|
+
booking r 2012-09-03-09:00-+0000 + 8.0h,
|
20
|
+
2012-09-04-09:00-+0000 + 8.0h,
|
21
|
+
2012-09-05-09:00-+0000 + 8.0h,
|
22
|
+
2012-09-06-09:00-+0000 + 8.0h,
|
23
|
+
2012-09-07-09:00-+0000 + 8.0h,
|
24
|
+
2012-09-10-09:00-+0000 + 8.0h,
|
25
|
+
2012-09-11-09:00-+0000 + 8.0h,
|
26
|
+
2012-09-12-09:00-+0000 + 8.0h,
|
27
|
+
2012-09-13-09:00-+0000 + 8.0h,
|
28
|
+
2012-09-14-09:00-+0000 + 8.0h,
|
29
|
+
2012-09-17-09:00-+0000 + 8.0h,
|
30
|
+
2012-09-18-09:00-+0000 + 8.0h,
|
31
|
+
2012-09-19-09:00-+0000 + 8.0h,
|
32
|
+
2012-09-20-09:00-+0000 + 8.0h,
|
33
|
+
2012-09-21-09:00-+0000 + 8.0h,
|
34
|
+
2012-09-24-09:00-+0000 + 8.0h,
|
35
|
+
2012-09-25-09:00-+0000 + 8.0h,
|
36
|
+
2012-09-26-09:00-+0000 + 8.0h,
|
37
|
+
2012-09-27-09:00-+0000 + 8.0h,
|
38
|
+
2012-09-28-09:00-+0000 + 8.0h,
|
39
|
+
2012-10-01-09:00-+0000 + 8.0h,
|
40
|
+
2012-10-02-09:00-+0000 + 8.0h,
|
41
|
+
2012-10-03-09:00-+0000 + 8.0h,
|
42
|
+
2012-10-04-09:00-+0000 + 8.0h,
|
43
|
+
2012-10-05-09:00-+0000 + 8.0h,
|
44
|
+
2012-10-08-09:00-+0000 + 8.0h,
|
45
|
+
2012-10-09-09:00-+0000 + 8.0h,
|
46
|
+
2012-10-10-09:00-+0000 + 8.0h,
|
47
|
+
2012-10-11-09:00-+0000 + 8.0h,
|
48
|
+
2012-10-12-09:00-+0000 + 8.0h { overtime 2 }
|
49
|
+
priority 500
|
50
|
+
projectid prj
|
51
|
+
}
|
52
|
+
supplement resource r {
|
53
|
+
workinghours sun off
|
54
|
+
workinghours mon 9:00 - 17:00
|
55
|
+
workinghours tue 9:00 - 17:00
|
56
|
+
workinghours wed 9:00 - 17:00
|
57
|
+
workinghours thu 9:00 - 17:00
|
58
|
+
workinghours fri 9:00 - 17:00
|
59
|
+
workinghours sat off
|
60
|
+
}
|
@@ -0,0 +1,80 @@
|
|
1
|
+
project prj "Release Plan" "1.0" 2010-11-10-00:00-+0000 - 2011-02-09-06:00-+0000 {
|
2
|
+
timezone "UTC"
|
3
|
+
scenario plan "Plan Scenario" {
|
4
|
+
active yes
|
5
|
+
}
|
6
|
+
}
|
7
|
+
|
8
|
+
projectids prj
|
9
|
+
|
10
|
+
|
11
|
+
task merge "Merge Window" {
|
12
|
+
start 2010-11-10-00:00-+0000
|
13
|
+
end 2010-11-24-00:00-+0000
|
14
|
+
scheduling asap
|
15
|
+
scheduled
|
16
|
+
}
|
17
|
+
task b1 "Beta 1" {
|
18
|
+
depends merge
|
19
|
+
start 2010-11-24-00:00-+0000
|
20
|
+
milestone
|
21
|
+
scheduled
|
22
|
+
}
|
23
|
+
task b2 "Beta 2" {
|
24
|
+
depends b1
|
25
|
+
start 2010-12-01-00:00-+0000
|
26
|
+
milestone
|
27
|
+
scheduled
|
28
|
+
}
|
29
|
+
task b3 "Beta 3" {
|
30
|
+
depends b2
|
31
|
+
start 2010-12-08-00:00-+0000
|
32
|
+
milestone
|
33
|
+
scheduled
|
34
|
+
}
|
35
|
+
task b4 "Beta 4" {
|
36
|
+
depends b3
|
37
|
+
start 2010-12-15-00:00-+0000
|
38
|
+
milestone
|
39
|
+
scheduled
|
40
|
+
}
|
41
|
+
task b5 "Beta 5" {
|
42
|
+
depends b4
|
43
|
+
start 2010-12-22-00:00-+0000
|
44
|
+
milestone
|
45
|
+
scheduled
|
46
|
+
}
|
47
|
+
task final "Final Release" {
|
48
|
+
depends b5
|
49
|
+
start 2010-12-29-00:00-+0000
|
50
|
+
milestone
|
51
|
+
scheduled
|
52
|
+
}
|
53
|
+
supplement task merge {
|
54
|
+
priority 500
|
55
|
+
projectid prj
|
56
|
+
}
|
57
|
+
supplement task b1 {
|
58
|
+
priority 500
|
59
|
+
projectid prj
|
60
|
+
}
|
61
|
+
supplement task b2 {
|
62
|
+
priority 500
|
63
|
+
projectid prj
|
64
|
+
}
|
65
|
+
supplement task b3 {
|
66
|
+
priority 500
|
67
|
+
projectid prj
|
68
|
+
}
|
69
|
+
supplement task b4 {
|
70
|
+
priority 500
|
71
|
+
projectid prj
|
72
|
+
}
|
73
|
+
supplement task b5 {
|
74
|
+
priority 500
|
75
|
+
projectid prj
|
76
|
+
}
|
77
|
+
supplement task final {
|
78
|
+
priority 500
|
79
|
+
projectid prj
|
80
|
+
}
|