##// END OF EJS Templates
Allow the other format links to appear on the issue list (ATOM, PDF, CSV)....
Allow the other format links to appear on the issue list (ATOM, PDF, CSV). #2779 git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2487 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r2411:4601ed2f3aeb
r2425:befe278fa9a3
Show More
enumeration.rb
93 lines | 3.1 KiB | text/x-ruby | RubyLexer
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 # redMine - project management software
# Copyright (C) 2006 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 Enumeration < ActiveRecord::Base
Jean-Philippe Lang
Added position on Enumeration model....
r789 acts_as_list :scope => 'opt = \'#{opt}\''
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 before_destroy :check_integrity
validates_presence_of :opt, :name
validates_uniqueness_of :name, :scope => [:opt]
Jean-Philippe Lang
Added several validates_length_of...
r590 validates_length_of :name, :maximum => 30
Jean-Philippe Lang
Added position on Enumeration model....
r789
Jean-Philippe Lang
Ability to remove enumerations (activities, priorities, document categories) that are in use. Associated objects can be reassigned to another value (#1467)....
r1544 # Single table inheritance would be an option
Jean-Philippe Lang
Added position on Enumeration model....
r789 OPTIONS = {
Jean-Philippe Lang
Replaces Enumeration.get_values and Enumeration.default with named scopes....
r2411 "IPRI" => {:label => :enumeration_issue_priorities, :model => Issue, :foreign_key => :priority_id, :scope => :priorities},
"DCAT" => {:label => :enumeration_doc_categories, :model => Document, :foreign_key => :category_id, :scope => :document_categories},
"ACTI" => {:label => :enumeration_activities, :model => TimeEntry, :foreign_key => :activity_id, :scope => :activities}
Jean-Philippe Lang
Added position on Enumeration model....
r789 }.freeze
Jean-Philippe Lang
Replaces Enumeration.get_values and Enumeration.default with named scopes....
r2411 # Creates a named scope for each type of value. The scope has a +default+ method
# that returns the default value, or nil if no value is set as default.
# Example:
# Enumeration.priorities
# Enumeration.priorities.default
OPTIONS.each do |k, v|
next unless v[:scope]
named_scope v[:scope], :conditions => { :opt => k }, :order => 'position' do
def default
find(:first, :conditions => { :is_default => true })
end
end
Jean-Philippe Lang
Added position on Enumeration model....
r789 end
Jean-Philippe Lang
Added default value for enumerations....
r792
Jean-Philippe Lang
Replaces Enumeration.get_values and Enumeration.default with named scopes....
r2411 named_scope :values, lambda {|opt| { :conditions => { :opt => opt }, :order => 'position' } } do
def default
find(:first, :conditions => { :is_default => true })
end
Jean-Philippe Lang
Added default value for enumerations....
r792 end
Jean-Philippe Lang
Added position on Enumeration model....
r789
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 def option_name
Jean-Philippe Lang
Ability to remove enumerations (activities, priorities, document categories) that are in use. Associated objects can be reassigned to another value (#1467)....
r1544 OPTIONS[self.opt][:label]
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 end
Jean-Philippe Lang
Added default value for enumerations....
r792
def before_save
Jean-Philippe Lang
Fixed: default flag removed when editing a default enumeration (#2327)....
r2121 if is_default? && is_default_changed?
Enumeration.update_all("is_default = #{connection.quoted_false}", {:opt => opt})
end
Jean-Philippe Lang
Added default value for enumerations....
r792 end
Jean-Philippe Lang
Added position on Enumeration model....
r789
Jean-Philippe Lang
Ability to remove enumerations (activities, priorities, document categories) that are in use. Associated objects can be reassigned to another value (#1467)....
r1544 def objects_count
OPTIONS[self.opt][:model].count(:conditions => "#{OPTIONS[self.opt][:foreign_key]} = #{id}")
end
def in_use?
self.objects_count != 0
end
alias :destroy_without_reassign :destroy
# Destroy the enumeration
# If a enumeration is specified, objects are reassigned
def destroy(reassign_to = nil)
if reassign_to && reassign_to.is_a?(Enumeration)
OPTIONS[self.opt][:model].update_all("#{OPTIONS[self.opt][:foreign_key]} = #{reassign_to.id}", "#{OPTIONS[self.opt][:foreign_key]} = #{id}")
end
destroy_without_reassign
end
Jean-Philippe Lang
Added radio buttons on the documents list to sort documents by category, date, title or author....
r866 def <=>(enumeration)
position <=> enumeration.position
end
Jean-Philippe Lang
Added the ability to customize columns of a saved query....
r771 def to_s; name end
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 private
def check_integrity
Jean-Philippe Lang
Ability to remove enumerations (activities, priorities, document categories) that are in use. Associated objects can be reassigned to another value (#1467)....
r1544 raise "Can't delete enumeration" if self.in_use?
Jean-Philippe Lang
Initial commit...
r2 end
end