summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2008-01-12 12:05:31 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2008-01-12 12:05:31 +0000
commit2c9b04fdfd0c5c5488b1a82285b820604c6f0e9d (patch)
tree4f486bc75ec9588e8d32e7952e11ed73f2cba1ba
parentd82334dd787cf6ff6392ed45777fa1c98f2f4196 (diff)
downloadredmine-2c9b04fdfd0c5c5488b1a82285b820604c6f0e9d.tar.gz
redmine-2c9b04fdfd0c5c5488b1a82285b820604c6f0e9d.zip
Subprojects inherit versions from their parent project (can be disabled in Admin -> Settings -> Projects).
git-svn-id: http://redmine.rubyforge.org/svn/branches/work@1055 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--project_inheritance/app/controllers/reports_controller.rb4
-rw-r--r--project_inheritance/app/models/project.rb6
-rw-r--r--project_inheritance/app/models/query.rb2
-rw-r--r--project_inheritance/app/views/issues/_form.rhtml2
-rw-r--r--project_inheritance/app/views/settings/_projects.rhtml4
-rw-r--r--project_inheritance/config/settings.yml2
6 files changed, 16 insertions, 4 deletions
diff --git a/project_inheritance/app/controllers/reports_controller.rb b/project_inheritance/app/controllers/reports_controller.rb
index e18e117a6..cca0b37ab 100644
--- a/project_inheritance/app/controllers/reports_controller.rb
+++ b/project_inheritance/app/controllers/reports_controller.rb
@@ -31,7 +31,7 @@ class ReportsController < ApplicationController
render :template => "reports/issue_report_details"
when "version"
@field = "fixed_version_id"
- @rows = @project.versions.sort
+ @rows = @project.assignable_versions
@data = issues_by_version
@report_title = l(:field_version)
render :template => "reports/issue_report_details"
@@ -61,7 +61,7 @@ class ReportsController < ApplicationController
render :template => "reports/issue_report_details"
else
@trackers = @project.trackers
- @versions = @project.versions.sort
+ @versions = @project.assignable_versions
@priorities = Enumeration::get_values('IPRI')
@categories = @project.issue_categories
@authors = @project.members.collect { |m| m.user }
diff --git a/project_inheritance/app/models/project.rb b/project_inheritance/app/models/project.rb
index 2829af5f7..16f81a08b 100644
--- a/project_inheritance/app/models/project.rb
+++ b/project_inheritance/app/models/project.rb
@@ -158,6 +158,12 @@ class Project < ActiveRecord::Base
m.select {|m| m.role.assignable?}.collect {|m| m.user}.uniq.sort
end
+ def assignable_versions
+ v = versions
+ v += parent.versions if Setting.subprojects_inherit_versions? && parent
+ v.sort
+ end
+
# Returns the mail adresses of users that should be always notified on project events
def recipients
members.select {|m| m.mail_notification? || m.user.mail_notification?}.collect {|m| m.user.mail}
diff --git a/project_inheritance/app/models/query.rb b/project_inheritance/app/models/query.rb
index 61a559d16..afdae5946 100644
--- a/project_inheritance/app/models/query.rb
+++ b/project_inheritance/app/models/query.rb
@@ -156,7 +156,7 @@ class Query < ActiveRecord::Base
if project
# project specific filters
@available_filters["category_id"] = { :type => :list_optional, :order => 6, :values => @project.issue_categories.collect{|s| [s.name, s.id.to_s] } }
- @available_filters["fixed_version_id"] = { :type => :list_optional, :order => 7, :values => @project.versions.sort.collect{|s| [s.name, s.id.to_s] } }
+ @available_filters["fixed_version_id"] = { :type => :list_optional, :order => 7, :values => @project.assignable_versions.collect{|s| [s.name, s.id.to_s] } }
unless @project.active_children.empty?
@available_filters["subproject_id"] = { :type => :list_one_or_more, :order => 13, :values => @project.active_children.collect{|s| [s.name, s.id.to_s] } }
end
diff --git a/project_inheritance/app/views/issues/_form.rhtml b/project_inheritance/app/views/issues/_form.rhtml
index 203d1cca3..fbf0a98f0 100644
--- a/project_inheritance/app/views/issues/_form.rhtml
+++ b/project_inheritance/app/views/issues/_form.rhtml
@@ -30,7 +30,7 @@
:rows => (@issue.description.blank? ? 10 : [[10, @issue.description.length / 50].max, 100].min),
:accesskey => accesskey(:edit),
:class => 'wiki-edit' %></p>
-<p><%= f.select :fixed_version_id, (@project.versions.sort.collect {|v| [v.name, v.id]}), { :include_blank => true } %></p>
+<p><%= f.select :fixed_version_id, (@project.assignable_versions.collect {|v| [v.name, v.id]}), { :include_blank => true } %></p>
<% for @custom_value in @custom_values %>
<p><%= custom_field_tag_with_label @custom_value %></p>
<% end %>
diff --git a/project_inheritance/app/views/settings/_projects.rhtml b/project_inheritance/app/views/settings/_projects.rhtml
index f58f37959..5dabba13c 100644
--- a/project_inheritance/app/views/settings/_projects.rhtml
+++ b/project_inheritance/app/views/settings/_projects.rhtml
@@ -4,6 +4,10 @@
<p><label><%= l(:setting_subprojects_inherit_members) %></label>
<%= check_box_tag 'settings[subprojects_inherit_members]', 1, Setting.subprojects_inherit_members? %>
<%= hidden_field_tag 'settings[subprojects_inherit_members]', 0 %></p>
+
+<p><label><%= l(:setting_subprojects_inherit_versions) %></label>
+<%= check_box_tag 'settings[subprojects_inherit_versions]', 1, Setting.subprojects_inherit_versions? %>
+<%= hidden_field_tag 'settings[subprojects_inherit_versions]', 0 %></p>
</div>
<%= submit_tag l(:button_save) %>
diff --git a/project_inheritance/config/settings.yml b/project_inheritance/config/settings.yml
index 64a7de752..d93c08c76 100644
--- a/project_inheritance/config/settings.yml
+++ b/project_inheritance/config/settings.yml
@@ -107,3 +107,5 @@ emails_footer:
To change your notification preferences, please click here: http://hostname/my/account
subprojects_inherit_members:
default: 1
+subprojects_inherit_versions:
+ default: 1