diff --git a/app/controllers/versions_controller.rb b/app/controllers/versions_controller.rb index bc3852f..b8056ec 100644 --- a/app/controllers/versions_controller.rb +++ b/app/controllers/versions_controller.rb @@ -146,7 +146,7 @@ class VersionsController < ApplicationController end def destroy - if @version.fixed_issues.empty? + if @version.fixed_issues.empty? and !@version.referenced_by_a_custom_field? @version.destroy respond_to do |format| format.html { redirect_back_or_default settings_project_path(@project, :tab => 'versions') } diff --git a/app/models/version.rb b/app/models/version.rb index ed5b628..3df4caa 100644 --- a/app/models/version.rb +++ b/app/models/version.rb @@ -168,6 +168,13 @@ class Version < ActiveRecord::Base @closed_issues_count end + def referenced_by_a_custom_field? + !CustomValue.where("custom_field_id IN (SELECT id + FROM #{CustomField.table_name} + WHERE field_format='version') + AND value = ?", id).empty? + end + def wiki_page if project.wiki && !wiki_page_title.blank? @wiki_page ||= project.wiki.find_page(wiki_page_title)