1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
#!/usr/bin/env ruby -w
# encoding: UTF-8
#
# = TaskListRE.rb -- The TaskJuggler III Project Management Software
#
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
# by Chris Schlaeger <cs@taskjuggler.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of version 2 of the GNU General Public License as
# published by the Free Software Foundation.
#
require 'taskjuggler/reports/TableReport'
require 'taskjuggler/reports/ReportTable'
require 'taskjuggler/TableColumnDefinition'
require 'taskjuggler/LogicalExpression'
class TaskJuggler
# This specialization of TableReport implements a task listing. It
# generates a list of tasks that can optionally have the allocated resources
# nested underneath each task line.
class TaskListRE < TableReport
# Create a new object and set some default values.
def initialize(report)
super
@table = ReportTable.new
@table.selfcontained = report.get('selfcontained')
@table.auxDir = report.get('auxdir')
end
# Generate the table in the intermediate format.
def generateIntermediateFormat
super
# Prepare the task list.
taskList = PropertyList.new(@project.tasks)
taskList.includeAdopted
taskList.setSorting(@report.get('sortTasks'))
taskList.query = @report.project.reportContexts.last.query
taskList = filterTaskList(taskList, nil, @report.get('hideTask'),
@report.get('rollupTask'),
@report.get('openNodes'))
taskList.sort!
taskList.checkForDuplicates(@report.sourceFileInfo)
# Prepare the resource list. Don't filter it yet! It would break the
# *_() LogicalFunctions.
resourceList = PropertyList.new(@project.resources)
resourceList.setSorting(@report.get('sortResources'))
resourceList.query = @report.project.reportContexts.last.query
resourceList.sort!
# Generate the table header.
@report.get('columns').each do |columnDescr|
adjustColumnPeriod(columnDescr, taskList, @report.get('scenarios'))
generateHeaderCell(columnDescr)
end
# Generate the list.
generateTaskList(taskList, resourceList, nil)
end
end
end
|