taskjuggler 3.6.0 → 3.7.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/CHANGELOG +69 -0
- data/Rakefile +4 -1
- data/data/css/tjreport.css +4 -0
- data/data/tjp.vim +9 -3
- data/examples/ProjectTemplate/template.tjp +10 -10
- data/examples/Tutorial/tutorial.tjp +4 -4
- data/lib/taskjuggler/Allocation.rb +1 -1
- data/lib/taskjuggler/AppConfig.rb +1 -1
- data/lib/taskjuggler/AttributeBase.rb +10 -4
- data/lib/taskjuggler/Attributes.rb +2 -2
- data/lib/taskjuggler/BatchProcessor.rb +69 -58
- data/lib/taskjuggler/FileList.rb +1 -1
- data/lib/taskjuggler/Interval.rb +10 -12
- data/lib/taskjuggler/Journal.rb +2 -2
- data/lib/taskjuggler/LogicalFunction.rb +1 -1
- data/lib/taskjuggler/LogicalOperation.rb +7 -4
- data/lib/taskjuggler/MessageHandler.rb +1 -2
- data/lib/taskjuggler/PTNProxy.rb +1 -1
- data/lib/taskjuggler/Project.rb +27 -22
- data/lib/taskjuggler/PropertyList.rb +7 -1
- data/lib/taskjuggler/PropertySet.rb +1 -1
- data/lib/taskjuggler/PropertyTreeNode.rb +5 -3
- data/lib/taskjuggler/Query.rb +3 -3
- data/lib/taskjuggler/RealFormat.rb +1 -1
- data/lib/taskjuggler/Resource.rb +2 -2
- data/lib/taskjuggler/ResourceScenario.rb +66 -6
- data/lib/taskjuggler/RichText/Snip.rb +1 -1
- data/lib/taskjuggler/RuntimeConfig.rb +2 -2
- data/lib/taskjuggler/Scoreboard.rb +5 -2
- data/lib/taskjuggler/SheetHandlerBase.rb +5 -4
- data/lib/taskjuggler/Shift.rb +2 -2
- data/lib/taskjuggler/ShiftAssignments.rb +1 -1
- data/lib/taskjuggler/StatusSheetReceiver.rb +2 -2
- data/lib/taskjuggler/StatusSheetSender.rb +1 -1
- data/lib/taskjuggler/TaskJuggler.rb +4 -4
- data/lib/taskjuggler/TaskScenario.rb +7 -2
- data/lib/taskjuggler/TextParser/Scanner.rb +4 -4
- data/lib/taskjuggler/TextParser.rb +1 -1
- data/lib/taskjuggler/TimeSheetReceiver.rb +2 -2
- data/lib/taskjuggler/TimeSheetSender.rb +1 -1
- data/lib/taskjuggler/TimeSheets.rb +5 -4
- data/lib/taskjuggler/Tj3AppBase.rb +23 -9
- data/lib/taskjuggler/Tj3Config.rb +5 -3
- data/lib/taskjuggler/TjpExample.rb +3 -1
- data/lib/taskjuggler/TjpSyntaxRules.rb +166 -133
- data/lib/taskjuggler/UTF8String.rb +3 -3
- data/lib/taskjuggler/WorkingHours.rb +3 -3
- data/lib/taskjuggler/XMLDocument.rb +1 -1
- data/lib/taskjuggler/XMLElement.rb +12 -1
- data/lib/taskjuggler/apps/Tj3.rb +3 -1
- data/lib/taskjuggler/apps/Tj3Client.rb +3 -2
- data/lib/taskjuggler/apps/Tj3Daemon.rb +5 -3
- data/lib/taskjuggler/apps/Tj3Man.rb +4 -2
- data/lib/taskjuggler/apps/Tj3SsReceiver.rb +3 -1
- data/lib/taskjuggler/apps/Tj3SsSender.rb +3 -1
- data/lib/taskjuggler/apps/Tj3TsReceiver.rb +3 -1
- data/lib/taskjuggler/apps/Tj3TsSender.rb +3 -1
- data/lib/taskjuggler/apps/Tj3TsSummary.rb +3 -1
- data/lib/taskjuggler/apps/Tj3WebD.rb +4 -2
- data/lib/taskjuggler/daemon/ProjectServer.rb +2 -2
- data/lib/taskjuggler/deep_copy.rb +1 -1
- data/lib/taskjuggler/reports/CSVFile.rb +4 -4
- data/lib/taskjuggler/reports/ChartPlotter.rb +1 -1
- data/lib/taskjuggler/reports/GanttChart.rb +8 -2
- data/lib/taskjuggler/reports/GanttHeader.rb +11 -1
- data/lib/taskjuggler/reports/GanttLine.rb +6 -0
- data/lib/taskjuggler/reports/ICalReport.rb +1 -1
- data/lib/taskjuggler/reports/MspXmlRE.rb +5 -3
- data/lib/taskjuggler/reports/Report.rb +6 -6
- data/lib/taskjuggler/reports/ReportTableCell.rb +1 -1
- data/lib/taskjuggler/reports/TableReport.rb +7 -12
- data/lib/taskjuggler/reports/TjpExportRE.rb +1 -5
- data/lib/taskjuggler/reports/TraceReport.rb +2 -2
- data/lib/taskjuggler/version.rb +1 -0
- data/man/tj3.1 +130 -0
- data/man/tj3client.1 +145 -0
- data/man/tj3d.1 +93 -0
- data/man/tj3man.1 +76 -0
- data/man/tj3ss_receiver.1 +86 -0
- data/man/tj3ss_sender.1 +100 -0
- data/man/tj3ts_receiver.1 +86 -0
- data/man/tj3ts_sender.1 +92 -0
- data/man/tj3ts_summary.1 +104 -0
- data/man/tj3webd.1 +86 -0
- data/manual/Day_To_Day_Juggling +8 -8
- data/manual/Installation +6 -6
- data/manual/List_Attributes +1 -1
- data/manual/Rich_Text_Attributes +6 -5
- data/manual/Software +6 -6
- data/manual/TaskJuggler_Internals +4 -4
- data/manual/The_TaskJuggler_Syntax +5 -5
- data/manual/Tutorial +13 -11
- data/manual/html/Day_To_Day_Juggling.html +9 -9
- data/manual/html/Getting_Started.html +2 -2
- data/manual/html/How_To_Contribute.html +2 -2
- data/manual/html/Installation.html +8 -8
- data/manual/html/Intro.html +2 -2
- data/manual/html/List_Attributes.html +3 -3
- data/manual/html/Reporting_Bugs.html +2 -2
- data/manual/html/Rich_Text_Attributes.html +5 -5
- data/manual/html/Software.html +7 -7
- data/manual/html/TaskJuggler_2x_Migration.html +2 -2
- data/manual/html/TaskJuggler_Internals.html +6 -6
- data/manual/html/The_TaskJuggler_Syntax.html +6 -6
- data/manual/html/Tutorial.html +17 -14
- data/manual/html/account.html +3 -3
- data/manual/html/account.task.html +2 -2
- data/manual/html/accountprefix.html +2 -2
- data/manual/html/accountreport.html +3 -3
- data/manual/html/accountroot.html +2 -2
- data/manual/html/active.html +3 -3
- data/manual/html/adopt.task.html +2 -2
- data/manual/html/aggregate.html +2 -2
- data/manual/html/alert.html +3 -3
- data/manual/html/alertlevels.html +2 -2
- data/manual/html/allocate.html +3 -3
- data/manual/html/alphabet.html +1 -1
- data/manual/html/alternative.html +2 -2
- data/manual/html/author.html +2 -2
- data/manual/html/auxdir.html +2 -2
- data/manual/html/auxdir.report.html +2 -2
- data/manual/html/balance.html +2 -2
- data/manual/html/booking.resource.html +4 -4
- data/manual/html/booking.task.html +4 -4
- data/manual/html/caption.html +2 -2
- data/manual/html/cellcolor.column.html +3 -3
- data/manual/html/celltext.column.html +3 -3
- data/manual/html/center.html +2 -2
- data/manual/html/charge.html +2 -2
- data/manual/html/chargeset.html +2 -2
- data/manual/html/columnid.html +21 -14
- data/manual/html/columns.html +2 -2
- data/manual/html/complete.html +2 -2
- data/manual/html/copyright.html +2 -2
- data/manual/html/credits.html +2 -2
- data/manual/html/css/tjreport.css +4 -0
- data/manual/html/currency.html +2 -2
- data/manual/html/currencyformat.html +3 -3
- data/manual/html/dailymax.html +2 -2
- data/manual/html/dailymin.html +3 -3
- data/manual/html/dailyworkinghours.html +2 -2
- data/manual/html/date.extend.html +2 -2
- data/manual/html/date.html +5 -5
- data/manual/html/definitions.html +4 -4
- data/manual/html/depends.html +4 -4
- data/manual/html/details.html +2 -2
- data/manual/html/disabled.html +2 -2
- data/manual/html/duration.html +2 -2
- data/manual/html/efficiency.html +3 -3
- data/manual/html/effort.html +2 -2
- data/manual/html/effortdone.html +2 -2
- data/manual/html/effortleft.html +2 -2
- data/manual/html/email.html +2 -2
- data/manual/html/enabled.html +2 -2
- data/manual/html/end.column.html +3 -3
- data/manual/html/end.html +4 -4
- data/manual/html/end.limit.html +2 -2
- data/manual/html/end.report.html +2 -2
- data/manual/html/end.timesheet.html +3 -3
- data/manual/html/endcredit.html +3 -3
- data/manual/html/epilog.html +2 -2
- data/manual/html/export.html +3 -3
- data/manual/html/extend.html +3 -3
- data/manual/html/fail.html +3 -3
- data/manual/html/fdl.html +2 -2
- data/manual/html/flags.account.html +2 -2
- data/manual/html/flags.html +2 -2
- data/manual/html/flags.journalentry.html +2 -2
- data/manual/html/flags.report.html +2 -2
- data/manual/html/flags.resource.html +2 -2
- data/manual/html/flags.statussheet.html +2 -2
- data/manual/html/flags.task.html +2 -2
- data/manual/html/flags.timesheet.html +2 -2
- data/manual/html/fontcolor.column.html +3 -3
- data/manual/html/footer.html +2 -2
- data/manual/html/formats.export.html +3 -3
- data/manual/html/formats.html +3 -3
- data/manual/html/functions.html +5 -5
- data/manual/html/gapduration.html +2 -2
- data/manual/html/gaplength.html +2 -2
- data/manual/html/halign.center.html +2 -2
- data/manual/html/halign.column.html +3 -3
- data/manual/html/halign.left.html +2 -2
- data/manual/html/halign.right.html +2 -2
- data/manual/html/hasalert.html +2 -2
- data/manual/html/header.html +2 -2
- data/manual/html/headline.html +2 -2
- data/manual/html/height.html +3 -3
- data/manual/html/hideaccount.html +3 -3
- data/manual/html/hidejournalentry.html +2 -2
- data/manual/html/hidereport.html +3 -3
- data/manual/html/hideresource.html +3 -3
- data/manual/html/hidetask.html +3 -3
- data/manual/html/icalreport.html +9 -3
- data/manual/html/include.macro.html +3 -3
- data/manual/html/include.project.html +3 -3
- data/manual/html/include.properties.html +3 -3
- data/manual/html/index.html +1 -1
- data/manual/html/inherit.extend.html +3 -3
- data/manual/html/interval1.html +3 -3
- data/manual/html/interval2.html +3 -3
- data/manual/html/interval3.html +2 -2
- data/manual/html/interval4.html +2 -2
- data/manual/html/isactive.html +2 -2
- data/manual/html/ischildof.html +2 -2
- data/manual/html/isdependencyof.html +2 -2
- data/manual/html/isdutyof.html +2 -2
- data/manual/html/isfeatureof.html +2 -2
- data/manual/html/isleaf.html +2 -2
- data/manual/html/ismilestone.html +2 -2
- data/manual/html/isongoing.html +3 -3
- data/manual/html/isresource.html +2 -2
- data/manual/html/isresponsibilityof.html +2 -2
- data/manual/html/istask.html +2 -2
- data/manual/html/isvalid.html +2 -2
- data/manual/html/journalattributes.html +2 -2
- data/manual/html/journalentry.html +3 -3
- data/manual/html/journalmode.html +3 -3
- data/manual/html/leaveallowance.html +3 -3
- data/manual/html/leaves.html +3 -3
- data/manual/html/left.html +2 -2
- data/manual/html/length.html +3 -3
- data/manual/html/limits.allocate.html +2 -2
- data/manual/html/limits.html +2 -2
- data/manual/html/limits.resource.html +2 -2
- data/manual/html/limits.task.html +2 -2
- data/manual/html/listitem.column.html +3 -3
- data/manual/html/listtype.column.html +2 -2
- data/manual/html/loadunit.html +2 -2
- data/manual/html/logicalexpression.html +4 -4
- data/manual/html/logicalflagexpression.html +4 -4
- data/manual/html/macro.html +4 -4
- data/manual/html/managers.html +2 -2
- data/manual/html/mandatory.html +4 -4
- data/manual/html/markdate.html +69 -0
- data/manual/html/maxend.html +4 -4
- data/manual/html/maximum.html +2 -2
- data/manual/html/maxstart.html +2 -2
- data/manual/html/milestone.html +3 -3
- data/manual/html/minend.html +2 -2
- data/manual/html/minimum.html +2 -2
- data/manual/html/minstart.html +2 -2
- data/manual/html/monthlymax.html +2 -2
- data/manual/html/monthlymin.html +3 -3
- data/manual/html/navbar.html +5 -1
- data/manual/html/navigator.html +2 -2
- data/manual/html/newtask.html +3 -3
- data/manual/html/nikureport.html +2 -2
- data/manual/html/note.task.html +4 -4
- data/manual/html/novevents.html +68 -0
- data/manual/html/now.html +4 -4
- data/manual/html/number.extend.html +2 -2
- data/manual/html/numberformat.html +2 -2
- data/manual/html/onend.html +2 -2
- data/manual/html/onstart.html +2 -2
- data/manual/html/opennodes.html +2 -2
- data/manual/html/outputdir.html +3 -3
- data/manual/html/overtime.booking.html +2 -2
- data/manual/html/period.column.html +2 -2
- data/manual/html/period.limit.html +2 -2
- data/manual/html/period.report.html +2 -2
- data/manual/html/period.task.html +2 -2
- data/manual/html/persistent.html +3 -3
- data/manual/html/precedes.html +5 -5
- data/manual/html/priority.html +4 -4
- data/manual/html/priority.timesheet.html +3 -3
- data/manual/html/project.html +4 -4
- data/manual/html/projectid.html +2 -2
- data/manual/html/projectid.task.html +3 -3
- data/manual/html/projectids.html +2 -2
- data/manual/html/projection.html +2 -2
- data/manual/html/prolog.html +2 -2
- data/manual/html/properties.html +3 -3
- data/manual/html/purge.html +2 -2
- data/manual/html/rate.html +2 -2
- data/manual/html/rate.resource.html +2 -2
- data/manual/html/rawhtmlhead.html +3 -3
- data/manual/html/reference.extend.html +2 -2
- data/manual/html/remaining.html +3 -3
- data/manual/html/replace.html +2 -2
- data/manual/html/reportprefix.html +2 -2
- data/manual/html/resource.html +3 -3
- data/manual/html/resourceattributes.html +2 -2
- data/manual/html/resourceprefix.html +2 -2
- data/manual/html/resourcereport.html +4 -4
- data/manual/html/resourceroot.html +3 -3
- data/manual/html/resources.limit.html +2 -2
- data/manual/html/responsible.html +2 -2
- data/manual/html/richtext.extend.html +2 -2
- data/manual/html/right.html +2 -2
- data/manual/html/rollupaccount.html +3 -3
- data/manual/html/rollupresource.html +3 -3
- data/manual/html/rolluptask.html +3 -3
- data/manual/html/scale.column.html +2 -2
- data/manual/html/scenario.html +3 -3
- data/manual/html/scenario.ical.html +3 -3
- data/manual/html/scenarios.export.html +2 -2
- data/manual/html/scenarios.html +2 -2
- data/manual/html/scenariospecific.extend.html +2 -2
- data/manual/html/scheduled.html +2 -2
- data/manual/html/scheduling.html +6 -6
- data/manual/html/schedulingmode.html +2 -2
- data/manual/html/select.html +4 -4
- data/manual/html/selfcontained.html +2 -2
- data/manual/html/shift.allocate.html +2 -2
- data/manual/html/shift.html +3 -3
- data/manual/html/shift.resource.html +4 -4
- data/manual/html/shift.task.html +2 -2
- data/manual/html/shift.timesheet.html +2 -2
- data/manual/html/shifts.allocate.html +2 -2
- data/manual/html/shifts.resource.html +2 -2
- data/manual/html/shifts.task.html +3 -3
- data/manual/html/shorttimeformat.html +3 -3
- data/manual/html/sloppy.booking.html +2 -2
- data/manual/html/sloppy.projection.html +2 -2
- data/manual/html/sortaccounts.html +2 -2
- data/manual/html/sortjournalentries.html +2 -2
- data/manual/html/sortresources.html +2 -2
- data/manual/html/sorttasks.html +2 -2
- data/manual/html/start.column.html +3 -3
- data/manual/html/start.html +4 -4
- data/manual/html/start.limit.html +2 -2
- data/manual/html/start.report.html +2 -2
- data/manual/html/startcredit.html +3 -3
- data/manual/html/status.statussheet.html +2 -2
- data/manual/html/status.timesheet.html +2 -2
- data/manual/html/statussheet.html +2 -2
- data/manual/html/statussheetreport.html +3 -3
- data/manual/html/strict.projection.html +2 -2
- data/manual/html/summary.html +2 -2
- data/manual/html/supplement.html +2 -2
- data/manual/html/supplement.resource.html +2 -2
- data/manual/html/supplement.task.html +2 -2
- data/manual/html/tagfile.html +3 -3
- data/manual/html/task.html +3 -3
- data/manual/html/task.statussheet.html +3 -3
- data/manual/html/task.timesheet.html +2 -2
- data/manual/html/taskattributes.html +2 -2
- data/manual/html/taskprefix.html +2 -2
- data/manual/html/taskreport.html +4 -4
- data/manual/html/taskroot.export.html +2 -2
- data/manual/html/taskroot.html +2 -2
- data/manual/html/text.extend.html +2 -2
- data/manual/html/textreport.html +4 -4
- data/manual/html/timeformat.html +3 -3
- data/manual/html/timeformat1.html +2 -2
- data/manual/html/timeformat2.html +2 -2
- data/manual/html/timeoff.nikureport.html +2 -2
- data/manual/html/timesheet.html +3 -3
- data/manual/html/timesheetreport.html +3 -3
- data/manual/html/timezone.export.html +2 -2
- data/manual/html/timezone.html +2 -2
- data/manual/html/timezone.report.html +2 -2
- data/manual/html/timezone.shift.html +2 -2
- data/manual/html/timingresolution.html +2 -2
- data/manual/html/title.column.html +2 -2
- data/manual/html/title.html +2 -2
- data/manual/html/toc.html +157 -143
- data/manual/html/tooltip.column.html +3 -3
- data/manual/html/tracereport.html +7 -7
- data/manual/html/trackingscenario.html +3 -3
- data/manual/html/treelevel.html +2 -2
- data/manual/html/vacation.html +2 -2
- data/manual/html/vacation.resource.html +2 -2
- data/manual/html/vacation.shift.html +2 -2
- data/manual/html/warn.html +4 -4
- data/manual/html/weeklymax.html +2 -2
- data/manual/html/weeklymin.html +3 -3
- data/manual/html/weekstartsmonday.html +2 -2
- data/manual/html/weekstartssunday.html +2 -2
- data/manual/html/width.column.html +2 -2
- data/manual/html/width.html +3 -3
- data/manual/html/work.html +3 -3
- data/manual/html/workinghours.project.html +3 -3
- data/manual/html/workinghours.resource.html +2 -2
- data/manual/html/workinghours.shift.html +2 -2
- data/manual/html/yearlyworkingdays.html +2 -2
- data/spec/ProjectBroker_spec.rb +6 -6
- data/spec/StatusSheets_spec.rb +1 -1
- data/spec/TimeSheets_spec.rb +1 -1
- data/spec/TraceReport_spec.rb +1 -1
- data/spec/support/DaemonControl.rb +2 -3
- data/taskjuggler.gemspec +7 -10
- data/tasks/changelog.rake +2 -0
- data/tasks/gem.rake +3 -1
- data/tasks/help2man.rake +18 -0
- data/tasks/kate.rake +2 -0
- data/tasks/manual.rake +3 -1
- data/tasks/test.rake +5 -0
- data/tasks/vim.rake +2 -0
- data/test/TestSuite/CSV-Reports/quotes.tjp +20 -0
- data/test/TestSuite/CSV-Reports/refs/quotes.csv +5 -0
- data/test/TestSuite/Export-Reports/refs/AccountReport.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/AdoptedTasks.tjp +0 -2
- data/test/TestSuite/Export-Reports/refs/AlertLevels.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/Allocate-1.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/AutoID.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/AutoMacros.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/Currencyformat.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/CustomAttributes.tjp +0 -2
- data/test/TestSuite/Export-Reports/refs/Depends1.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/Durations.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/Efficiency.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/Gap.tjp +0 -3
- data/test/TestSuite/Export-Reports/refs/Include.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/Journal.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/Macro-1.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/Macro-2.tjp +0 -2
- data/test/TestSuite/Export-Reports/refs/Macro-3.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/Manager.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/Milestone.tjp +0 -2
- data/test/TestSuite/Export-Reports/refs/Numberformat.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/Precedes1.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/Project.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/ProjectIDs.tjp +0 -3
- data/test/TestSuite/Export-Reports/refs/Reports.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/Resource.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/ResourceRoot.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/RollupResource.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/Scenario.tjp +0 -2
- data/test/TestSuite/Export-Reports/refs/Timezone.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/Vacation.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/navigator.tjp +0 -4
- data/test/TestSuite/Export-Reports/refs/template.tjp +0 -6
- data/test/TestSuite/Export-Reports/refs/textreport.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/tutorial.tjp +0 -8
- data/test/TestSuite/Syntax/Correct/Booking.tjp +1 -1
- data/test/TestSuite/Syntax/Correct/Currencyformat.tjp +1 -1
- data/test/TestSuite/Syntax/Correct/template.tjp +3 -3
- data/test/TestSuite/Syntax/Correct/tutorial.tjp +8 -3
- data/test/test_BatchProcessor.rb +6 -3
- data/test/test_ProjectFileScanner.rb +8 -8
- metadata +47 -11
@@ -3,7 +3,7 @@
|
|
3
3
|
#
|
4
4
|
# = TjpSyntaxRules.rb -- The TaskJuggler III Project Management Software
|
5
5
|
#
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2020
|
7
7
|
# by Chris Schlaeger <cs@taskjuggler.org>
|
8
8
|
#
|
9
9
|
# This program is free software; you can redistribute it and/or modify
|
@@ -76,7 +76,7 @@ EOT
|
|
76
76
|
def rule_accountHeader
|
77
77
|
pattern(%w( _account !optionalID $STRING ), lambda {
|
78
78
|
if @property.nil? && !@accountprefix.empty?
|
79
|
-
@property = @project.
|
79
|
+
@property = @project.account(@accountprefix)
|
80
80
|
end
|
81
81
|
if @val[1] && @project.account(@val[1])
|
82
82
|
error('account_exists', "Account #{@val[1]} has already been defined.",
|
@@ -239,7 +239,7 @@ certain maximum per time period. The purge statement can be used to remove
|
|
239
239
|
inherited allocations or flags.
|
240
240
|
|
241
241
|
For effort-based tasks the task duration is clipped to only extend from the
|
242
|
-
|
242
|
+
beginning of the first allocation to the end of the last allocation. This is
|
243
243
|
done to optimize for an overall minimum project duration as dependent tasks
|
244
244
|
can potentially use the unallocated, clipped slots.
|
245
245
|
EOT
|
@@ -287,7 +287,7 @@ EOT
|
|
287
287
|
@allocate.setSelectionMode(@val[1])
|
288
288
|
})
|
289
289
|
doc('select', <<'EOT'
|
290
|
-
The select
|
290
|
+
The select function controls which resource is picked from an allocation and
|
291
291
|
it's alternatives. The selection is re-evaluated each time the resource used
|
292
292
|
in the previous time slot becomes unavailable.
|
293
293
|
|
@@ -301,7 +301,7 @@ EOT
|
|
301
301
|
@allocate.persistent = true
|
302
302
|
})
|
303
303
|
doc('persistent', <<'EOT'
|
304
|
-
Specifies that once a resource is picked from the list of alternatives this
|
304
|
+
Specifies that once a resource is picked from the list of alternatives, this
|
305
305
|
resource is used for the whole task. This is useful when several alternative
|
306
306
|
resources have been specified. Normally the selected resource can change after
|
307
307
|
each break. A break is an interval of at least one timeslot where no resources
|
@@ -389,7 +389,7 @@ EOT
|
|
389
389
|
descr(<<'EOT'
|
390
390
|
Pick the resource that has the smallest allocation factor. The
|
391
391
|
allocation factor is calculated from the various allocations of the resource
|
392
|
-
across the tasks. This is the default setting.
|
392
|
+
across the tasks. This is the default setting.
|
393
393
|
EOT
|
394
394
|
)
|
395
395
|
|
@@ -673,7 +673,7 @@ EOT
|
|
673
673
|
def rule_color
|
674
674
|
pattern(%w( $STRING ), lambda {
|
675
675
|
col = @val[0]
|
676
|
-
unless /#[0-9A-Fa-f]{3}/ =~ col || /#[0-9A-Fa-f]{
|
676
|
+
unless /#[0-9A-Fa-f]{3}/ =~ col || /#[0-9A-Fa-f]{6}/ =~ col
|
677
677
|
error('bad_color',
|
678
678
|
"Color values must be specified as '#RGB' or '#RRGGBB' values",
|
679
679
|
@sourceFileInfo[0])
|
@@ -748,7 +748,7 @@ EOT
|
|
748
748
|
Normally, columns with calculated values take the specified report period into
|
749
749
|
account when calculating their values. With this attribute, the user can
|
750
750
|
specify an end date for the period that should be used when calculating the
|
751
|
-
values of this column. It does not have an impact on
|
751
|
+
values of this column. It does not have an impact on columns with time
|
752
752
|
invariant values.
|
753
753
|
EOT
|
754
754
|
)
|
@@ -781,7 +781,7 @@ EOT
|
|
781
781
|
@column.listItem = @val[1]
|
782
782
|
})
|
783
783
|
doc('listitem.column', <<'EOT'
|
784
|
-
Specifies a
|
784
|
+
Specifies a [[Rich_Text_Attributes|Rich Text]] pattern that is used to generate the text for the list
|
785
785
|
items. The pattern should contain at least one ''''<nowiki><</nowiki>-query
|
786
786
|
attribute='XXX'->'''' element that will be replaced with the value of
|
787
787
|
attribute XXX. For the replacement, the property of the query will be the list
|
@@ -824,7 +824,7 @@ EOT
|
|
824
824
|
Normally, columns with calculated values take the specified report period into
|
825
825
|
account when calculating their values. With this attribute, the user can
|
826
826
|
specify a start date for the period that should be used when calculating the
|
827
|
-
values of this column. It does not have an impact on
|
827
|
+
values of this column. It does not have an impact on columns with time
|
828
828
|
invariant values.
|
829
829
|
EOT
|
830
830
|
)
|
@@ -930,19 +930,19 @@ are set to 0. ''''TIMEZONE'''' must be an offset to GMT or UTC, specified as
|
|
930
930
|
''''+HHMM'''' or ''''-HHMM''''. Dates must always be aligned with the
|
931
931
|
[[timingresolution]].
|
932
932
|
|
933
|
-
TaskJuggler also supports simple date calculations. You can add or
|
933
|
+
TaskJuggler also supports simple date calculations. You can add or subtract a
|
934
934
|
given interval from a fixed date.
|
935
935
|
|
936
936
|
%{2009-11-01 + 8m}
|
937
937
|
|
938
|
-
This will result in an actual date of around
|
938
|
+
This will result in an actual date of around 2010-07-01. Keep in mind that due
|
939
939
|
to the varying lengths of months TaskJuggler cannot add exactly 8 calendar
|
940
940
|
months. The date calculation functionality makes most sense when used with
|
941
941
|
macros.
|
942
942
|
|
943
943
|
%{${now} - 2w}
|
944
944
|
|
945
|
-
This
|
945
|
+
This results in a date 2 weeks earlier than the current (or specified) date.
|
946
946
|
See [[duration]] for a complete list of supported time intervals. Don't forget
|
947
947
|
to put at least one space character after the date to prevent TaskJuggler from
|
948
948
|
interpreting the interval as an hour.
|
@@ -1065,11 +1065,11 @@ EOT
|
|
1065
1065
|
@property.set('definitions', @val[1])
|
1066
1066
|
})
|
1067
1067
|
doc('definitions', <<"EOT"
|
1068
|
-
This
|
1068
|
+
This attribute controls what definitions will be contained in the report. If
|
1069
1069
|
the list includes ''project'', the generated file will have a ''''.tjp''''
|
1070
1070
|
extension. Otherwise it will have a ''''.tji'''' extension.
|
1071
1071
|
|
1072
|
-
By default, the report contains everything and the generated files
|
1072
|
+
By default, the report contains everything and the generated files have a ''''.tjp'''' extension.
|
1073
1073
|
EOT
|
1074
1074
|
)
|
1075
1075
|
allOrNothingListRule('exportDefinitions',
|
@@ -1188,13 +1188,13 @@ EOT
|
|
1188
1188
|
descr(<<'EOT'
|
1189
1189
|
Export of the scheduled project in Microsoft Project XML format. This will
|
1190
1190
|
export the data of the fully scheduled project. The exported data include the
|
1191
|
-
tasks, resources and the assignments of resources to
|
1191
|
+
tasks, resources and the assignments of resources to tasks. This is only a
|
1192
1192
|
small subset of the data that TaskJuggler can manage. This export is intended
|
1193
1193
|
to share resource assignment data with other teams using Microsoft Project.
|
1194
|
-
TaskJuggler manages assignments with a larger accuracy than the
|
1194
|
+
TaskJuggler manages assignments with a larger accuracy than the Microsoft
|
1195
1195
|
Project XML format can represent. This will inevitably lead to some rounding
|
1196
1196
|
errors and different interpretation of the data. The numbers you will see in
|
1197
|
-
Project are not necessarily an exact match of the numbers you see in
|
1197
|
+
Microsoft Project are not necessarily an exact match of the numbers you see in
|
1198
1198
|
TaskJuggler. The XML file format requires the sequence of the tasks in the
|
1199
1199
|
file to follow the work breakdown structure. Hence all user provided sorting
|
1200
1200
|
directions will be ignored for this format.
|
@@ -1385,7 +1385,7 @@ EOT
|
|
1385
1385
|
|
1386
1386
|
singlePattern('_inherit')
|
1387
1387
|
doc('inherit.extend', <<'EOT'
|
1388
|
-
If
|
1388
|
+
If this attribute is used, the property extension will be inherited by
|
1389
1389
|
child properties from their parent property.
|
1390
1390
|
EOT
|
1391
1391
|
)
|
@@ -1457,7 +1457,7 @@ A logical flag expression is a combination of operands and mathematical
|
|
1457
1457
|
operations. The final result of a logical expression is always true or false.
|
1458
1458
|
Logical expressions are used the reduce the properties in a report to a
|
1459
1459
|
certain subset or to select alternatives for the cell content of a table. When
|
1460
|
-
used with attributes like [[hidejournalentry]]
|
1460
|
+
the logical expression is used with attributes like [[hidejournalentry]] and
|
1461
1461
|
evaluates to true for a certain property, this property is hidden or rolled-up
|
1462
1462
|
in the report.
|
1463
1463
|
|
@@ -1507,7 +1507,7 @@ EOT
|
|
1507
1507
|
})
|
1508
1508
|
arg(0, 'operand', <<'EOT'
|
1509
1509
|
An operand is a declared flag. An operand can be a negated operand by
|
1510
|
-
prefixing a ~
|
1510
|
+
prefixing a ~ character or it can be another logical expression enclosed in
|
1511
1511
|
braces.
|
1512
1512
|
EOT
|
1513
1513
|
)
|
@@ -1527,7 +1527,7 @@ EOT
|
|
1527
1527
|
})
|
1528
1528
|
arg(1, 'operand', <<'EOT'
|
1529
1529
|
An operand is a declared flag. An operand can be a negated operand by
|
1530
|
-
prefixing a ~
|
1530
|
+
prefixing a ~ character or it can be another logical expression enclosed in
|
1531
1531
|
braces.
|
1532
1532
|
EOT
|
1533
1533
|
)
|
@@ -1582,18 +1582,18 @@ the evaluation, implicit and explicit parameters are used.
|
|
1582
1582
|
|
1583
1583
|
All functions may operate on the current property and the scope property. The
|
1584
1584
|
scope property is the enclosing property in reports with nested properties.
|
1585
|
-
Imagine e. g a task report with nested resources. When the function is called
|
1585
|
+
Imagine e. g. a task report with nested resources. When the function is called
|
1586
1586
|
for a task line, the task is the property and we don't have a scope property.
|
1587
1587
|
When the function is called for a resource line, the resource is the property
|
1588
1588
|
and the enclosing task is the scope property.
|
1589
1589
|
|
1590
|
-
|
1590
|
+
The number of arguments that are passed in brackets to the function depends
|
1591
1591
|
on the specific function. See the reference for details on each function.
|
1592
1592
|
|
1593
1593
|
All functions can be suffixed with an underscore character. In that case, the
|
1594
1594
|
function is operating on the scope property as if it were the property. The
|
1595
1595
|
original property is ignored in that case. In our task report example from
|
1596
|
-
above, calling a function with an appended
|
1596
|
+
above, calling a function with an appended underscore would mean that a task
|
1597
1597
|
line would be evaluated for the enclosing resource.
|
1598
1598
|
|
1599
1599
|
In the example below you can see how this can be used. To generate a task
|
@@ -1684,7 +1684,7 @@ EOT
|
|
1684
1684
|
|
1685
1685
|
pattern(%w( _isongoing _( $ID _) ))
|
1686
1686
|
doc('isongoing', <<'EOT'
|
1687
|
-
Will evaluate to true for tasks that overlap with the report period in given
|
1687
|
+
Will evaluate to true for tasks that overlap with the report period in the given
|
1688
1688
|
scenario.
|
1689
1689
|
EOT
|
1690
1690
|
)
|
@@ -1825,6 +1825,11 @@ EOT
|
|
1825
1825
|
pattern(%w( !reportStart ))
|
1826
1826
|
pattern(%w( !rollupresource ))
|
1827
1827
|
pattern(%w( !rolluptask ))
|
1828
|
+
pattern(%w( _novevents), lambda { @property.set('novevents', [ true ]) })
|
1829
|
+
doc('novevents', <<'EOT'
|
1830
|
+
Don't add VEVENT entries to generated [[icalreport]]s.
|
1831
|
+
EOT
|
1832
|
+
)
|
1828
1833
|
|
1829
1834
|
pattern(%w( _scenario !scenarioId ), lambda {
|
1830
1835
|
# Don't include disabled scenarios in the report
|
@@ -1837,8 +1842,8 @@ EOT
|
|
1837
1842
|
end
|
1838
1843
|
})
|
1839
1844
|
doc('scenario.ical', <<'EOT'
|
1840
|
-
|
1841
|
-
top-level scenario will be included. This attribute can be used select another
|
1845
|
+
ID of the scenario that should be included in the report. By default, the
|
1846
|
+
top-level scenario will be included. This attribute can be used to select another
|
1842
1847
|
scenario.
|
1843
1848
|
EOT
|
1844
1849
|
)
|
@@ -1863,6 +1868,8 @@ EOT
|
|
1863
1868
|
# Show all journal entries.
|
1864
1869
|
@property.set('hideJournalEntry',
|
1865
1870
|
LogicalExpression.new(LogicalOperation.new(0)))
|
1871
|
+
# Add VEVENT entries to icalreports by default
|
1872
|
+
@property.set('novevents', [ false ])
|
1866
1873
|
end
|
1867
1874
|
})
|
1868
1875
|
arg(1, 'file name', <<'EOT'
|
@@ -2021,7 +2028,7 @@ dates without a time specification! Date specifications are 0 extended. An
|
|
2021
2028
|
end date without a time is expanded to midnight that day. So the day of the
|
2022
2029
|
end date is not included in the interval! The start and end dates must be separated by a hyphen character.
|
2023
2030
|
|
2024
|
-
|
2031
|
+
The second form specifies the start date and an interval duration. The
|
2025
2032
|
duration must be prefixed by a plus character.
|
2026
2033
|
EOT
|
2027
2034
|
)
|
@@ -2161,7 +2168,7 @@ EOT
|
|
2161
2168
|
pattern(%w( _alerts_dep ), lambda { :alerts_dep })
|
2162
2169
|
descr(<<'EOT'
|
2163
2170
|
In this mode only the last entries before the report end date for the context
|
2164
|
-
property and all its sub-properties and their dependencies
|
2171
|
+
property and all its sub-properties and their dependencies are included. If
|
2165
2172
|
there are multiple entries at the exact same date, then all these entries are
|
2166
2173
|
included. In contrast to the ''''status_down'''' mode, only entries with an
|
2167
2174
|
alert level above the default level, and only those with the highest overall
|
@@ -2190,7 +2197,7 @@ used to record events, decisions or news that happened at a particular moment
|
|
2190
2197
|
during the project. Depending on the context, a journal entry may or may not
|
2191
2198
|
be associated with a specific property or author.
|
2192
2199
|
|
2193
|
-
A journal entry can
|
2200
|
+
A journal entry can consist of up to three parts. The headline is mandatory
|
2194
2201
|
and should be only 5 to 10 words long. The introduction is optional and should
|
2195
2202
|
be only one or two sentences long. All other details should be put into the
|
2196
2203
|
third part.
|
@@ -2209,7 +2216,7 @@ EOT
|
|
2209
2216
|
@journalEntry.alertLevel = @val[1]
|
2210
2217
|
})
|
2211
2218
|
doc('alert', <<'EOT'
|
2212
|
-
Specify the alert level for this entry. This attribute is
|
2219
|
+
Specify the alert level for this entry. This attribute is intended to be used for
|
2213
2220
|
status reporting. When used for a journal entry that is associated with a
|
2214
2221
|
property, the value can be reported in the alert column. When multiple entries
|
2215
2222
|
have been specified for the property, the entry with the date closest to the
|
@@ -2330,7 +2337,7 @@ allowances. The ''''leaveallowancebalance'''' report [[columns|column]] can be
|
|
2330
2337
|
used to report the current annual leave balance.
|
2331
2338
|
|
2332
2339
|
Leaves outside of the project period are silently ignored and will not be
|
2333
|
-
considered in the leave balance calculation.
|
2340
|
+
considered in the leave balance calculation. Therefore, leave allowances are
|
2334
2341
|
only allowed within the project period.
|
2335
2342
|
EOT
|
2336
2343
|
)
|
@@ -2352,7 +2359,7 @@ Leaves can be defined at global level, at resource level and at shift level
|
|
2352
2359
|
and intervals may overlap. The leave types have different priorities. A higher
|
2353
2360
|
priority leave type can overwrite a lower priority type. This means that
|
2354
2361
|
resource level leaves can overwrite global leaves when they have a higher
|
2355
|
-
priority. A sub resource can overwrite a leave of
|
2362
|
+
priority. A sub resource can overwrite a leave of an enclosing resource.
|
2356
2363
|
|
2357
2364
|
Leave periods outside of the project interval are silently ignored. For leave
|
2358
2365
|
periods that are partially outside of the project period only the part inside
|
@@ -2469,7 +2476,7 @@ EOT
|
|
2469
2476
|
doc('dailymin', <<'EOT'
|
2470
2477
|
Minimum required effort for any calendar day. This value cannot be guaranteed by
|
2471
2478
|
the scheduler. It is only checked after the schedule is complete. In case the
|
2472
|
-
|
2479
|
+
minimum required amount has not been reached, a warning will be generated.
|
2473
2480
|
EOT
|
2474
2481
|
)
|
2475
2482
|
example('Limits-1', '4')
|
@@ -2506,7 +2513,7 @@ EOT
|
|
2506
2513
|
doc('monthlymin', <<'EOT'
|
2507
2514
|
Minimum required effort for any calendar month. This value cannot be
|
2508
2515
|
guaranteed by the scheduler. It is only checked after the schedule is
|
2509
|
-
complete. In case the
|
2516
|
+
complete. In case the minimum required amount has not been reached, a warning
|
2510
2517
|
will be generated.
|
2511
2518
|
EOT
|
2512
2519
|
)
|
@@ -2525,7 +2532,7 @@ EOT
|
|
2525
2532
|
doc('weeklymin', <<'EOT'
|
2526
2533
|
Minimum required effort for any calendar week. This value cannot be guaranteed by
|
2527
2534
|
the scheduler. It is only checked after the schedule is complete. In case the
|
2528
|
-
|
2535
|
+
minimum required amount has not been reached, a warning will be generated.
|
2529
2536
|
EOT
|
2530
2537
|
)
|
2531
2538
|
end
|
@@ -2632,8 +2639,8 @@ EOT
|
|
2632
2639
|
A logical expression is a combination of operands and mathematical operations.
|
2633
2640
|
The final result of a logical expression is always true or false. Logical
|
2634
2641
|
expressions are used the reduce the properties in a report to a certain subset
|
2635
|
-
or to select alternatives for the cell content of a table. When
|
2636
|
-
attributes like [[hidetask]] or [[hideresource]]
|
2642
|
+
or to select alternatives for the cell content of a table. When the
|
2643
|
+
logical expression is used with attributes like [[hidetask]] or [[hideresource]] and
|
2637
2644
|
evaluates to true for a certain property, this property is hidden or rolled-up
|
2638
2645
|
in the report.
|
2639
2646
|
|
@@ -2655,7 +2662,7 @@ be undefined. To use such an attribute in a comparison, you need to test for
|
|
2655
2662
|
the validity first. E. g. to compare the end date of the ''''plan''''
|
2656
2663
|
scenario with the ''''maxend'''' value use ''''isvalid(plan.maxend) &
|
2657
2664
|
(plan.end > plan.maxend)''''. The ''''&'''' and ''''|'''' operators are lazy.
|
2658
|
-
If the result is already known after evaluation the first operand, the second
|
2665
|
+
If the result is already known after evaluation of the first operand, the second
|
2659
2666
|
operand will not be evaluated any more.
|
2660
2667
|
EOT
|
2661
2668
|
)
|
@@ -2690,9 +2697,9 @@ numbers as names. The number specifies the index of the argument.
|
|
2690
2697
|
will expand to ''''This stupid text'''' if called as ''''${FOO "stupid"}''''.
|
2691
2698
|
Macros may call other macros. All macro arguments must be enclosed by double
|
2692
2699
|
quotes. In case the argument contains a double quote, it must be escaped by a
|
2693
|
-
|
2700
|
+
backslash (''''\'''').
|
2694
2701
|
|
2695
|
-
User defined macro IDs
|
2702
|
+
User defined macro IDs should start with one uppercase letter as all
|
2696
2703
|
lowercase letter IDs are reserved for built-in macros.
|
2697
2704
|
|
2698
2705
|
To terminate the macro definition, the ''''<nowiki>]</nowiki>'''' must be the
|
@@ -3018,7 +3025,7 @@ them from flags. See [[columnid]] for a list of available attributes. The use
|
|
3018
3025
|
of list attributes is not recommended. User defined attributes are available
|
3019
3026
|
as well.
|
3020
3027
|
|
3021
|
-
An operand can be a negated operand by prefixing a ~
|
3028
|
+
An operand can be a negated operand by prefixing a ~ character or it can be
|
3022
3029
|
another logical expression enclosed in braces.
|
3023
3030
|
EOT
|
3024
3031
|
)
|
@@ -3037,7 +3044,7 @@ EOT
|
|
3037
3044
|
[ @val[0], @val[1] ]
|
3038
3045
|
})
|
3039
3046
|
arg(1, 'operand', <<'EOT'
|
3040
|
-
An operand can consist of a date, a text string or a numerical value. It can also be the name of a declared flag. Finally, an operand can be a negated operand by prefixing a ~
|
3047
|
+
An operand can consist of a date, a text string or a numerical value. It can also be the name of a declared flag. Finally, an operand can be a negated operand by prefixing a ~ character or it can be another operation enclosed in braces.
|
3041
3048
|
EOT
|
3042
3049
|
)
|
3043
3050
|
end
|
@@ -3075,7 +3082,7 @@ EOT
|
|
3075
3082
|
})
|
3076
3083
|
arg(0, 'id', <<"EOT"
|
3077
3084
|
An optional ID. If you ever want to reference this property, you must specify
|
3078
|
-
your own unique ID. If no ID is specified one will be automatically generated.
|
3085
|
+
your own unique ID. If no ID is specified, one will be automatically generated.
|
3079
3086
|
These IDs may become visible in reports, but may change at any time. You may
|
3080
3087
|
never rely on automatically generated IDs.
|
3081
3088
|
EOT
|
@@ -3140,7 +3147,7 @@ EOT
|
|
3140
3147
|
pattern(%w( _niku ), lambda {
|
3141
3148
|
:niku
|
3142
3149
|
})
|
3143
|
-
descr('Generate
|
3150
|
+
descr('Generate an XOG XML file to be used with Clarity.')
|
3144
3151
|
end
|
3145
3152
|
|
3146
3153
|
def rule_outputFormats
|
@@ -3238,7 +3245,7 @@ EOT
|
|
3238
3245
|
doc('extend', <<'EOT'
|
3239
3246
|
Often it is desirable to collect more information in the project file than is
|
3240
3247
|
necessary for task scheduling and resource allocation. To add such information
|
3241
|
-
to tasks, resources or accounts the user can extend these properties with
|
3248
|
+
to tasks, resources or accounts, the user can extend these properties with
|
3242
3249
|
user-defined attributes. The new attributes can be of various types such as
|
3243
3250
|
text, date or reference to capture various types of data. Optionally the user
|
3244
3251
|
can specify if the attribute value should be inherited from the enclosing
|
@@ -3267,6 +3274,21 @@ EOT
|
|
3267
3274
|
arg(1, 'date', 'Alternative date to be used as current date for all ' +
|
3268
3275
|
'computations')
|
3269
3276
|
|
3277
|
+
pattern(%w( _markdate !date ), lambda {
|
3278
|
+
@project['markdate'] = @val[1]
|
3279
|
+
@scanner.addMacro(TextParser::Macro.new('markdate', @val[1].to_s,
|
3280
|
+
@sourceFileInfo[0]))
|
3281
|
+
@scanner.addMacro(TextParser::Macro.new(
|
3282
|
+
'today', @val[1].to_s(@project['timeFormat']), @sourceFileInfo[0]))
|
3283
|
+
})
|
3284
|
+
doc('markdate', <<'EOT'
|
3285
|
+
Specify the reference date that TaskJuggler uses as date that can be specified
|
3286
|
+
and set by the user. It can be used as additional point in time to help with
|
3287
|
+
tracking tasks. If no value is specified, the current value of the system clock is used.
|
3288
|
+
EOT
|
3289
|
+
)
|
3290
|
+
arg(1, 'date', 'Alternative date to be used as custom date specified by the user')
|
3291
|
+
|
3270
3292
|
pattern(%w( !numberFormat ), lambda {
|
3271
3293
|
@project['numberFormat'] = @val[0]
|
3272
3294
|
})
|
@@ -3285,8 +3307,8 @@ EOT
|
|
3285
3307
|
})
|
3286
3308
|
doc('outputdir',
|
3287
3309
|
'Specifies the directory into which the reports should be generated. ' +
|
3288
|
-
'This will not affect reports
|
3289
|
-
'setting can be overwritten by the command line option.')
|
3310
|
+
'This will not affect reports whose name start with a slash. This ' +
|
3311
|
+
'setting can be overwritten by the command line option -o or --output-dir.')
|
3290
3312
|
arg(1, 'directory', 'Path to an existing directory')
|
3291
3313
|
|
3292
3314
|
pattern(%w( !scenario ))
|
@@ -3294,8 +3316,8 @@ EOT
|
|
3294
3316
|
@project['shortTimeFormat'] = @val[1]
|
3295
3317
|
})
|
3296
3318
|
doc('shorttimeformat',
|
3297
|
-
'Specifies time format for time
|
3298
|
-
'just
|
3319
|
+
'Specifies time format for short time specifications. This is normal ' +
|
3320
|
+
'just hours and minutes.')
|
3299
3321
|
arg(1, 'format', 'strftime like format string')
|
3300
3322
|
|
3301
3323
|
pattern(%w( !timeformat ), lambda {
|
@@ -3352,7 +3374,7 @@ the project. All sub-scenarios of this scenario inherit the bookings of the
|
|
3352
3374
|
tracking scenario and may not have any bookings of their own. The tracking
|
3353
3375
|
scenario must also be specified to use time and status sheet reports.
|
3354
3376
|
|
3355
|
-
The tracking scenario must be defined after all
|
3377
|
+
The tracking scenario must be defined after all scenarios have been defined.
|
3356
3378
|
|
3357
3379
|
The tracking scenario and all scenarios derived from it will be scheduled in
|
3358
3380
|
projection mode. This means that the scheduler will only add bookings after
|
@@ -3472,7 +3494,7 @@ EOT
|
|
3472
3494
|
# documentation.
|
3473
3495
|
pattern(%w( !projectPropertiesBody ))
|
3474
3496
|
doc('properties', <<'EOT'
|
3475
|
-
The project properties. Every project must
|
3497
|
+
The project properties. Every project must consist of at least one task. The other properties are optional. To save the scheduled data at least one output generating property should be used.
|
3476
3498
|
EOT
|
3477
3499
|
)
|
3478
3500
|
end
|
@@ -3489,7 +3511,7 @@ EOT
|
|
3489
3511
|
doc('include.project', <<'EOT'
|
3490
3512
|
Includes the specified file name as if its contents would be written
|
3491
3513
|
instead of the include property. When the included files contains other
|
3492
|
-
include statements or report definitions, the filenames are relative to file
|
3514
|
+
include statements or report definitions, the filenames are relative to the file
|
3493
3515
|
where they are defined in.
|
3494
3516
|
|
3495
3517
|
This version of the include directive may only be used inside the [[project]]
|
@@ -3506,7 +3528,7 @@ EOT
|
|
3506
3528
|
Includes the specified file name as if its contents would be written
|
3507
3529
|
instead of the include property. The only exception is the include
|
3508
3530
|
statement itself. When the included files contains other include
|
3509
|
-
statements or report definitions, the filenames are relative to file
|
3531
|
+
statements or report definitions, the filenames are relative to the file
|
3510
3532
|
where they are defined in.
|
3511
3533
|
|
3512
3534
|
The included file may only contain macro definitions. This version of the
|
@@ -3667,7 +3689,7 @@ EOT
|
|
3667
3689
|
Includes the specified file name as if its contents would be written
|
3668
3690
|
instead of the include property. The only exception is the include
|
3669
3691
|
statement itself. When the included files contains other include
|
3670
|
-
statements or report definitions, the filenames are relative to file
|
3692
|
+
statements or report definitions, the filenames are relative to the file
|
3671
3693
|
where they are defined in. include commands can be used in the project
|
3672
3694
|
header, at global scope or between property declarations of tasks,
|
3673
3695
|
resources, and accounts.
|
@@ -3689,13 +3711,11 @@ EOT
|
|
3689
3711
|
end
|
3690
3712
|
if attributeDefinition.scenarioSpecific
|
3691
3713
|
@scenarioIdx = 0 unless @val[1]
|
3692
|
-
attr = @property[attrId, 0]
|
3693
3714
|
else
|
3694
3715
|
if @val[1]
|
3695
3716
|
error('purge_non_sc_spec_attr',
|
3696
3717
|
'Scenario specified for a non-scenario specific attribute')
|
3697
3718
|
end
|
3698
|
-
attr = @property.get(attrId)
|
3699
3719
|
end
|
3700
3720
|
if @property.attributeDefinition(attrId).scenarioSpecific
|
3701
3721
|
@property.getAttribute(attrId, @scenarioIdx).reset
|
@@ -3776,6 +3796,13 @@ EOT
|
|
3776
3796
|
descr(<<'EOT'
|
3777
3797
|
The balance of the annual leave at the end of the reporting interval. The unit
|
3778
3798
|
can be adjusted with [[loadunit]].
|
3799
|
+
EOT
|
3800
|
+
)
|
3801
|
+
|
3802
|
+
singlePattern('_annualleavelist')
|
3803
|
+
descr(<<'EOT'
|
3804
|
+
A list with all annual leave intervals. The list can be customized with the
|
3805
|
+
[[listtype.column|listtype]] attribute.
|
3779
3806
|
EOT
|
3780
3807
|
)
|
3781
3808
|
|
@@ -3802,7 +3829,7 @@ EOT
|
|
3802
3829
|
singlePattern('_alerttrend')
|
3803
3830
|
descr(<<'EOT'
|
3804
3831
|
Shows how the alert level at the end of the report period compares to the
|
3805
|
-
alert level at the
|
3832
|
+
alert level at the beginning of the report period. Possible values are
|
3806
3833
|
''''Up'''', ''''Down'''' or ''''Flat''''.
|
3807
3834
|
EOT
|
3808
3835
|
)
|
@@ -3839,7 +3866,7 @@ EOT
|
|
3839
3866
|
singlePattern('_closedtasks')
|
3840
3867
|
descr(<<'EOT'
|
3841
3868
|
The number of sub-tasks (including the current task) that have been closed
|
3842
|
-
during the reported time period. Closed means that they have
|
3869
|
+
during the reported time period. Closed means that they have an end date
|
3843
3870
|
before the current time or [[now]] date.
|
3844
3871
|
EOT
|
3845
3872
|
)
|
@@ -3860,12 +3887,12 @@ EOT
|
|
3860
3887
|
singlePattern('_complete')
|
3861
3888
|
descr(<<'EOT'
|
3862
3889
|
The completion degree of a task. Unless a completion degree is manually
|
3863
|
-
provided, this is a computed value relative the [[now]] date of the project. A
|
3890
|
+
provided, this is a computed value relative to the [[now]] date of the project. A
|
3864
3891
|
task that has ended before the now date is always 100% complete. A task that
|
3865
|
-
starts at or after the now date is always 0%. For [[effort]] based
|
3892
|
+
starts at or after the now date is always 0%. For [[effort]] based tasks the
|
3866
3893
|
computation degree is the percentage of done effort of the overall effort. For
|
3867
|
-
other leaf
|
3868
|
-
duration of the overall task duration. For container
|
3894
|
+
other leaf tasks, the completion degree is the percentage of the already passed
|
3895
|
+
duration of the overall task duration. For container tasks, it's always the
|
3869
3896
|
average of the direct sub tasks. If the sub tasks consist of a mixture of
|
3870
3897
|
effort and non-effort tasks, the completion value is only of limited value.
|
3871
3898
|
EOT
|
@@ -3879,8 +3906,8 @@ EOT
|
|
3879
3906
|
descr('Deprecated alias for complete')
|
3880
3907
|
|
3881
3908
|
singlePattern('_criticalness')
|
3882
|
-
descr('A measure for how much effort the resource is allocated for, or' +
|
3883
|
-
'how strained the allocated resources of a task are')
|
3909
|
+
descr('A measure for how much effort the resource is allocated for, or ' +
|
3910
|
+
'how strained the allocated resources of a task are.')
|
3884
3911
|
|
3885
3912
|
singlePattern('_cost')
|
3886
3913
|
descr(<<'EOT'
|
@@ -3905,7 +3932,13 @@ EOT
|
|
3905
3932
|
descr('The duration of a task')
|
3906
3933
|
|
3907
3934
|
singlePattern('_duties')
|
3908
|
-
descr('
|
3935
|
+
descr(<<'EOT'
|
3936
|
+
List of tasks that the resource is allocated to
|
3937
|
+
|
3938
|
+
The list can be customized by the [[listitem.column|listitem]] and
|
3939
|
+
[[listtype.column|listtype]] attribute.
|
3940
|
+
EOT
|
3941
|
+
)
|
3909
3942
|
|
3910
3943
|
singlePattern('_efficiency')
|
3911
3944
|
descr('Measure for how efficient a resource can perform tasks')
|
@@ -3932,7 +3965,7 @@ EOT
|
|
3932
3965
|
descr(<<'EOT'
|
3933
3966
|
A list of tasks that depend on the current task. The list contains the names,
|
3934
3967
|
the IDs, the date and the type of dependency. For the type the following
|
3935
|
-
symbols are used for <nowiki><dep></nowiki
|
3968
|
+
symbols are used for <nowiki><dep></nowiki>:
|
3936
3969
|
|
3937
3970
|
* '''<nowiki>]->[</nowiki>''': End-to-Start dependency
|
3938
3971
|
* '''<nowiki>[->[</nowiki>''': Start-to-Start dependency
|
@@ -3941,7 +3974,7 @@ symbols are used for <nowiki><dep></nowiki>.
|
|
3941
3974
|
|
3942
3975
|
The list can be customized by the [[listitem.column|listitem]] and
|
3943
3976
|
[[listtype.column]] attributes. The dependency symbol can be generated via
|
3944
|
-
the ''''dependency'''' attribute
|
3977
|
+
the ''''dependency'''' attribute in the query, the target date via the
|
3945
3978
|
''''date'''' attribute.
|
3946
3979
|
EOT
|
3947
3980
|
)
|
@@ -4019,7 +4052,7 @@ EOT
|
|
4019
4052
|
singlePattern('_journal')
|
4020
4053
|
descr(<<'EOT'
|
4021
4054
|
The journal entries for the task or resource for the reported interval. The
|
4022
|
-
generated text can be customized with
|
4055
|
+
generated text can be customized with [[journalmode]],
|
4023
4056
|
[[journalattributes]], [[hidejournalentry]] and [[sortjournalentries]]. If
|
4024
4057
|
used in queries without a property context, the journal for the complete
|
4025
4058
|
project is generated.
|
@@ -4080,7 +4113,7 @@ EOT
|
|
4080
4113
|
singlePattern('_opentasks')
|
4081
4114
|
descr(<<'EOT'
|
4082
4115
|
The number of sub-tasks (including the current task) that have not yet been
|
4083
|
-
closed during the reported time period. Closed means that they have
|
4116
|
+
closed during the reported time period. Closed means that they have an end
|
4084
4117
|
date before the current time or [[now]] date.
|
4085
4118
|
EOT
|
4086
4119
|
)
|
@@ -4102,7 +4135,7 @@ are used
|
|
4102
4135
|
|
4103
4136
|
The list can be customized by the [[listitem.column|listitem]] and
|
4104
4137
|
[[listtype.column|listtype]] attributes. The dependency symbol can be
|
4105
|
-
generated via the ''''dependency'''' attribute
|
4138
|
+
generated via the ''''dependency'''' attribute in the query, the target date
|
4106
4139
|
via the ''''date'''' attribute.
|
4107
4140
|
EOT
|
4108
4141
|
)
|
@@ -4364,7 +4397,7 @@ EOT
|
|
4364
4397
|
})
|
4365
4398
|
doc('height', <<'EOT'
|
4366
4399
|
Set the height of the report in pixels. This attribute is only used for
|
4367
|
-
reports that cannot determine the height based on the content. Such
|
4400
|
+
reports that cannot determine the height based on the content. Such reports can
|
4368
4401
|
be freely resized to fit in. The vast majority of reports can determine their
|
4369
4402
|
height based on the provided content. These reports will simply ignore this
|
4370
4403
|
setting.
|
@@ -4421,7 +4454,7 @@ EOT
|
|
4421
4454
|
@property.set('rawHtmlHead', @val[1])
|
4422
4455
|
})
|
4423
4456
|
doc('rawhtmlhead', <<'EOT'
|
4424
|
-
Define
|
4457
|
+
Define an HTML fragment that will be inserted at the end of the HTML head
|
4425
4458
|
section.
|
4426
4459
|
EOT
|
4427
4460
|
)
|
@@ -4485,7 +4518,7 @@ EOT
|
|
4485
4518
|
doc('resourceroot', <<'EOT'
|
4486
4519
|
Only resources below the specified root-level resources are exported. The
|
4487
4520
|
exported resources will have the ID of the root-level resource stripped from
|
4488
|
-
their ID, so that the sub-
|
4521
|
+
their ID, so that the sub-resources of the root-level resource become
|
4489
4522
|
top-level resources in the report file.
|
4490
4523
|
EOT
|
4491
4524
|
)
|
@@ -4534,7 +4567,7 @@ EOT
|
|
4534
4567
|
})
|
4535
4568
|
doc('width', <<'EOT'
|
4536
4569
|
Set the width of the report in pixels. This attribute is only used for
|
4537
|
-
reports that cannot determine the width based on the content. Such
|
4570
|
+
reports that cannot determine the width based on the content. Such reports can
|
4538
4571
|
be freely resized to fit in. The vast majority of reports can determine their
|
4539
4572
|
width based on the provided content. These reports will simply ignore this
|
4540
4573
|
setting.
|
@@ -4796,9 +4829,9 @@ EOT
|
|
4796
4829
|
})
|
4797
4830
|
doc('resourcereport', <<'EOT'
|
4798
4831
|
The report lists resources and their respective values in a table. The task
|
4799
|
-
that
|
4832
|
+
that the resources are allocated to can be listed as well. To reduce the
|
4800
4833
|
list of included resources, you can use the [[hideresource]],
|
4801
|
-
[[rollupresource]] or [[resourceroot]] attributes. The order of the
|
4834
|
+
[[rollupresource]] or [[resourceroot]] attributes. The order of the tasks can
|
4802
4835
|
be controlled with [[sortresources]]. If the first sorting criteria is tree
|
4803
4836
|
sorting, the parent resources will always be included to form the tree.
|
4804
4837
|
Tree sorting is the default. You need to change it if you do not want certain
|
@@ -4857,7 +4890,7 @@ it as a crude way to model a team. A team of 5 people should have an
|
|
4857
4890
|
efficiency of 5.0. Keep in mind that you cannot track the members of the team
|
4858
4891
|
individually if you use this feature. They always act as a group.
|
4859
4892
|
|
4860
|
-
The other use is to model performance variations between your resources. Again, this is a fairly crude mechanism and should be used with care. A resource that isn't
|
4893
|
+
The other use is to model performance variations between your resources. Again, this is a fairly crude mechanism and should be used with care. A resource that isn't very good at some task might be pretty good at another. This can't be taken into account as the resource efficiency can only be set globally for all tasks.
|
4861
4894
|
|
4862
4895
|
All resources that do not contribute effort to the task, should have an
|
4863
4896
|
efficiency of 0.0. A typical example would be a conference room. It's necessary for a meeting, but it does not contribute any work.
|
@@ -4874,7 +4907,7 @@ EOT
|
|
4874
4907
|
pattern(%w( _booking !resourceBooking ))
|
4875
4908
|
doc('booking.resource', <<'EOT'
|
4876
4909
|
The booking attribute can be used to report actually completed work. A task
|
4877
|
-
with bookings must be [[scheduling|scheduled]] in ''''
|
4910
|
+
with bookings must be [[scheduling|scheduled]] in ''''ASAP'''' mode. If the
|
4878
4911
|
scenario is not the [[trackingscenario|tracking scenario]] or derived from it,
|
4879
4912
|
the scheduler will not allocate resources prior to the current date or the
|
4880
4913
|
date specified with [[now]] when a task has at least one booking.
|
@@ -4960,7 +4993,7 @@ EOT
|
|
4960
4993
|
@shiftAssignments = nil
|
4961
4994
|
})
|
4962
4995
|
level(:deprecated)
|
4963
|
-
also('
|
4996
|
+
also('shifts.resource')
|
4964
4997
|
doc('shift.resource', <<'EOT'
|
4965
4998
|
This keyword has been deprecated. Please use [[shifts.resource|shifts
|
4966
4999
|
(resource)]] instead.
|
@@ -5070,10 +5103,10 @@ that are listed as scenario specific may differ between the various
|
|
5070
5103
|
scenarios. A nested scenario uses all attributes from the enclosing scenario
|
5071
5104
|
unless the user has specified a different value for this attribute.
|
5072
5105
|
|
5073
|
-
By default, the scheduler assigns resources to
|
5106
|
+
By default, the scheduler assigns resources to tasks beginning with the project
|
5074
5107
|
start date. If the scenario is switched to projection mode, no assignments
|
5075
5108
|
will be made prior to the current date or the date specified by [[now]]. In
|
5076
|
-
this case, TaskJuggler assumes, that all
|
5109
|
+
this case, TaskJuggler assumes, that all assignments prior to the
|
5077
5110
|
current date have been provided by [[booking.task]] statements.
|
5078
5111
|
EOT
|
5079
5112
|
)
|
@@ -5088,7 +5121,7 @@ EOT
|
|
5088
5121
|
})
|
5089
5122
|
doc('active', <<'EOT'
|
5090
5123
|
Enable the scenario to be scheduled or not. By default, all scenarios will be
|
5091
|
-
scheduled. If a scenario is marked as inactive, it
|
5124
|
+
scheduled. If a scenario is marked as inactive, it cannot be scheduled and will
|
5092
5125
|
be ignored in the reports.
|
5093
5126
|
EOT
|
5094
5127
|
)
|
@@ -5703,7 +5736,7 @@ EOT
|
|
5703
5736
|
@property = @propertyStack.pop
|
5704
5737
|
})
|
5705
5738
|
doc('task.statussheet', <<'EOT'
|
5706
|
-
Opens the task with the specified ID to add a status report. Child
|
5739
|
+
Opens the task with the specified ID to add a status report. Child tasks can be
|
5707
5740
|
opened inside this context by specifying their relative ID to this parent.
|
5708
5741
|
EOT
|
5709
5742
|
)
|
@@ -6043,7 +6076,7 @@ EOT
|
|
6043
6076
|
)
|
6044
6077
|
|
6045
6078
|
singlePattern('$ID')
|
6046
|
-
arg(0, 'ID', 'Just the ID of the task without
|
6079
|
+
arg(0, 'ID', 'Just the ID of the task without any parent IDs.')
|
6047
6080
|
|
6048
6081
|
pattern(%w( !relativeId ), lambda {
|
6049
6082
|
task = @property
|
@@ -6159,7 +6192,7 @@ EOT
|
|
6159
6192
|
doc('taskreport', <<'EOT'
|
6160
6193
|
The report lists tasks and their respective values in a table. To reduce the
|
6161
6194
|
list of included tasks, you can use the [[hidetask]], [[rolluptask]] or
|
6162
|
-
[[taskroot]] attributes. The order of the
|
6195
|
+
[[taskroot]] attributes. The order of the tasks can be controlled with
|
6163
6196
|
[[sorttasks]]. If the first sorting criteria is tree sorting, the parent tasks
|
6164
6197
|
will always be included to form the tree. Tree sorting is the default. You
|
6165
6198
|
need to change it if you do not want certain parent tasks to be included in
|
@@ -6218,7 +6251,7 @@ EOT
|
|
6218
6251
|
pattern(%w( _booking !taskBooking ))
|
6219
6252
|
doc('booking.task', <<'EOT'
|
6220
6253
|
The booking attribute can be used to report actually completed work. A task
|
6221
|
-
with bookings must be [[scheduling|scheduled]] in ''''
|
6254
|
+
with bookings must be [[scheduling|scheduled]] in ''''ASAP'''' mode. If the
|
6222
6255
|
scenario is not the [[trackingscenario|tracking scenario]] or derived from it,
|
6223
6256
|
the scheduler will not allocate resources prior to the current date or the
|
6224
6257
|
date specified with [[now]] when a task has at least one booking.
|
@@ -6321,7 +6354,7 @@ Specifies that the task cannot start before the specified tasks have been
|
|
6321
6354
|
finished.
|
6322
6355
|
|
6323
6356
|
By using the 'depends' attribute, the scheduling policy is automatically set
|
6324
|
-
to
|
6357
|
+
to ASAP. If both depends and precedes are used, the last policy counts.
|
6325
6358
|
EOT
|
6326
6359
|
)
|
6327
6360
|
example('Depends1')
|
@@ -6418,10 +6451,10 @@ EOT
|
|
6418
6451
|
The end attribute provides a guideline to the scheduler when the task should
|
6419
6452
|
end. It will never end later, but it may end earlier when allocated
|
6420
6453
|
resources are not available that long. When an end date is provided for a
|
6421
|
-
container task, it will be passed down to ALAP
|
6454
|
+
container task, it will be passed down to ALAP tasks that don't have a well
|
6422
6455
|
defined end criteria.
|
6423
6456
|
|
6424
|
-
Setting an end date will
|
6457
|
+
Setting an end date will implicitly set the scheduling policy for this task
|
6425
6458
|
to ALAP.
|
6426
6459
|
EOT
|
6427
6460
|
)
|
@@ -6434,7 +6467,7 @@ EOT
|
|
6434
6467
|
level(:deprecated)
|
6435
6468
|
doc('endcredit', <<'EOT'
|
6436
6469
|
Specifies an amount that is credited to the accounts specified by the
|
6437
|
-
[[chargeset]] attributes at the moment the
|
6470
|
+
[[chargeset]] attributes at the moment the task ends.
|
6438
6471
|
EOT
|
6439
6472
|
)
|
6440
6473
|
also('charge')
|
@@ -6466,7 +6499,7 @@ and global working hours are defined accordingly.
|
|
6466
6499
|
For the length calculation, the global working hours and the global leaves
|
6467
6500
|
matter unless the task has [[shifts.task|shifts]] assigned. In the latter case
|
6468
6501
|
the working hours and leaves of the shift apply for the specified period to
|
6469
|
-
determine if a slot is working time or not. If a resource has
|
6502
|
+
determine if a slot is working time or not. If a resource has additional
|
6470
6503
|
working hours defined, it's quite possible that a task with a length of 5d
|
6471
6504
|
will have an allocated effort larger than 40 hours. Resource working hours
|
6472
6505
|
only have an impact on whether an allocation is made or not for a particular
|
@@ -6514,7 +6547,7 @@ EOT
|
|
6514
6547
|
})
|
6515
6548
|
doc('milestone', <<'EOT'
|
6516
6549
|
Turns the task into a special task that has no duration. You may not specify a
|
6517
|
-
duration, length, effort or
|
6550
|
+
duration, length, effort or subtask for a milestone task.
|
6518
6551
|
|
6519
6552
|
A task that only has a start or an end specification and no duration
|
6520
6553
|
specification, inherited start or end dates, no dependencies or sub tasks,
|
@@ -6551,7 +6584,7 @@ EOT
|
|
6551
6584
|
level(:deprecated)
|
6552
6585
|
doc('startcredit', <<'EOT'
|
6553
6586
|
Specifies an amount that is credited to the account specified by the
|
6554
|
-
[[chargeset]] attributes at the moment the
|
6587
|
+
[[chargeset]] attributes at the moment the task starts.
|
6555
6588
|
EOT
|
6556
6589
|
)
|
6557
6590
|
also('charge')
|
@@ -6566,14 +6599,14 @@ EOT
|
|
6566
6599
|
end
|
6567
6600
|
})
|
6568
6601
|
doc('precedes', <<'EOT'
|
6569
|
-
Specifies that the tasks with the specified IDs cannot start before
|
6602
|
+
Specifies that the tasks with the specified IDs cannot start before this task
|
6570
6603
|
has been finished. If multiple IDs are specified, they must be separated by
|
6571
6604
|
commas. IDs must be either global or relative. A relative ID starts with a
|
6572
6605
|
number of '!'. Each '!' moves the scope to the parent task. Global IDs do not
|
6573
6606
|
contain '!', but have IDs separated by dots.
|
6574
6607
|
|
6575
6608
|
By using the 'precedes' attribute, the scheduling policy is automatically set
|
6576
|
-
to
|
6609
|
+
to ALAP. If both depends and precedes are used within a task, the last policy
|
6577
6610
|
counts.
|
6578
6611
|
EOT
|
6579
6612
|
)
|
@@ -6589,13 +6622,13 @@ EOT
|
|
6589
6622
|
Specifies the priority of the task. A task with higher priority is more
|
6590
6623
|
likely to get the requested resources. The default priority value of all tasks
|
6591
6624
|
is 500. Don't confuse the priority of a tasks with the importance or urgency
|
6592
|
-
of a task. It only increases the chances that the
|
6625
|
+
of a task. It only increases the chances that the task gets the requested
|
6593
6626
|
resources. It does not mean that the task happens earlier, though that is
|
6594
6627
|
usually the effect you will see. It also does not have any effect on tasks
|
6595
6628
|
that don't have any resources assigned (e.g. milestones).
|
6596
6629
|
|
6597
|
-
For milestones it will raise or lower the chances that
|
6598
|
-
milestone will get their resources over
|
6630
|
+
For milestones, it will raise or lower the chances that tasks leading up the
|
6631
|
+
milestone will get their resources over tasks with equal priority that compete
|
6599
6632
|
for the same resources.
|
6600
6633
|
|
6601
6634
|
This attribute is inherited by subtasks if specified prior to the definition
|
@@ -6613,12 +6646,12 @@ EOT
|
|
6613
6646
|
begin
|
6614
6647
|
@property['projectid', @scenarioIdx] = @val[1]
|
6615
6648
|
rescue AttributeOverwrite
|
6616
|
-
# This attribute always overwrites the
|
6649
|
+
# This attribute always overwrites the implicitly provided ID.
|
6617
6650
|
end
|
6618
6651
|
})
|
6619
6652
|
doc('projectid.task', <<'EOT'
|
6620
|
-
In larger projects it may be
|
6621
|
-
parts of the project. This attribute assignes a new project ID to this task
|
6653
|
+
In larger projects it may be desirable to work with different project IDs for
|
6654
|
+
parts of the project. This attribute assignes a new project ID to this task and
|
6622
6655
|
all subsequently defined sub tasks. The project ID needs to be declared first using [[projectid]] or [[projectids]].
|
6623
6656
|
EOT
|
6624
6657
|
)
|
@@ -6662,8 +6695,8 @@ EOT
|
|
6662
6695
|
})
|
6663
6696
|
doc('scheduling', <<'EOT'
|
6664
6697
|
Specifies the scheduling policy for the task. A task can be scheduled from
|
6665
|
-
start to end (As Soon As Possible,
|
6666
|
-
Possible,
|
6698
|
+
start to end (As Soon As Possible, ASAP) or from end to start (As Late As
|
6699
|
+
Possible, ALAP).
|
6667
6700
|
|
6668
6701
|
A task can be scheduled from start to end (ASAP mode) when it has a hard
|
6669
6702
|
(start) or soft (depends) criteria for the start time. A task can be scheduled
|
@@ -6672,21 +6705,21 @@ criteria for the end time.
|
|
6672
6705
|
|
6673
6706
|
Some task attributes set the scheduling policy implicitly. This attribute can
|
6674
6707
|
be used to explicitly set the scheduling policy of the task to a certain
|
6675
|
-
direction. To avoid it being overwritten again by an implicit attribute this
|
6708
|
+
direction. To avoid it being overwritten again by an implicit attribute, this
|
6676
6709
|
attribute should always be the last attribute of the task.
|
6677
6710
|
|
6678
6711
|
A random mixture of ASAP and ALAP tasks can have unexpected side effects on
|
6679
6712
|
the scheduling of the project. It increases significantly the scheduling
|
6680
6713
|
complexity and results in much longer scheduling times. Especially in projects
|
6681
|
-
with many hundreds of tasks the scheduling time of a project with a mixture of
|
6682
|
-
ASAP and ALAP times can be 2 to 10 times longer. When the
|
6683
|
-
chains of ALAP and ASAP tasks the tasks further down the dependency chain will
|
6684
|
-
be served much later than other non-chained
|
6714
|
+
with many hundreds of tasks, the scheduling time of a project with a mixture of
|
6715
|
+
ASAP and ALAP times can be 2 to 10 times longer. When the project contains
|
6716
|
+
chains of ALAP and ASAP tasks, the tasks further down the dependency chain will
|
6717
|
+
be served much later than other non-chained tasks, even when they have a much
|
6685
6718
|
higher priority. This can result in situations where high priority tasks do
|
6686
|
-
not get their resources even though the parallel competing tasks have a much
|
6719
|
+
not get their resources, even though the parallel competing tasks have a much
|
6687
6720
|
lower priority.
|
6688
6721
|
|
6689
|
-
ALAP tasks may not have [[booking.task|bookings]] since the first booked slot
|
6722
|
+
ALAP tasks may not have [[booking.task|bookings]], since the first booked slot
|
6690
6723
|
determines the start date of the task and prevents it from being scheduled
|
6691
6724
|
from end to start.
|
6692
6725
|
|
@@ -6745,7 +6778,7 @@ EOT
|
|
6745
6778
|
Limits the working time for this task during the specified interval
|
6746
6779
|
to the working hours of the given shift. Multiple shifts can be defined, but
|
6747
6780
|
shift intervals may not overlap. This is an additional working time
|
6748
|
-
restriction
|
6781
|
+
restriction on top of the working hours of the allocated resources. It does not
|
6749
6782
|
replace the resource working hour restrictions. For a resource to be assigned
|
6750
6783
|
to a time slot, both the respective task shift as well as the resource working
|
6751
6784
|
hours must declare the time slot as duty slot.
|
@@ -6763,10 +6796,10 @@ EOT
|
|
6763
6796
|
The start attribute provides a guideline to the scheduler when the task should
|
6764
6797
|
start. It will never start earlier, but it may start later when allocated
|
6765
6798
|
resources are not available immediately. When a start date is provided for a
|
6766
|
-
container task, it will be passed down to ASAP
|
6799
|
+
container task, it will be passed down to ASAP tasks that don't have a well
|
6767
6800
|
defined start criteria.
|
6768
6801
|
|
6769
|
-
Setting a start date will
|
6802
|
+
Setting a start date will implicitly set the scheduling policy for this task
|
6770
6803
|
to ASAP.
|
6771
6804
|
EOT
|
6772
6805
|
)
|
@@ -6794,7 +6827,7 @@ EOT
|
|
6794
6827
|
@property = @property.parent
|
6795
6828
|
})
|
6796
6829
|
doc('textreport', <<'EOT'
|
6797
|
-
This report consists of 5
|
6830
|
+
This report consists of 5 [[Rich_Text_Attributes|Rich Text]] sections, a header, a center section with a
|
6798
6831
|
left and right margin and a footer. The sections may contain the output of
|
6799
6832
|
other defined reports.
|
6800
6833
|
EOT
|
@@ -6819,7 +6852,7 @@ EOT
|
|
6819
6852
|
arg(1, 'format', <<'EOT'
|
6820
6853
|
Ordinary characters placed in the format string are copied without
|
6821
6854
|
conversion. Conversion specifiers are introduced by a `%' character, and are
|
6822
|
-
replaced
|
6855
|
+
replaced as follows:
|
6823
6856
|
|
6824
6857
|
* ''''%a'''' The abbreviated weekday name according to the current locale.
|
6825
6858
|
|
@@ -6979,7 +7012,7 @@ The work is booked for the scenario specified by [[trackingscenario]].
|
|
6979
7012
|
|
6980
7013
|
The intended use for time sheets is to have all resources report a time sheet
|
6981
7014
|
every day, week or month. All time sheets can be added to the project plan.
|
6982
|
-
The status information is always used to
|
7015
|
+
The status information is always used to determine the current status of the
|
6983
7016
|
project. The [[work]], [[remaining]] and [[end.timesheet|end]] attributes are
|
6984
7017
|
ignored if there are also [[booking.task|bookings]] for the resource in the
|
6985
7018
|
time sheet period. The non-ignored attributes of the time sheets will be
|
@@ -7014,7 +7047,7 @@ EOT
|
|
7014
7047
|
})
|
7015
7048
|
doc('newtask', <<'EOT'
|
7016
7049
|
The keyword can be used to request a new task to the project. If the task ID
|
7017
|
-
requires further parent
|
7050
|
+
requires further parent tasks that don't exist yet, these tasks will be
|
7018
7051
|
requested as well. If the task exists already, an error will be generated. The
|
7019
7052
|
newly requested task can be used immediately to report progress and status
|
7020
7053
|
against it. These tasks will not automatically be added to the project plan.
|
@@ -7148,14 +7181,14 @@ the [[columns]] attribute. This column set is then repeated for all properties
|
|
7148
7181
|
that are not hidden by [[hideaccount]], [[hideresource]] and [[hidetask]]. By
|
7149
7182
|
default, all properties are excluded. You must provide at least one of the
|
7150
7183
|
''''hide...'''' attributes to select the properties you want to have included
|
7151
|
-
in the report. Please be aware that total number of columns is the product of
|
7184
|
+
in the report. Please be aware that the total number of columns is the product of
|
7152
7185
|
attributes defined with [[columns]] times the number of included properties.
|
7153
|
-
Select
|
7186
|
+
Select your values carefully or you will end up with very large reports.
|
7154
7187
|
|
7155
7188
|
The column headers can be customized by using the [[title.column|title]]
|
7156
7189
|
attribute. When you include multiple properties, these headers are not unique
|
7157
|
-
unless you include mini-queries to modify them based on the property
|
7158
|
-
|
7190
|
+
unless you include mini-queries to modify them based on the property the
|
7191
|
+
column is representing. You can use the queries
|
7159
7192
|
''''<nowiki><-id-></nowiki>'''', ''''<nowiki><-name-></nowiki>'''',
|
7160
7193
|
''''<nowiki><-scenario-></nowiki>'''' and
|
7161
7194
|
''''<nowiki><-attribute-></nowiki>''''. ''''<nowiki><-id-></nowiki>'''' is
|
@@ -7170,12 +7203,12 @@ shows the tracked values over time will be generated. The CSV file may contain
|
|
7170
7203
|
all kinds of values that are being tracked. Report formats that don't support
|
7171
7204
|
a mix of different values will just show the values of the second column.
|
7172
7205
|
|
7173
|
-
The values in the CSV files are fixed units and cannot be
|
7206
|
+
The values in the CSV files are fixed units and cannot be formatted. Effort
|
7174
7207
|
values are always in resource-days. This allows other software to interpret
|
7175
7208
|
the file without any need for additional context information.
|
7176
7209
|
|
7177
7210
|
The HTML version generates SVG graphs that are embedded in the HTML page.
|
7178
|
-
These graphs are only
|
7211
|
+
These graphs are only visible if the web browser supports HTML5. This is true
|
7179
7212
|
for the latest generation of browsers, but older browsers may not support this
|
7180
7213
|
format.
|
7181
7214
|
EOT
|
@@ -7187,7 +7220,7 @@ EOT
|
|
7187
7220
|
pattern(%w( _tracereport !optionalID !reportName ), lambda {
|
7188
7221
|
newReport(@val[1], @val[2], :tracereport, @sourceFileInfo[0]) do
|
7189
7222
|
# The top-level always inherits the global timeFormat setting. This is
|
7190
|
-
# not
|
7223
|
+
# not desirable in this case, so we ignore this.
|
7191
7224
|
if (@property.level == 0 && !@property.provided('timeFormat')) ||
|
7192
7225
|
(@property.level > 0 && !@property.modified?('timeFormat'))
|
7193
7226
|
# CSV readers such of Libre-/OpenOffice can't deal with time zones. We
|
@@ -7370,7 +7403,7 @@ EOT
|
|
7370
7403
|
})
|
7371
7404
|
doc('end.timesheet', <<'EOT'
|
7372
7405
|
The expected end date for the task. This can only be used for duration based
|
7373
|
-
|
7406
|
+
tasks. For effort based tasks [[remaining]] has to be used.
|
7374
7407
|
EOT
|
7375
7408
|
)
|
7376
7409
|
example('TimeSheet1', '5')
|
@@ -7386,7 +7419,7 @@ EOT
|
|
7386
7419
|
})
|
7387
7420
|
doc('priority.timesheet', <<'EOT'
|
7388
7421
|
The priority is a value between 1 and 1000. It is used to determine the
|
7389
|
-
sequence of
|
7422
|
+
sequence of tasks when converting [[work]] to [[booking.task|bookings]]. Tasks
|
7390
7423
|
that need to finish earlier in the period should have a high priority, tasks
|
7391
7424
|
that end later in the period should have a low priority. For tasks that don't
|
7392
7425
|
get finished in the reported period the priority should be set to 1.
|
@@ -7400,7 +7433,7 @@ EOT
|
|
7400
7433
|
The remaining effort for the task. This value is ignored if there are
|
7401
7434
|
[[booking.task|bookings]] for the resource that overlap with the time sheet
|
7402
7435
|
period. If there are no bookings, the value is compared with the [[effort]]
|
7403
|
-
specification of the task. If there a mismatch between the accumulated effort
|
7436
|
+
specification of the task. If there is a mismatch between the accumulated effort
|
7404
7437
|
specified with bookings, [[work]] and [[remaining]] on one side and the
|
7405
7438
|
specified [[effort]] on the other, a warning is generated.
|
7406
7439
|
|
@@ -7416,7 +7449,7 @@ EOT
|
|
7416
7449
|
@timeSheetRecord.work = @val[1]
|
7417
7450
|
})
|
7418
7451
|
doc('work', <<'EOT'
|
7419
|
-
The amount of time that the resource has
|
7452
|
+
The amount of time that the resource has spent with the task during the
|
7420
7453
|
reported period. This value is ignored when there are
|
7421
7454
|
[[booking.task|bookings]] for the resource overlapping with the time sheet
|
7422
7455
|
period. If there are no bookings, TaskJuggler will try to convert the work
|
@@ -7552,7 +7585,7 @@ specifications are 0 extended. An end date without a time is expanded to
|
|
7552
7585
|
midnight that day. So the day of the end date is not included in the interval!
|
7553
7586
|
The start and end dates must be separated by a hyphen character.
|
7554
7587
|
|
7555
|
-
|
7588
|
+
The second form specifies the start date and an interval duration. The
|
7556
7589
|
duration must be prefixed by a plus character.
|
7557
7590
|
EOT
|
7558
7591
|
)
|
@@ -7572,7 +7605,7 @@ EOT
|
|
7572
7605
|
doc('warn', <<'EOT'
|
7573
7606
|
The warn attribute adds a [[logicalexpression|logical expression]] to the
|
7574
7607
|
property. The condition described by the logical expression is checked after
|
7575
|
-
the scheduling and
|
7608
|
+
the scheduling and a warning is generated if the condition evaluates to true.
|
7576
7609
|
This attribute is primarily intended for testing purposes.
|
7577
7610
|
EOT
|
7578
7611
|
)
|
@@ -7708,7 +7741,7 @@ EOT
|
|
7708
7741
|
pattern(%w( !workinghours ))
|
7709
7742
|
doc('workinghours.project', <<'EOT'
|
7710
7743
|
Set the default working hours for all subsequent resource definitions. The
|
7711
|
-
standard working hours are 9:00am - 12:00am, 1:00pm -
|
7744
|
+
standard working hours are 9:00am - 12:00am, 1:00pm - 6:00pm, Monday to
|
7712
7745
|
Friday. The working hours specification limits the availability of resources
|
7713
7746
|
to certain time slots of week days.
|
7714
7747
|
|