Added bulk issue assignment by version. #1157

This commit is contained in:
Eric Davis
2008-06-03 15:17:11 -07:00
parent 322013f4a0
commit e1cea90cd0
5 changed files with 36 additions and 7 deletions
@@ -94,6 +94,18 @@ class DeliverablesController < ApplicationController
redirect_to :controller => 'issues', :action => 'index', :project_id => @project.id redirect_to :controller => 'issues', :action => 'index', :project_id => @project.id
end 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 private
def find_project def find_project
@project = Project.find(params[:id]) @project = Project.find(params[:id])
+11
View File
@@ -5,6 +5,17 @@ class Deliverable < ActiveRecord::Base
belongs_to :project belongs_to :project
has_many :issues 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 def score
return self.progress - self.budget_ratio return self.progress - self.budget_ratio
end end
+11 -6
View File
@@ -25,10 +25,15 @@
"</dl>", "</dl>",
:colspan => 4) %> :colspan => 4) %>
<%= content_tag( <td colspan="4">
:td, <%= content_tag(:p,link_to("Assigned Issues", :action => 'issues', :id => @project.id, :deliverable_id => deliverable.id)) -%>
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("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))) -%>
content_tag(:p,link_to("Delete", { :action => 'destroy', :id => @project.id, :deliverable_id => deliverable.id}, :confirm => l(:text_are_you_sure))), <p>
:colspan => 4) %> <%= 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> </tr>
+1 -1
View File
@@ -24,7 +24,7 @@ Redmine::Plugin.register :budget_plugin do
project_module :budget_module do project_module :budget_module do
permission :view_budget, { :deliverables => [:index, :issues]} 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 end
menu :project_menu, :budget, :controller => "deliverables", :action => 'index' menu :project_menu, :budget, :controller => "deliverables", :action => 'index'
+1
View File
@@ -10,3 +10,4 @@ field_client_signoff: Client Signoff
field_deliverable: Deliverable field_deliverable: Deliverable
field_deliverable_subject: Deliverable field_deliverable_subject: Deliverable
label_member_rate: Rate ($) label_member_rate: Rate ($)
message_updated_issues: Updated %d issues