##// END OF EJS Templates
Don't add the inclusion error when tracker is not set, the blank error is enough....
Don't add the inclusion error when tracker is not set, the blank error is enough. git-svn-id: http://svn.redmine.org/redmine/trunk@15492 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r14856:cda9c63d9c21
r15110:90d14b71b365
Show More
custom_field_enumeration.rb
80 lines | 2.3 KiB | text/x-ruby | RubyLexer
/ app / models / custom_field_enumeration.rb
# Redmine - project management software
# Copyright (C) 2006-2016 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
class CustomFieldEnumeration < ActiveRecord::Base
belongs_to :custom_field
attr_accessible :name, :active, :position
validates_presence_of :name, :position, :custom_field_id
validates_length_of :name, :maximum => 60
validates_numericality_of :position, :only_integer => true
before_create :set_position
scope :active, lambda { where(:active => true) }
def to_s
name.to_s
end
def objects_count
custom_values.count
end
def in_use?
objects_count > 0
end
alias :destroy_without_reassign :destroy
def destroy(reassign_to=nil)
if reassign_to
custom_values.update_all(:value => reassign_to.id.to_s)
end
destroy_without_reassign
end
def custom_values
custom_field.custom_values.where(:value => id.to_s)
end
def self.update_each(custom_field, attributes)
return unless attributes.is_a?(Hash)
transaction do
attributes.each do |enumeration_id, enumeration_attributes|
enumeration = custom_field.enumerations.find_by_id(enumeration_id)
if enumeration
enumeration.attributes = enumeration_attributes
unless enumeration.save
raise ActiveRecord::Rollback
end
end
end
end
end
def self.fields_for_order_statement(table=nil)
table ||= table_name
columns = ['position']
columns.uniq.map {|field| "#{table}.#{field}"}
end
private
def set_position
max = self.class.where(:custom_field_id => custom_field_id).maximum(:position) || 0
self.position = max + 1
end
end