[#5482] Add issue grouping by deliverable
This commit is contained in:
@@ -89,7 +89,7 @@ Dispatcher.to_prepare :redmine_contracts do
|
||||
end
|
||||
|
||||
unless Query.available_columns.collect(&:name).include?(:deliverable_title)
|
||||
Query.add_available_column(QueryColumn.new(:deliverable_title, :sortable => "#{Deliverable.table_name}.title"))
|
||||
Query.add_available_column(QueryColumn.new(:deliverable_title, :sortable => "#{Deliverable.table_name}.title", :groupable => 'deliverable'))
|
||||
end
|
||||
|
||||
unless Query.available_columns.collect(&:name).include?(:contract_name)
|
||||
|
||||
@@ -12,6 +12,8 @@ module RedmineContracts
|
||||
alias_method_chain :available_filters, :contract
|
||||
|
||||
alias_method_chain :sql_for_field, :contract
|
||||
|
||||
alias_method_chain :issues, :deliverable
|
||||
end
|
||||
end
|
||||
|
||||
@@ -83,6 +85,19 @@ module RedmineContracts
|
||||
end
|
||||
end
|
||||
|
||||
# Add the deliverables into the includes
|
||||
#
|
||||
# Used with grouping
|
||||
def issues_with_deliverable(options={})
|
||||
options[:include] ||= []
|
||||
options[:include] << :deliverable
|
||||
|
||||
issues_without_deliverable(options)
|
||||
end
|
||||
|
||||
# TODO: core bug: Query#issue_count_by_group doesn't allow setting
|
||||
# options like Query#issue does.
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
require 'test_helper'
|
||||
|
||||
class IssueFilteringTest < ActionController::IntegrationTest
|
||||
include Redmine::I18n
|
||||
|
||||
def setup
|
||||
@project = Project.generate!(:identifier => 'main')
|
||||
@contract = Contract.generate!(:project => @project)
|
||||
@manager = User.generate!
|
||||
@deliverable = FixedDeliverable.generate!(:contract => @contract, :manager => @manager)
|
||||
@user = User.generate_user_with_permission_to_manage_budget(:project => @project).reload
|
||||
@user.admin = true # Getting odd permissions issues
|
||||
@user.save
|
||||
@issue1 = Issue.generate_for_project!(@project)
|
||||
@issue2 = Issue.generate_for_project!(@project, :deliverable => @deliverable)
|
||||
assert_equal @deliverable, @issue2.deliverable
|
||||
|
||||
login_as(@user.login, 'contracts')
|
||||
end
|
||||
|
||||
should "allow grouping issues by deliverable" do
|
||||
visit_project(@project)
|
||||
click_link "Issues"
|
||||
|
||||
assert_select '#group_by' do
|
||||
assert_select 'option', "Deliverable"
|
||||
end
|
||||
|
||||
select "Deliverable", :from => 'group_by'
|
||||
|
||||
# Apply link is behind a JavaScript form
|
||||
visit "/projects/#{@project.identifier}/issues/?set_filter&group_by=deliverable_title"
|
||||
assert_response :success
|
||||
|
||||
assert_select "tr.group" do
|
||||
assert_select "td", :text => /None/
|
||||
end
|
||||
|
||||
assert_select "tr.group" do
|
||||
assert_select "td", :text => Regexp.new(@deliverable.title)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user