Added bulk issue assignment by version. #1157
This commit is contained in:
@@ -94,6 +94,18 @@ class DeliverablesController < ApplicationController
|
||||
redirect_to :controller => 'issues', :action => 'index', :project_id => @project.id
|
||||
end
|
||||
|
||||
def bulk_assign_issues
|
||||
@deliverable = Deliverable.find_by_id_and_project_id(params[:deliverable_id], @project.id)
|
||||
|
||||
render_404 and return unless @deliverable
|
||||
render_403 and return unless @deliverable.editable_by?(User.current)
|
||||
|
||||
number_updated = @deliverable.assign_issues_by_version(params[:version][:id])
|
||||
|
||||
flash[:notice] = l(:message_updated_issues, number_updated)
|
||||
redirect_to :action => 'index', :id => @project.id
|
||||
end
|
||||
|
||||
private
|
||||
def find_project
|
||||
@project = Project.find(params[:id])
|
||||
|
||||
@@ -5,6 +5,17 @@ class Deliverable < ActiveRecord::Base
|
||||
belongs_to :project
|
||||
has_many :issues
|
||||
|
||||
def assign_issues_by_version(version_id)
|
||||
version = Version.find_by_id(version_id)
|
||||
return 0 if version.nil? || version.fixed_issues.blank?
|
||||
|
||||
version.fixed_issues.each do |issue|
|
||||
issue.update_attribute(:deliverable_id, self.id)
|
||||
end
|
||||
|
||||
return version.fixed_issues.size
|
||||
end
|
||||
|
||||
def score
|
||||
return self.progress - self.budget_ratio
|
||||
end
|
||||
|
||||
@@ -25,10 +25,15 @@
|
||||
"</dl>",
|
||||
:colspan => 4) %>
|
||||
|
||||
<%= content_tag(
|
||||
:td,
|
||||
content_tag(:p,link_to("Assigned Issues", :action => 'issues', :id => @project.id, :deliverable_id => deliverable.id)) +
|
||||
content_tag(:p,link_to("Edit", :action => 'edit', :id => @project.id, :deliverable_id => deliverable.id)) +
|
||||
content_tag(:p,link_to("Delete", { :action => 'destroy', :id => @project.id, :deliverable_id => deliverable.id}, :confirm => l(:text_are_you_sure))),
|
||||
:colspan => 4) %>
|
||||
<td colspan="4">
|
||||
<%= content_tag(:p,link_to("Assigned Issues", :action => 'issues', :id => @project.id, :deliverable_id => deliverable.id)) -%>
|
||||
<%= content_tag(:p,link_to("Edit", :action => 'edit', :id => @project.id, :deliverable_id => deliverable.id)) -%>
|
||||
<%= content_tag(:p,link_to("Delete", { :action => 'destroy', :id => @project.id, :deliverable_id => deliverable.id}, :confirm => l(:text_are_you_sure))) -%>
|
||||
<p>
|
||||
<%= form_tag(:action => 'bulk_assign_issues', :id => @project.id, :deliverable_id => deliverable.id) %>
|
||||
<%= select("version", "id", @project.versions.sort.collect {|v| [v.name, v.id ] }, { :include_blank => true }) %>
|
||||
<%= submit_tag(l(:button_change)) %></form>
|
||||
<% %>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
2
init.rb
2
init.rb
@@ -24,7 +24,7 @@ Redmine::Plugin.register :budget_plugin do
|
||||
|
||||
project_module :budget_module do
|
||||
permission :view_budget, { :deliverables => [:index, :issues]}
|
||||
permission :manage_budget, { :deliverables => [:new, :edit, :create, :update, :destroy, :preview]}
|
||||
permission :manage_budget, { :deliverables => [:new, :edit, :create, :update, :destroy, :preview, :bulk_assign_issues]}
|
||||
end
|
||||
|
||||
menu :project_menu, :budget, :controller => "deliverables", :action => 'index'
|
||||
|
||||
@@ -10,3 +10,4 @@ field_client_signoff: Client Signoff
|
||||
field_deliverable: Deliverable
|
||||
field_deliverable_subject: Deliverable
|
||||
label_member_rate: Rate ($)
|
||||
message_updated_issues: Updated %d issues
|
||||
|
||||
Reference in New Issue
Block a user