From 2c9b04fdfd0c5c5488b1a82285b820604c6f0e9d Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Sat, 12 Jan 2008 12:05:31 +0000 Subject: [PATCH] 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 --- project_inheritance/app/controllers/reports_controller.rb | 4 ++-- project_inheritance/app/models/project.rb | 6 ++++++ project_inheritance/app/models/query.rb | 2 +- project_inheritance/app/views/issues/_form.rhtml | 2 +- project_inheritance/app/views/settings/_projects.rhtml | 4 ++++ project_inheritance/config/settings.yml | 2 ++ 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' %>

-

<%= f.select :fixed_version_id, (@project.versions.sort.collect {|v| [v.name, v.id]}), { :include_blank => true } %>

+

<%= f.select :fixed_version_id, (@project.assignable_versions.collect {|v| [v.name, v.id]}), { :include_blank => true } %>

<% for @custom_value in @custom_values %>

<%= custom_field_tag_with_label @custom_value %>

<% 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 @@

<%= check_box_tag 'settings[subprojects_inherit_members]', 1, Setting.subprojects_inherit_members? %> <%= hidden_field_tag 'settings[subprojects_inherit_members]', 0 %>

+ +

+<%= check_box_tag 'settings[subprojects_inherit_versions]', 1, Setting.subprojects_inherit_versions? %> +<%= hidden_field_tag 'settings[subprojects_inherit_versions]', 0 %>

<%= 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