taskjuggler 3.5.0 → 3.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CHANGELOG +31 -0
- data/COPYING +72 -13
- data/README.rdoc +8 -8
- data/bin/tj3 +1 -1
- data/bin/tj3client +1 -1
- data/bin/tj3d +1 -1
- data/bin/tj3man +1 -1
- data/bin/tj3ss_receiver +1 -1
- data/bin/tj3ss_sender +1 -1
- data/bin/tj3ts_receiver +1 -1
- data/bin/tj3ts_sender +1 -1
- data/bin/tj3ts_summary +1 -1
- data/bin/tj3webd +1 -1
- data/data/tjp.vim +13 -5
- data/examples/Fedora-20/f-20.tjp +15 -15
- data/examples/ProjectTemplate/template.tjp +2 -2
- data/lib/header.tmpl +2 -2
- data/lib/taskjuggler/Account.rb +2 -2
- data/lib/taskjuggler/AccountCredit.rb +2 -2
- data/lib/taskjuggler/AccountScenario.rb +2 -2
- data/lib/taskjuggler/AlertLevelDefinitions.rb +2 -2
- data/lib/taskjuggler/AlgorithmDiff.rb +4 -4
- data/lib/taskjuggler/Allocation.rb +2 -2
- data/lib/taskjuggler/AppConfig.rb +3 -3
- data/lib/taskjuggler/AttributeBase.rb +12 -4
- data/lib/taskjuggler/AttributeDefinition.rb +2 -2
- data/lib/taskjuggler/Attributes.rb +3 -3
- data/lib/taskjuggler/BatchProcessor.rb +2 -2
- data/lib/taskjuggler/Booking.rb +2 -2
- data/lib/taskjuggler/Charge.rb +2 -2
- data/lib/taskjuggler/ChargeSet.rb +2 -2
- data/lib/taskjuggler/DataCache.rb +2 -2
- data/lib/taskjuggler/FileList.rb +2 -2
- data/lib/taskjuggler/HTMLDocument.rb +2 -2
- data/lib/taskjuggler/HTMLElements.rb +3 -3
- data/lib/taskjuggler/ICalendar.rb +2 -2
- data/lib/taskjuggler/Interval.rb +2 -2
- data/lib/taskjuggler/IntervalList.rb +2 -2
- data/lib/taskjuggler/Journal.rb +2 -2
- data/lib/taskjuggler/KateSyntax.rb +2 -2
- data/lib/taskjuggler/KeywordArray.rb +2 -2
- data/lib/taskjuggler/KeywordDocumentation.rb +55 -33
- data/lib/taskjuggler/LeaveList.rb +4 -3
- data/lib/taskjuggler/Limits.rb +2 -2
- data/lib/taskjuggler/Log.rb +2 -2
- data/lib/taskjuggler/LogicalExpression.rb +2 -2
- data/lib/taskjuggler/LogicalFunction.rb +15 -3
- data/lib/taskjuggler/LogicalOperation.rb +15 -10
- data/lib/taskjuggler/MessageHandler.rb +2 -2
- data/lib/taskjuggler/PTNProxy.rb +2 -2
- data/lib/taskjuggler/Painter.rb +2 -2
- data/lib/taskjuggler/Project.rb +8 -2
- data/lib/taskjuggler/ProjectFileParser.rb +3 -3
- data/lib/taskjuggler/ProjectFileScanner.rb +2 -2
- data/lib/taskjuggler/PropertyList.rb +8 -15
- data/lib/taskjuggler/PropertySet.rb +6 -2
- data/lib/taskjuggler/PropertyTreeNode.rb +20 -2
- data/lib/taskjuggler/Query.rb +9 -4
- data/lib/taskjuggler/RealFormat.rb +2 -2
- data/lib/taskjuggler/Resource.rb +2 -2
- data/lib/taskjuggler/ResourceScenario.rb +45 -33
- data/lib/taskjuggler/RichText.rb +2 -2
- data/lib/taskjuggler/RichText/Document.rb +2 -2
- data/lib/taskjuggler/RichText/Element.rb +2 -2
- data/lib/taskjuggler/RichText/FunctionExample.rb +2 -2
- data/lib/taskjuggler/RichText/FunctionHandler.rb +2 -2
- data/lib/taskjuggler/RichText/Parser.rb +2 -2
- data/lib/taskjuggler/RichText/RTFHandlers.rb +2 -2
- data/lib/taskjuggler/RichText/RTFNavigator.rb +2 -2
- data/lib/taskjuggler/RichText/RTFQuery.rb +2 -2
- data/lib/taskjuggler/RichText/RTFReport.rb +2 -2
- data/lib/taskjuggler/RichText/RTFReportLink.rb +2 -2
- data/lib/taskjuggler/RichText/RTFWithQuerySupport.rb +2 -2
- data/lib/taskjuggler/RichText/Scanner.rb +2 -2
- data/lib/taskjuggler/RichText/Snip.rb +2 -2
- data/lib/taskjuggler/RichText/SyntaxRules.rb +2 -2
- data/lib/taskjuggler/RichText/TOCEntry.rb +2 -2
- data/lib/taskjuggler/RichText/TableOfContents.rb +2 -2
- data/lib/taskjuggler/RuntimeConfig.rb +4 -4
- data/lib/taskjuggler/Scenario.rb +2 -2
- data/lib/taskjuggler/ScenarioData.rb +2 -2
- data/lib/taskjuggler/Scoreboard.rb +2 -2
- data/lib/taskjuggler/SheetHandlerBase.rb +3 -3
- data/lib/taskjuggler/SheetReceiver.rb +2 -2
- data/lib/taskjuggler/SheetSender.rb +2 -2
- data/lib/taskjuggler/Shift.rb +2 -2
- data/lib/taskjuggler/ShiftAssignments.rb +2 -2
- data/lib/taskjuggler/ShiftScenario.rb +2 -2
- data/lib/taskjuggler/SimpleQueryExpander.rb +2 -2
- data/lib/taskjuggler/StatusSheetReceiver.rb +2 -2
- data/lib/taskjuggler/StatusSheetSender.rb +4 -4
- data/lib/taskjuggler/StdIoWrapper.rb +2 -2
- data/lib/taskjuggler/SyntaxReference.rb +3 -3
- data/lib/taskjuggler/TableColumnDefinition.rb +2 -2
- data/lib/taskjuggler/TableColumnSorter.rb +2 -2
- data/lib/taskjuggler/Task.rb +2 -2
- data/lib/taskjuggler/TaskDependency.rb +2 -2
- data/lib/taskjuggler/TaskJuggler.rb +3 -4
- data/lib/taskjuggler/TaskScenario.rb +138 -60
- data/lib/taskjuggler/TernarySearchTree.rb +2 -2
- data/lib/taskjuggler/TextFormatter.rb +2 -2
- data/lib/taskjuggler/TextParser.rb +2 -2
- data/lib/taskjuggler/TextParser/MacroTable.rb +2 -2
- data/lib/taskjuggler/TextParser/Pattern.rb +2 -2
- data/lib/taskjuggler/TextParser/Rule.rb +2 -2
- data/lib/taskjuggler/TextParser/Scanner.rb +3 -3
- data/lib/taskjuggler/TextParser/SourceFileInfo.rb +2 -2
- data/lib/taskjuggler/TextParser/StackElement.rb +2 -2
- data/lib/taskjuggler/TextParser/State.rb +2 -2
- data/lib/taskjuggler/TextParser/TokenDoc.rb +2 -2
- data/lib/taskjuggler/TimeSheetReceiver.rb +2 -2
- data/lib/taskjuggler/TimeSheetSender.rb +2 -2
- data/lib/taskjuggler/TimeSheetSummary.rb +3 -3
- data/lib/taskjuggler/TimeSheets.rb +2 -2
- data/lib/taskjuggler/Tj3AppBase.rb +2 -2
- data/lib/taskjuggler/Tj3Config.rb +5 -5
- data/lib/taskjuggler/Tj3SheetAppBase.rb +2 -2
- data/lib/taskjuggler/TjException.rb +2 -2
- data/lib/taskjuggler/TjTime.rb +2 -2
- data/lib/taskjuggler/TjpExample.rb +2 -2
- data/lib/taskjuggler/TjpSyntaxRules.rb +206 -52
- data/lib/taskjuggler/URLParameter.rb +2 -2
- data/lib/taskjuggler/UTF8String.rb +2 -2
- data/lib/taskjuggler/UserManual.rb +3 -2
- data/lib/taskjuggler/VimSyntax.rb +4 -4
- data/lib/taskjuggler/WorkingHours.rb +2 -2
- data/lib/taskjuggler/XMLDocument.rb +2 -2
- data/lib/taskjuggler/XMLElement.rb +2 -2
- data/lib/taskjuggler/apps/Tj3.rb +2 -2
- data/lib/taskjuggler/apps/Tj3Client.rb +2 -2
- data/lib/taskjuggler/apps/Tj3Daemon.rb +7 -3
- data/lib/taskjuggler/apps/Tj3Man.rb +3 -3
- data/lib/taskjuggler/apps/Tj3SsReceiver.rb +2 -2
- data/lib/taskjuggler/apps/Tj3SsSender.rb +2 -2
- data/lib/taskjuggler/apps/Tj3TsReceiver.rb +2 -2
- data/lib/taskjuggler/apps/Tj3TsSender.rb +2 -2
- data/lib/taskjuggler/apps/Tj3TsSummary.rb +2 -2
- data/lib/taskjuggler/apps/Tj3WebD.rb +7 -3
- data/lib/taskjuggler/daemon/Daemon.rb +2 -2
- data/lib/taskjuggler/daemon/DaemonConnector.rb +2 -2
- data/lib/taskjuggler/daemon/ProcessIntercom.rb +4 -3
- data/lib/taskjuggler/daemon/ProjectBroker.rb +2 -2
- data/lib/taskjuggler/daemon/ProjectServer.rb +2 -2
- data/lib/taskjuggler/daemon/ReportServer.rb +2 -2
- data/lib/taskjuggler/daemon/ReportServlet.rb +22 -11
- data/lib/taskjuggler/daemon/WebServer.rb +2 -2
- data/lib/taskjuggler/daemon/WelcomePage.rb +2 -2
- data/lib/taskjuggler/deep_copy.rb +2 -2
- data/lib/taskjuggler/reports/AccountListRE.rb +2 -2
- data/lib/taskjuggler/reports/CSVFile.rb +2 -2
- data/lib/taskjuggler/reports/ChartPlotter.rb +2 -2
- data/lib/taskjuggler/reports/CollisionDetector.rb +2 -2
- data/lib/taskjuggler/reports/ColumnTable.rb +2 -2
- data/lib/taskjuggler/reports/ExportRE.rb +2 -2
- data/lib/taskjuggler/reports/GanttChart.rb +2 -2
- data/lib/taskjuggler/reports/GanttContainer.rb +2 -2
- data/lib/taskjuggler/reports/GanttHeader.rb +2 -2
- data/lib/taskjuggler/reports/GanttHeaderScaleItem.rb +2 -2
- data/lib/taskjuggler/reports/GanttLine.rb +8 -5
- data/lib/taskjuggler/reports/GanttLoadStack.rb +2 -2
- data/lib/taskjuggler/reports/GanttMilestone.rb +2 -2
- data/lib/taskjuggler/reports/GanttRouter.rb +2 -2
- data/lib/taskjuggler/reports/GanttTaskBar.rb +2 -2
- data/lib/taskjuggler/reports/HTMLGraphics.rb +2 -2
- data/lib/taskjuggler/reports/ICalReport.rb +2 -2
- data/lib/taskjuggler/reports/MspXmlRE.rb +6 -3
- data/lib/taskjuggler/reports/Navigator.rb +2 -2
- data/lib/taskjuggler/reports/NikuReport.rb +2 -2
- data/lib/taskjuggler/reports/Report.rb +6 -6
- data/lib/taskjuggler/reports/ReportBase.rb +2 -2
- data/lib/taskjuggler/reports/ReportContext.rb +2 -2
- data/lib/taskjuggler/reports/ReportTable.rb +2 -2
- data/lib/taskjuggler/reports/ReportTableCell.rb +2 -2
- data/lib/taskjuggler/reports/ReportTableColumn.rb +2 -2
- data/lib/taskjuggler/reports/ReportTableLegend.rb +2 -2
- data/lib/taskjuggler/reports/ReportTableLine.rb +2 -2
- data/lib/taskjuggler/reports/ResourceListRE.rb +2 -2
- data/lib/taskjuggler/reports/StatusSheetReport.rb +2 -2
- data/lib/taskjuggler/reports/TableReport.rb +22 -19
- data/lib/taskjuggler/reports/TableReportColumn.rb +2 -2
- data/lib/taskjuggler/reports/TagFile.rb +2 -2
- data/lib/taskjuggler/reports/TaskListRE.rb +2 -2
- data/lib/taskjuggler/reports/TextReport.rb +2 -2
- data/lib/taskjuggler/reports/TimeSheetReport.rb +2 -2
- data/lib/taskjuggler/reports/TjpExportRE.rb +2 -2
- data/lib/taskjuggler/reports/TraceReport.rb +3 -3
- data/lib/tj3.rb +2 -2
- data/lib/tj3client.rb +2 -2
- data/lib/tj3d.rb +2 -2
- data/lib/tj3man.rb +2 -2
- data/lib/tj3ss_receiver.rb +2 -2
- data/lib/tj3ss_sender.rb +2 -2
- data/lib/tj3ts_receiver.rb +2 -2
- data/lib/tj3ts_sender.rb +2 -2
- data/lib/tj3ts_summary.rb +2 -2
- data/lib/tj3webd.rb +2 -2
- data/manual/Day_To_Day_Juggling +7 -7
- data/manual/Getting_Started +2 -2
- data/manual/Installation +4 -4
- data/manual/Intro +1 -1
- data/manual/List_Attributes +45 -0
- data/manual/Rich_Text_Attributes +5 -5
- data/manual/Software +1 -1
- data/manual/TaskJuggler_2x_Migration +2 -2
- data/manual/html/Day_To_Day_Juggling.html +9 -9
- data/manual/html/Getting_Started.html +3 -3
- data/manual/html/How_To_Contribute.html +2 -2
- data/manual/html/Installation.html +6 -6
- data/manual/html/Intro.html +3 -3
- data/manual/html/List_Attributes.html +76 -0
- data/manual/html/Reporting_Bugs.html +2 -2
- data/manual/html/Rich_Text_Attributes.html +9 -9
- data/manual/html/Software.html +5 -5
- data/manual/html/TaskJuggler_2x_Migration.html +4 -4
- data/manual/html/TaskJuggler_Internals.html +2 -2
- data/manual/html/The_TaskJuggler_Syntax.html +2 -2
- data/manual/html/Tutorial.html +2 -2
- data/manual/html/account.html +5 -3
- data/manual/html/account.task.html +5 -3
- data/manual/html/accountprefix.html +5 -3
- data/manual/html/accountreport.html +5 -3
- data/manual/html/accountroot.html +5 -3
- data/manual/html/active.html +5 -3
- data/manual/html/adopt.task.html +5 -3
- data/manual/html/aggregate.html +5 -3
- data/manual/html/alert.html +5 -3
- data/manual/html/alertlevels.html +5 -3
- data/manual/html/allocate.html +6 -3
- data/manual/html/alphabet.html +1 -1
- data/manual/html/alternative.html +5 -3
- data/manual/html/author.html +5 -3
- data/manual/html/auxdir.html +5 -3
- data/manual/html/auxdir.report.html +5 -3
- data/manual/html/balance.html +5 -3
- data/manual/html/booking.resource.html +6 -4
- data/manual/html/booking.task.html +7 -4
- data/manual/html/caption.html +5 -3
- data/manual/html/cellcolor.column.html +5 -3
- data/manual/html/celltext.column.html +5 -3
- data/manual/html/center.html +5 -3
- data/manual/html/charge.html +6 -3
- data/manual/html/chargeset.html +6 -3
- data/manual/html/columnid.html +24 -15
- data/manual/html/columns.html +6 -3
- data/manual/html/complete.html +5 -3
- data/manual/html/copyright.html +5 -3
- data/manual/html/credits.html +6 -3
- data/manual/html/currency.html +5 -3
- data/manual/html/currencyformat.html +5 -3
- data/manual/html/dailymax.html +5 -3
- data/manual/html/dailymin.html +5 -3
- data/manual/html/dailyworkinghours.html +5 -3
- data/manual/html/date.extend.html +5 -3
- data/manual/html/date.html +5 -3
- data/manual/html/definitions.html +5 -3
- data/manual/html/depends.html +6 -3
- data/manual/html/details.html +5 -3
- data/manual/html/disabled.html +5 -3
- data/manual/html/duration.html +5 -3
- data/manual/html/efficiency.html +5 -3
- data/manual/html/effort.html +7 -5
- data/manual/html/effortdone.html +105 -0
- data/manual/html/effortleft.html +105 -0
- data/manual/html/email.html +7 -5
- data/manual/html/enabled.html +5 -3
- data/manual/html/end.column.html +5 -3
- data/manual/html/end.html +5 -3
- data/manual/html/end.limit.html +5 -3
- data/manual/html/end.report.html +5 -3
- data/manual/html/end.timesheet.html +5 -3
- data/manual/html/endcredit.html +5 -3
- data/manual/html/epilog.html +5 -3
- data/manual/html/export.html +5 -3
- data/manual/html/extend.html +5 -3
- data/manual/html/fail.html +6 -3
- data/manual/html/fdl.html +2 -2
- data/manual/html/flags.account.html +6 -3
- data/manual/html/flags.html +5 -3
- data/manual/html/flags.journalentry.html +5 -3
- data/manual/html/flags.report.html +6 -3
- data/manual/html/flags.resource.html +6 -3
- data/manual/html/flags.statussheet.html +5 -3
- data/manual/html/flags.task.html +6 -3
- data/manual/html/flags.timesheet.html +5 -3
- data/manual/html/fontcolor.column.html +5 -3
- data/manual/html/footer.html +5 -3
- data/manual/html/formats.export.html +6 -4
- data/manual/html/formats.html +6 -3
- data/manual/html/functions.html +5 -3
- data/manual/html/gapduration.html +6 -4
- data/manual/html/gaplength.html +6 -4
- data/manual/html/halign.center.html +5 -3
- data/manual/html/halign.column.html +5 -3
- data/manual/html/halign.left.html +5 -3
- data/manual/html/halign.right.html +5 -3
- data/manual/html/hasalert.html +5 -3
- data/manual/html/header.html +5 -3
- data/manual/html/headline.html +5 -3
- data/manual/html/height.html +5 -3
- data/manual/html/hideaccount.html +5 -3
- data/manual/html/hidejournalentry.html +5 -3
- data/manual/html/hidereport.html +5 -3
- data/manual/html/hideresource.html +5 -3
- data/manual/html/hidetask.html +5 -3
- data/manual/html/icalreport.html +5 -3
- data/manual/html/include.macro.html +5 -3
- data/manual/html/include.project.html +5 -3
- data/manual/html/include.properties.html +5 -3
- data/manual/html/index.html +1 -1
- data/manual/html/inherit.extend.html +5 -3
- data/manual/html/interval1.html +5 -3
- data/manual/html/interval2.html +5 -3
- data/manual/html/interval3.html +5 -3
- data/manual/html/interval4.html +5 -3
- data/manual/html/isactive.html +5 -3
- data/manual/html/ischildof.html +5 -3
- data/manual/html/isdependencyof.html +5 -3
- data/manual/html/isdutyof.html +5 -3
- data/manual/html/isfeatureof.html +5 -3
- data/manual/html/isleaf.html +5 -3
- data/manual/html/ismilestone.html +5 -3
- data/manual/html/isongoing.html +5 -3
- data/manual/html/isresource.html +5 -3
- data/manual/html/isresponsibilityof.html +5 -3
- data/manual/html/istask.html +5 -3
- data/manual/html/isvalid.html +5 -3
- data/manual/html/journalattributes.html +5 -3
- data/manual/html/journalentry.html +5 -3
- data/manual/html/journalmode.html +5 -3
- data/manual/html/leaveallowance.html +5 -3
- data/manual/html/leaves.html +13 -6
- data/manual/html/left.html +5 -3
- data/manual/html/length.html +5 -3
- data/manual/html/limits.allocate.html +5 -3
- data/manual/html/limits.html +5 -3
- data/manual/html/limits.resource.html +5 -3
- data/manual/html/limits.task.html +5 -3
- data/manual/html/listitem.column.html +5 -3
- data/manual/html/listtype.column.html +5 -3
- data/manual/html/loadunit.html +5 -3
- data/manual/html/logicalexpression.html +6 -4
- data/manual/html/logicalflagexpression.html +5 -3
- data/manual/html/macro.html +5 -3
- data/manual/html/managers.html +6 -3
- data/manual/html/mandatory.html +5 -3
- data/manual/html/maxend.html +5 -3
- data/manual/html/maximum.html +5 -3
- data/manual/html/maxstart.html +5 -3
- data/manual/html/milestone.html +5 -3
- data/manual/html/minend.html +5 -3
- data/manual/html/minimum.html +5 -3
- data/manual/html/minstart.html +5 -3
- data/manual/html/monthlymax.html +5 -3
- data/manual/html/monthlymin.html +5 -3
- data/manual/html/navbar.html +7 -1
- data/manual/html/navigator.html +5 -3
- data/manual/html/newtask.html +5 -3
- data/manual/html/nikureport.html +5 -3
- data/manual/html/note.task.html +5 -3
- data/manual/html/now.html +5 -3
- data/manual/html/number.extend.html +5 -3
- data/manual/html/numberformat.html +5 -3
- data/manual/html/onend.html +5 -3
- data/manual/html/onstart.html +5 -3
- data/manual/html/opennodes.html +5 -3
- data/manual/html/outputdir.html +5 -3
- data/manual/html/overtime.booking.html +5 -3
- data/manual/html/period.column.html +5 -3
- data/manual/html/period.limit.html +5 -3
- data/manual/html/period.report.html +5 -3
- data/manual/html/period.task.html +5 -3
- data/manual/html/persistent.html +5 -3
- data/manual/html/precedes.html +6 -3
- data/manual/html/priority.html +5 -3
- data/manual/html/priority.timesheet.html +5 -3
- data/manual/html/project.html +5 -3
- data/manual/html/projectid.html +5 -3
- data/manual/html/projectid.task.html +5 -3
- data/manual/html/projectids.html +5 -3
- data/manual/html/projection.html +5 -3
- data/manual/html/prolog.html +5 -3
- data/manual/html/properties.html +5 -3
- data/manual/html/purge.html +5 -3
- data/manual/html/rate.html +5 -3
- data/manual/html/rate.resource.html +5 -3
- data/manual/html/rawhtmlhead.html +5 -3
- data/manual/html/reference.extend.html +5 -3
- data/manual/html/remaining.html +5 -3
- data/manual/html/replace.html +5 -3
- data/manual/html/reportprefix.html +5 -3
- data/manual/html/resource.html +5 -3
- data/manual/html/resourceattributes.html +5 -3
- data/manual/html/resourceprefix.html +5 -3
- data/manual/html/resourcereport.html +5 -3
- data/manual/html/resourceroot.html +5 -3
- data/manual/html/resources.limit.html +5 -3
- data/manual/html/responsible.html +6 -3
- data/manual/html/richtext.extend.html +5 -3
- data/manual/html/right.html +5 -3
- data/manual/html/rollupaccount.html +5 -3
- data/manual/html/rollupresource.html +5 -3
- data/manual/html/rolluptask.html +5 -3
- data/manual/html/scale.column.html +5 -3
- data/manual/html/scenario.html +5 -3
- data/manual/html/scenario.ical.html +5 -3
- data/manual/html/scenarios.export.html +5 -3
- data/manual/html/scenarios.html +6 -3
- data/manual/html/scenariospecific.extend.html +5 -3
- data/manual/html/scheduled.html +6 -4
- data/manual/html/scheduling.html +7 -5
- data/manual/html/schedulingmode.html +74 -0
- data/manual/html/select.html +7 -5
- data/manual/html/selfcontained.html +5 -3
- data/manual/html/shift.allocate.html +5 -3
- data/manual/html/shift.html +5 -3
- data/manual/html/shift.resource.html +5 -3
- data/manual/html/shift.task.html +5 -3
- data/manual/html/shift.timesheet.html +5 -3
- data/manual/html/shifts.allocate.html +5 -3
- data/manual/html/shifts.resource.html +5 -3
- data/manual/html/shifts.task.html +6 -4
- data/manual/html/shorttimeformat.html +5 -3
- data/manual/html/sloppy.booking.html +5 -3
- data/manual/html/sloppy.projection.html +5 -3
- data/manual/html/sortaccounts.html +6 -4
- data/manual/html/sortjournalentries.html +5 -3
- data/manual/html/sortresources.html +6 -4
- data/manual/html/sorttasks.html +6 -4
- data/manual/html/start.column.html +5 -3
- data/manual/html/start.html +5 -3
- data/manual/html/start.limit.html +5 -3
- data/manual/html/start.report.html +5 -3
- data/manual/html/startcredit.html +5 -3
- data/manual/html/status.statussheet.html +5 -3
- data/manual/html/status.timesheet.html +5 -3
- data/manual/html/statussheet.html +5 -3
- data/manual/html/statussheetreport.html +5 -3
- data/manual/html/strict.projection.html +5 -3
- data/manual/html/summary.html +5 -3
- data/manual/html/supplement.html +5 -3
- data/manual/html/supplement.resource.html +5 -3
- data/manual/html/supplement.task.html +24 -4
- data/manual/html/tagfile.html +5 -3
- data/manual/html/task.html +24 -4
- data/manual/html/task.statussheet.html +5 -3
- data/manual/html/task.timesheet.html +5 -3
- data/manual/html/taskattributes.html +5 -3
- data/manual/html/taskprefix.html +5 -3
- data/manual/html/taskreport.html +5 -3
- data/manual/html/taskroot.export.html +5 -3
- data/manual/html/taskroot.html +5 -3
- data/manual/html/text.extend.html +5 -3
- data/manual/html/textreport.html +5 -3
- data/manual/html/timeformat.html +5 -3
- data/manual/html/timeformat1.html +5 -3
- data/manual/html/timeformat2.html +5 -3
- data/manual/html/timeoff.nikureport.html +5 -3
- data/manual/html/timesheet.html +5 -3
- data/manual/html/timesheetreport.html +5 -3
- data/manual/html/timezone.export.html +5 -3
- data/manual/html/timezone.html +5 -3
- data/manual/html/timezone.report.html +5 -3
- data/manual/html/timezone.shift.html +5 -3
- data/manual/html/timingresolution.html +5 -3
- data/manual/html/title.column.html +5 -3
- data/manual/html/title.html +5 -3
- data/manual/html/toc.html +251 -223
- data/manual/html/tooltip.column.html +5 -3
- data/manual/html/tracereport.html +6 -3
- data/manual/html/trackingscenario.html +5 -3
- data/manual/html/treelevel.html +5 -3
- data/manual/html/vacation.html +5 -3
- data/manual/html/vacation.resource.html +5 -3
- data/manual/html/vacation.shift.html +5 -3
- data/manual/html/warn.html +6 -3
- data/manual/html/weeklymax.html +5 -3
- data/manual/html/weeklymin.html +5 -3
- data/manual/html/weekstartsmonday.html +5 -3
- data/manual/html/weekstartssunday.html +5 -3
- data/manual/html/width.column.html +5 -3
- data/manual/html/width.html +5 -3
- data/manual/html/work.html +5 -3
- data/manual/html/workinghours.project.html +5 -3
- data/manual/html/workinghours.resource.html +5 -3
- data/manual/html/workinghours.shift.html +5 -3
- data/manual/html/yearlyworkingdays.html +5 -3
- data/spec/Color_spec.rb +6 -2
- data/spec/ICalendar_spec.rb +6 -2
- data/spec/IntervalList_spec.rb +7 -3
- data/spec/ProjectBroker_spec.rb +6 -2
- data/spec/StatusSheets_spec.rb +6 -2
- data/spec/TableColumnSorter_spec.rb +6 -2
- data/spec/TernarySearchTree_spec.rb +8 -4
- data/spec/TimeSheets_spec.rb +6 -2
- data/spec/Tj3Daemon_spec.rb +6 -2
- data/spec/Tj3_spec.rb +6 -2
- data/spec/TraceReport_spec.rb +2 -2
- data/spec/support/DaemonControl.rb +2 -2
- data/spec/support/spec_helper.rb +2 -2
- data/taskjuggler.gemspec +1 -1
- data/test/MessageChecker.rb +2 -2
- data/test/ReferenceGenerator.rb +2 -2
- data/test/TestSuite/CSV-Reports/headcount.tjp +1 -0
- data/test/TestSuite/ReportGenerator/Correct/JournalMode.tjp +1 -1
- data/test/TestSuite/ReportGenerator/Correct/refs/JournalMode-1.csv +9 -9
- data/test/TestSuite/ReportGenerator/Correct/refs/JournalMode-2.csv +46 -48
- data/test/TestSuite/Scheduler/Correct/Depends.tjp +17 -0
- data/test/TestSuite/Scheduler/Correct/Precedes.tjp +17 -0
- data/test/TestSuite/Scheduler/Correct/Scheduled.tjp +11 -0
- data/test/TestSuite/Scheduler/Correct/SchedulingMode.tjp +45 -0
- data/test/TestSuite/{Syntax → Scheduler}/Errors/not_scheduled.tjp +1 -1
- data/test/TestSuite/Syntax/Correct/Booking.tjp +1 -1
- data/test/TestSuite/Syntax/Correct/ListAttributes.tjp +48 -0
- data/test/TestSuite/Syntax/Correct/LogicalExpression.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/working_duration_too_small.tjp +6 -0
- data/test/TjpGen.rb +2 -2
- data/test/all.rb +2 -2
- data/test/test_AlgorithmDiff.rb +2 -2
- data/test/test_BatchProcessor.rb +2 -2
- data/test/test_CSV-Reports.rb +2 -2
- data/test/test_CSVFile.rb +2 -2
- data/test/test_CollisionDetector.rb +2 -2
- data/test/test_Export-Reports.rb +2 -2
- data/test/test_Journal.rb +2 -2
- data/test/test_Limits.rb +2 -2
- data/test/test_LogicalExpression.rb +2 -2
- data/test/test_MacroTable.rb +2 -2
- data/test/test_Project.rb +2 -2
- data/test/test_ProjectFileScanner.rb +2 -2
- data/test/test_PropertySet.rb +2 -2
- data/test/test_Query.rb +2 -2
- data/test/test_RealFormat.rb +2 -2
- data/test/test_ReportGenerator.rb +2 -2
- data/test/test_RichText.rb +2 -2
- data/test/test_Scheduler.rb +2 -2
- data/test/test_ShiftAssignments.rb +2 -2
- data/test/test_SimpleQueryExpander.rb +2 -2
- data/test/test_Syntax.rb +2 -2
- data/test/test_TextFormatter.rb +2 -2
- data/test/test_TjTime.rb +2 -2
- data/test/test_TjpExample.rb +2 -2
- data/test/test_URLParameter.rb +2 -2
- data/test/test_UTF8String.rb +2 -2
- data/test/test_WorkingHours.rb +2 -2
- data/test/test_deep_copy.rb +2 -2
- metadata +346 -350
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = LeaveList.rb -- The TaskJuggler III Project Management Software
|
5
5
|
#
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
7
|
-
# by Chris Schlaeger <
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
|
7
|
+
# by Chris Schlaeger <cs@taskjuggler.org>
|
8
8
|
#
|
9
9
|
# This program is free software; you can redistribute it and/or modify
|
10
10
|
# it under the terms of version 2 of the GNU General Public License as
|
@@ -28,7 +28,8 @@ class TaskJuggler
|
|
28
28
|
:special => 3,
|
29
29
|
:sick => 4,
|
30
30
|
:unpaid => 5,
|
31
|
-
:holiday => 6
|
31
|
+
:holiday => 6,
|
32
|
+
:unemployed => 7
|
32
33
|
}
|
33
34
|
|
34
35
|
# Create a new Leave object. _interval_ should be an Interval describing
|
data/lib/taskjuggler/Limits.rb
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = Limits.rb -- The TaskJuggler III Project Management Software
|
5
5
|
#
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
7
|
-
# by Chris Schlaeger <
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
|
7
|
+
# by Chris Schlaeger <cs@taskjuggler.org>
|
8
8
|
#
|
9
9
|
# This program is free software; you can redistribute it and/or modify
|
10
10
|
# it under the terms of version 2 of the GNU General Public License as
|
data/lib/taskjuggler/Log.rb
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = Log.rb -- The TaskJuggler III Project Management Software
|
5
5
|
#
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
7
|
-
# by Chris Schlaeger <
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
|
7
|
+
# by Chris Schlaeger <cs@taskjuggler.org>
|
8
8
|
#
|
9
9
|
# This program is free software; you can redistribute it and/or modify
|
10
10
|
# it under the terms of version 2 of the GNU General Public License as
|
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = LogicalExpression.rb -- The TaskJuggler III Project Management Software
|
5
5
|
#
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
7
|
-
# by Chris Schlaeger <
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
|
7
|
+
# by Chris Schlaeger <cs@taskjuggler.org>
|
8
8
|
#
|
9
9
|
# This program is free software; you can redistribute it and/or modify
|
10
10
|
# it under the terms of version 2 of the GNU General Public License as
|
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = LogicalFunction.rb -- The TaskJuggler III Project Management Software
|
5
5
|
#
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
7
|
-
# by Chris Schlaeger <
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
|
7
|
+
# by Chris Schlaeger <cs@taskjuggler.org>
|
8
8
|
#
|
9
9
|
# This program is free software; you can redistribute it and/or modify
|
10
10
|
# it under the terms of version 2 of the GNU General Public License as
|
@@ -250,7 +250,19 @@ class TaskJuggler
|
|
250
250
|
expr.error("Unknown attribute '#{attr}' used for function " +
|
251
251
|
"isvalid()")
|
252
252
|
end
|
253
|
-
|
253
|
+
if scenario
|
254
|
+
unless property.attributeDefinition(attr).scenarioSpecific
|
255
|
+
expr.error("Attribute '#{attr}' of property '#{property.fullId}' " +
|
256
|
+
"is not scenario specific. Don't provide a scenario ID!")
|
257
|
+
end
|
258
|
+
!property[attr, scenarioIdx].nil?
|
259
|
+
else
|
260
|
+
if property.attributeDefinition(attr).scenarioSpecific
|
261
|
+
expr.error("Attribute '#{attr}' of property '#{property.fullId}' " +
|
262
|
+
"is scenario specific. Please provide a scenario ID!")
|
263
|
+
end
|
264
|
+
!property.get(attr).nil?
|
265
|
+
end
|
254
266
|
end
|
255
267
|
|
256
268
|
def treelevel(expr, args)
|
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = LogicalOperation.rb -- The TaskJuggler III Project Management Software
|
5
5
|
#
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
7
|
-
# by Chris Schlaeger <
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
|
7
|
+
# by Chris Schlaeger <cs@taskjuggler.org>
|
8
8
|
#
|
9
9
|
# This program is free software; you can redistribute it and/or modify
|
10
10
|
# it under the terms of version 2 of the GNU General Public License as
|
@@ -195,12 +195,17 @@ class TaskJuggler
|
|
195
195
|
query.scenarioIdx = @scenario.sequenceNo - 1
|
196
196
|
query.attributeId = @operand1
|
197
197
|
query.process
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
198
|
+
if query.ok
|
199
|
+
# The logical expressions are mostly about comparing values. So we use
|
200
|
+
# the sortableResult of the Query. This creates some challenges for load
|
201
|
+
# values, as the user is not accustomed to the internal representation
|
202
|
+
# of those.
|
203
|
+
# Convert nil results into empty Strings if necessary
|
204
|
+
query.result || ''
|
205
|
+
else
|
206
|
+
expr.error(query.errorMessage)
|
207
|
+
query.errorMessage
|
208
|
+
end
|
204
209
|
end
|
205
210
|
|
206
211
|
# Dumps the LogicalOperation as String. If _query_ is nil, the variable
|
@@ -241,9 +246,9 @@ class TaskJuggler
|
|
241
246
|
def to_s(query)
|
242
247
|
if query
|
243
248
|
if query.is_a?(Query)
|
244
|
-
query.property['flags', 0].include(@operand1) ? 'true' : 'false'
|
249
|
+
query.property['flags', 0].include?(@operand1) ? 'true' : 'false'
|
245
250
|
else
|
246
|
-
query.flags.include(@operand1) ? 'true' : 'false'
|
251
|
+
query.flags.include?(@operand1) ? 'true' : 'false'
|
247
252
|
end
|
248
253
|
else
|
249
254
|
@operand1
|
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = MessageHandler.rb -- The TaskJuggler III Project Management Software
|
5
5
|
#
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
7
|
-
# by Chris Schlaeger <
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
|
7
|
+
# by Chris Schlaeger <cs@taskjuggler.org>
|
8
8
|
#
|
9
9
|
# This program is free software; you can redistribute it and/or modify
|
10
10
|
# it under the terms of version 2 of the GNU General Public License as
|
data/lib/taskjuggler/PTNProxy.rb
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = PTNProxy.rb -- The TaskJuggler III Project Management Software
|
5
5
|
#
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
7
|
-
# by Chris Schlaeger <
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
|
7
|
+
# by Chris Schlaeger <cs@taskjuggler.org>
|
8
8
|
#
|
9
9
|
# This program is free software; you can redistribute it and/or modify
|
10
10
|
# it under the terms of version 2 of the GNU General Public License as
|
data/lib/taskjuggler/Painter.rb
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = Painter.rb -- The TaskJuggler III Project Management Software
|
5
5
|
#
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
7
|
-
# by Chris Schlaeger <
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
|
7
|
+
# by Chris Schlaeger <cs@taskjuggler.org>
|
8
8
|
#
|
9
9
|
# This program is free software; you can redistribute it and/or modify
|
10
10
|
# it under the terms of version 2 of the GNU General Public License as
|
data/lib/taskjuggler/Project.rb
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = Project.rb -- The TaskJuggler III Project Management Software
|
5
5
|
#
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
7
|
-
# by Chris Schlaeger <
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
|
7
|
+
# by Chris Schlaeger <cs@taskjuggler.org>
|
8
8
|
#
|
9
9
|
# This program is free software; you can redistribute it and/or modify
|
10
10
|
# it under the terms of version 2 of the GNU General Public License as
|
@@ -264,6 +264,10 @@ class TaskJuggler
|
|
264
264
|
false, false, true, 0 ],
|
265
265
|
[ 'effort', 'Effort', DurationAttribute,
|
266
266
|
false, false, true, 0 ],
|
267
|
+
[ 'effortdone', 'Completed Effort', FixnumAttribute,
|
268
|
+
false, false, true, nil ],
|
269
|
+
[ 'effortleft', 'Remaining Effort', FixnumAttribute,
|
270
|
+
false, false, true, nil ],
|
267
271
|
[ 'end', 'End', DateAttribute,
|
268
272
|
false, false, true, nil ],
|
269
273
|
[ 'endpreds', 'End Preds.', TaskDepListAttribute,
|
@@ -312,6 +316,8 @@ class TaskJuggler
|
|
312
316
|
true, false, true, [] ],
|
313
317
|
[ 'scheduled', 'Scheduled', BooleanAttribute,
|
314
318
|
true, false, true, false ],
|
319
|
+
[ 'projectionmode', 'Projection Mode', BooleanAttribute,
|
320
|
+
true, false, true, false ],
|
315
321
|
[ 'seqno', 'No', FixnumAttribute,
|
316
322
|
false, false, false, nil ],
|
317
323
|
[ 'shifts', 'Shifts', ShiftAssignmentsAttribute,
|
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = ProjectFileParser.rb -- The TaskJuggler III Project Management Software
|
5
5
|
#
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
7
|
-
# by Chris Schlaeger <
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
|
7
|
+
# by Chris Schlaeger <cs@taskjuggler.org>
|
8
8
|
#
|
9
9
|
# This program is free software; you can redistribute it and/or modify
|
10
10
|
# it under the terms of version 2 of the GNU General Public License as
|
@@ -105,7 +105,7 @@ class TaskJuggler
|
|
105
105
|
open(attributes, false, true)
|
106
106
|
@property = report
|
107
107
|
@project = report.project
|
108
|
-
parse(:
|
108
|
+
parse(:dynamicAttributes)
|
109
109
|
end
|
110
110
|
|
111
111
|
private
|
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = ProjectFileScanner.rb -- The TaskJuggler III Project Management Software
|
5
5
|
#
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
7
|
-
# by Chris Schlaeger <
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
|
7
|
+
# by Chris Schlaeger <cs@taskjuggler.org>
|
8
8
|
#
|
9
9
|
# This program is free software; you can redistribute it and/or modify
|
10
10
|
# it under the terms of version 2 of the GNU General Public License as
|
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = PropertyList.rb -- The TaskJuggler III Project Management Software
|
5
5
|
#
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
7
|
-
# by Chris Schlaeger <
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
|
7
|
+
# by Chris Schlaeger <cs@taskjuggler.org>
|
8
8
|
#
|
9
9
|
# This program is free software; you can redistribute it and/or modify
|
10
10
|
# it under the terms of version 2 of the GNU General Public License as
|
@@ -226,21 +226,14 @@ class TaskJuggler
|
|
226
226
|
unless @propertySet.knownAttribute?(criteria) ||
|
227
227
|
@propertySet.hasQuery?(criteria, scIdx)
|
228
228
|
raise TjException.new,
|
229
|
-
"Unknown attribute #{criteria} used for sorting criterium"
|
229
|
+
"Unknown attribute '#{criteria}' used for sorting criterium"
|
230
230
|
end
|
231
|
-
if
|
232
|
-
if @propertySet.scenarioSpecific?(criteria)
|
233
|
-
raise TjException.new,
|
234
|
-
"Attribute #{criteria} is scenario specific." +
|
235
|
-
"You must specify a scenario id."
|
236
|
-
end
|
237
|
-
else
|
231
|
+
if @propertySet.scenarioSpecific?(criteria)
|
238
232
|
if @propertySet.project.scenario(scIdx).nil?
|
239
|
-
raise TjException.new, "Unknown scenario index #{scIdx} used."
|
240
|
-
end
|
241
|
-
if !@propertySet.scenarioSpecific?(criteria)
|
242
|
-
raise TjException.new, "Attribute #{criteria} is not scenario specific"
|
233
|
+
raise TjException.new, "Unknown scenario index '#{scIdx}' used."
|
243
234
|
end
|
235
|
+
else
|
236
|
+
scIdx == -1
|
244
237
|
end
|
245
238
|
@sortingCriteria.push(criteria)
|
246
239
|
@sortingUp.push(up)
|
@@ -262,7 +255,7 @@ class TaskJuggler
|
|
262
255
|
# real-world projects.
|
263
256
|
tree += idx.to_s.rjust(6, '0')
|
264
257
|
end
|
265
|
-
property.
|
258
|
+
property.force('tree', tree)
|
266
259
|
end
|
267
260
|
end
|
268
261
|
|
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = PropertySet.rb -- The TaskJuggler III Project Management Software
|
5
5
|
#
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
7
|
-
# by Chris Schlaeger <
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
|
7
|
+
# by Chris Schlaeger <cs@taskjuggler.org>
|
8
8
|
#
|
9
9
|
# This program is free software; you can redistribute it and/or modify
|
10
10
|
# it under the terms of version 2 of the GNU General Public License as
|
@@ -139,6 +139,10 @@ class TaskJuggler
|
|
139
139
|
@attributeDefinitions[attrId].userDefined
|
140
140
|
end
|
141
141
|
|
142
|
+
def listAttribute?(attrId)
|
143
|
+
(ad = @attributeDefinitions[attrId]) && ad.objClass.isList?
|
144
|
+
end
|
145
|
+
|
142
146
|
# Return the default value of the attribute.
|
143
147
|
def defaultValue(attrId)
|
144
148
|
return nil if @attributeDefinitions[attrId].nil?
|
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = PropertyTreeNode.rb -- The TaskJuggler III Project Management Software
|
5
5
|
#
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
7
|
-
# by Chris Schlaeger <
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
|
7
|
+
# by Chris Schlaeger <cs@taskjuggler.org>
|
8
8
|
#
|
9
9
|
# This program is free software; you can redistribute it and/or modify
|
10
10
|
# it under the terms of version 2 of the GNU General Public License as
|
@@ -590,6 +590,24 @@ class TaskJuggler
|
|
590
590
|
end
|
591
591
|
end
|
592
592
|
|
593
|
+
def query_children(query)
|
594
|
+
list = []
|
595
|
+
kids.each do |property|
|
596
|
+
if query.listItem
|
597
|
+
rti = RichText.new(query.listItem, RTFHandlers.create(@project)).
|
598
|
+
generateIntermediateFormat
|
599
|
+
q = query.dup
|
600
|
+
q.property = property
|
601
|
+
rti.setQuery(q)
|
602
|
+
list << "<nowiki>#{rti.to_s}</nowiki>"
|
603
|
+
else
|
604
|
+
list << "<nowiki>#{property.name} (#{property.fullId})</nowiki>"
|
605
|
+
end
|
606
|
+
end
|
607
|
+
|
608
|
+
query.assignList(list)
|
609
|
+
end
|
610
|
+
|
593
611
|
def query_journal(query)
|
594
612
|
@project['journal'].to_rti(query)
|
595
613
|
end
|
data/lib/taskjuggler/Query.rb
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = Query.rb -- The TaskJuggler III Project Management Software
|
5
5
|
#
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
7
|
-
# by Chris Schlaeger <
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
|
7
|
+
# by Chris Schlaeger <cs@taskjuggler.org>
|
8
8
|
#
|
9
9
|
# This program is free software; you can redistribute it and/or modify
|
10
10
|
# it under the terms of version 2 of the GNU General Public License as
|
@@ -126,7 +126,7 @@ class TaskJuggler
|
|
126
126
|
if @propertyId && (@property.nil? || @propertyId[0] == '!')
|
127
127
|
@property = resolvePropertyId(@propertyType, @propertyId)
|
128
128
|
unless @property
|
129
|
-
@errorMessage = "Unknown property #{@propertyId} queried"
|
129
|
+
@errorMessage = "Unknown property '#{@propertyId}' queried"
|
130
130
|
return @ok = false
|
131
131
|
end
|
132
132
|
end
|
@@ -197,8 +197,13 @@ class TaskJuggler
|
|
197
197
|
raise ArgumentError unless aType
|
198
198
|
scIdx = aType.scenarioSpecific ? @scenarioIdx : nil
|
199
199
|
@attr = @property.getAttribute(@attributeId, scIdx)
|
200
|
+
if @attr.nil? && @attr.is_a?(DateAttribute)
|
201
|
+
@errorMessage = "Attribute '#{@attributeId}' of property " +
|
202
|
+
"'#{@property.fullId}' has undefined value."
|
203
|
+
return @ok = false
|
204
|
+
end
|
200
205
|
rescue ArgumentError
|
201
|
-
@errorMessage = "Unknown attribute #{@attributeId} queried"
|
206
|
+
@errorMessage = "Unknown attribute '#{@attributeId}' queried"
|
202
207
|
return @ok = false
|
203
208
|
end
|
204
209
|
end
|
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = RealFormat.rb -- The TaskJuggler III Project Management Software
|
5
5
|
#
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
7
|
-
# by Chris Schlaeger <
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
|
7
|
+
# by Chris Schlaeger <cs@taskjuggler.org>
|
8
8
|
#
|
9
9
|
# This program is free software; you can redistribute it and/or modify
|
10
10
|
# it under the terms of version 2 of the GNU General Public License as
|
data/lib/taskjuggler/Resource.rb
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = Resource.rb -- The TaskJuggler III Project Management Software
|
5
5
|
#
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
7
|
-
# by Chris Schlaeger <
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
|
7
|
+
# by Chris Schlaeger <cs@taskjuggler.org>
|
8
8
|
#
|
9
9
|
# This program is free software; you can redistribute it and/or modify
|
10
10
|
# it under the terms of version 2 of the GNU General Public License as
|
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = ResourceScenario.rb -- The TaskJuggler III Project Management Software
|
5
5
|
#
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
7
|
-
# by Chris Schlaeger <
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
|
7
|
+
# by Chris Schlaeger <cs@taskjuggler.org>
|
8
8
|
#
|
9
9
|
# This program is free software; you can redistribute it and/or modify
|
10
10
|
# it under the terms of version 2 of the GNU General Public License as
|
@@ -26,14 +26,7 @@ class TaskJuggler
|
|
26
26
|
# Bit 0: Reserved
|
27
27
|
# Bit 1: 0: Work time (as defined by working hours)
|
28
28
|
# 1: No work time (as defined by working hours)
|
29
|
-
# Bit 2 - 5:
|
30
|
-
# 1: Public holiday (holiday)
|
31
|
-
# 2: Annual leave
|
32
|
-
# 3: Special leave
|
33
|
-
# 4: Sick leave
|
34
|
-
# 5: unpaid leave
|
35
|
-
# 6: blocked for other projects
|
36
|
-
# 7 - 15: Reserved
|
29
|
+
# Bit 2 - 5: See Leave class for acutal values.
|
37
30
|
# Bit 6 - 7: Reserved
|
38
31
|
# Bit 8: 0: No global override
|
39
32
|
# 1: Override global setting
|
@@ -73,8 +66,6 @@ class TaskJuggler
|
|
73
66
|
def prepareScheduling
|
74
67
|
@effort = 0
|
75
68
|
initScoreboard if @property.leaf?
|
76
|
-
|
77
|
-
setDirectReports
|
78
69
|
end
|
79
70
|
|
80
71
|
# The criticalness of a resource is a measure for the probabilty that all
|
@@ -97,17 +88,35 @@ class TaskJuggler
|
|
97
88
|
end
|
98
89
|
|
99
90
|
def setDirectReports
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
91
|
+
@managers.map! do |managerId|
|
92
|
+
# First we need to map 'managerId' to an existing Resource.
|
93
|
+
if (manager = @project.resource(managerId)).nil?
|
94
|
+
error('resource_id_expected', "#{managerId} is not a defined " +
|
95
|
+
'resource.', @sourceFileInfo)
|
96
|
+
end
|
97
|
+
unless manager.leaf?
|
98
|
+
error('manager_is_group',
|
99
|
+
"Resource #{@property.fullId} has group #{manager.fullId} " +
|
100
|
+
"assigned as manager. Managers must be leaf resources.")
|
109
101
|
end
|
102
|
+
if manager == @property
|
103
|
+
error('manager_is_self',
|
104
|
+
"Resource #{@property.fullId} cannot manage itself.")
|
105
|
+
end
|
106
|
+
|
107
|
+
# Only leaf resources have reporting lines.
|
108
|
+
if @property.leaf?
|
109
|
+
# The 'directreports' attribute is the reverse link for the 'managers'
|
110
|
+
# attribute. In contrast to the 'managers' attribute, the
|
111
|
+
# 'directreports' list has no duplicate entries.
|
112
|
+
unless manager['directreports', @scenarioIdx].include?(@property)
|
113
|
+
manager['directreports', @scenarioIdx] << @property
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
manager
|
110
118
|
end
|
119
|
+
@managers.uniq!
|
111
120
|
end
|
112
121
|
|
113
122
|
def setReports
|
@@ -119,17 +128,6 @@ class TaskJuggler
|
|
119
128
|
end
|
120
129
|
|
121
130
|
def preScheduleCheck
|
122
|
-
@managers.each do |manager|
|
123
|
-
unless manager.leaf?
|
124
|
-
error('manager_is_group',
|
125
|
-
"Resource #{@property.fullId} has group #{manager.fullId} " +
|
126
|
-
"assigned as manager. Managers must be leaf resources.")
|
127
|
-
end
|
128
|
-
if manager == @property
|
129
|
-
error('manager_is_self',
|
130
|
-
"Resource #{@property.fullId} cannot manage itself.")
|
131
|
-
end
|
132
|
-
end
|
133
131
|
end
|
134
132
|
|
135
133
|
# This method does some housekeeping work after the scheduling is
|
@@ -387,7 +385,11 @@ class TaskJuggler
|
|
387
385
|
headcount += query.to_num
|
388
386
|
end
|
389
387
|
else
|
390
|
-
|
388
|
+
if employed?(@project.dateToIdx(query.start))
|
389
|
+
# We only count headcount that is employed at the start date of the
|
390
|
+
# query interval.
|
391
|
+
headcount += @efficiency.round
|
392
|
+
end
|
391
393
|
end
|
392
394
|
|
393
395
|
query.sortable = query.numerical = headcount
|
@@ -894,6 +896,16 @@ class TaskJuggler
|
|
894
896
|
end
|
895
897
|
end
|
896
898
|
|
899
|
+
def employed?(sbIdx)
|
900
|
+
initScoreboard unless @scoreboard
|
901
|
+
|
902
|
+
val = @scoreboard[sbIdx]
|
903
|
+
return true unless val.is_a?(Fixnum)
|
904
|
+
|
905
|
+
leave_type = (val >> 2) & 0xF
|
906
|
+
leave_type < Leave::Types[:unemployed]
|
907
|
+
end
|
908
|
+
|
897
909
|
# Returns true if the resource or any of its children is allocated during
|
898
910
|
# the period specified with _startIdx_ and _endIdx_. If task is not nil
|
899
911
|
# only allocations to this tasks are respected.
|