*** xls_export.rb 2010-09-22 15:19:06.000000000 +0400 --- xls_export_new.rb 2011-06-23 16:52:55.000000000 +0400 *************** *** 34,39 **** --- 34,50 ---- module Export module XLS unloadable + + def issue_list(issues, &block) + ancestors = [] + issues.each do |issue| + while (ancestors.any? && !issue.is_descendant_of?(ancestors.last)) + ancestors.pop + end + yield issue, ancestors.size + ancestors << issue unless issue.leaf? + end + end # options are # :relations - export relations *************** *** 87,94 **** group = false columns_width = [] idx = 0 ! # xls rows ! issues.each do |issue| if group_by_query == '1' new_group=query_get_group_column_name(issue,query) --- 98,105 ---- group = false columns_width = [] idx = 0 ! # xls rows ! issue_list(issues) do |issue, level| if group_by_query == '1' new_group=query_get_group_column_name(issue,query) *************** *** 113,119 **** lf_pos = get_value_width(issue.id) columns_width[0] = lf_pos unless columns_width[0] >= lf_pos ! last_prj = project issue_columns.each_with_index do |c, j| v = if c.is_a?(QueryCustomFieldColumn) --- 124,135 ---- lf_pos = get_value_width(issue.id) columns_width[0] = lf_pos unless columns_width[0] >= lf_pos ! last_prj = project ! ! if level > 0 ! s = s.to_s.rjust(level*2) + '► ' ! issue.subject = s + issue.subject ! end issue_columns.each_with_index do |c, j| v = if c.is_a?(QueryCustomFieldColumn) *************** *** 181,188 **** when :project last_prj = issue.send(c.name) last_prj ! else ! issue.respond_to?(c.name) ? issue.send(c.name) : c.value(issue) end end --- 197,204 ---- when :project last_prj = issue.send(c.name) last_prj ! else ! issue.respond_to?(c.name) ? issue.send(c.name) : c.value(issue) end end *************** *** 193,199 **** row << value end ! idx = idx + 1 end --- 209,215 ---- row << value end ! idx = idx + 1 end