##// END OF EJS Templates
Perf: don't load preferences for the anonymous user....
Perf: don't load preferences for the anonymous user. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9917 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r9453:ba5a052c8ca8
r9734:bd927eea88a6
Show More
issue_status.rb
104 lines | 3.6 KiB | text/x-ruby | RubyLexer
Toshi MARUYAMA
remove trailing white-spaces from app/models/issue_status.rb....
r6384 # Redmine - project management software
Jean-Philippe Lang
Copyright update....
r9453 # Copyright (C) 2006-2012 Jean-Philippe Lang
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 #
# 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.
Toshi MARUYAMA
remove trailing white-spaces from app/models/issue_status.rb....
r6384 #
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 # 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.
Toshi MARUYAMA
remove trailing white-spaces from app/models/issue_status.rb....
r6384 #
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 # 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 IssueStatus < ActiveRecord::Base
Toshi MARUYAMA
remove trailing white-spaces from app/models/issue_status.rb....
r6384 before_destroy :check_integrity
Jean-Philippe Lang
Fixed: Deleting statuses doesn't delete all workflow entries (#5811)....
r3767 has_many :workflows, :foreign_key => "old_status_id"
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 acts_as_list
Toshi MARUYAMA
remove trailing white-spaces from app/models/issue_status.rb....
r6384
Jean-Philippe Lang
Fixed: Deleting statuses doesn't delete all workflow entries (#5811)....
r3767 before_destroy :delete_workflows
Toshi MARUYAMA
Rails3: model: replace deprecated 'after_save' method at IssueStatus model...
r7316 after_save :update_default
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330
validates_presence_of :name
validates_uniqueness_of :name
Jean-Philippe Lang
Added several validates_length_of...
r590 validates_length_of :name, :maximum => 30
Jean-Philippe Lang
Allow blank value for IssueStatus#default_done_ratio....
r3043 validates_inclusion_of :default_done_ratio, :in => 0..100, :allow_nil => true
Toshi MARUYAMA
remove trailing white-spaces from app/models/issue_status.rb....
r6384
Toshi MARUYAMA
model: replace Rails2 "named_scope" to Rails3 "scope"...
r9355 scope :named, lambda {|arg| { :conditions => ["LOWER(#{table_name}.name) = LOWER(?)", arg.to_s.strip]}}
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330
Toshi MARUYAMA
Rails3: model: replace deprecated 'after_save' method at IssueStatus model...
r7316 def update_default
Jean-Philippe Lang
Fixed: the default status is lost when reordering issue statuses (#1955)....
r1909 IssueStatus.update_all("is_default=#{connection.quoted_false}", ['id <> ?', id]) if self.is_default?
Toshi MARUYAMA
remove trailing white-spaces from app/models/issue_status.rb....
r6384 end
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 # Returns the default status for new issues
def self.default
find(:first, :conditions =>["is_default=?", true])
end
Toshi MARUYAMA
remove trailing white-spaces from app/models/issue_status.rb....
r6384
Eric Davis
Adds a Setting to control how an Issue's done_ratio is calculated:...
r3037 # Update all the +Issues+ setting their done_ratio to the value of their +IssueStatus+
def self.update_issue_done_ratios
if Issue.use_status_for_done_ratio?
IssueStatus.find(:all, :conditions => ["default_done_ratio >= 0"]).each do |status|
Issue.update_all(["done_ratio = ?", status.default_done_ratio],
["status_id = ?", status.id])
end
end
return Issue.use_status_for_done_ratio?
end
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330
# Returns an array of all statuses the given role can switch to
Jean-Philippe Lang
Various code cleaning, mainly on User, Permission and IssueStatus models....
r411 # Uses association cache when called more than one time
Jean-Philippe Lang
Allow additional workflow transitions for issue author and assignee (#2732)....
r4775 def new_statuses_allowed_to(roles, tracker, author=false, assignee=false)
Jean-Philippe Lang
Allows multiple roles on the same project (#706). Prerequisite for user groups feature....
r2627 if roles && tracker
role_ids = roles.collect(&:id)
Jean-Philippe Lang
Allow additional workflow transitions for issue author and assignee (#2732)....
r4775 transitions = workflows.select do |w|
role_ids.include?(w.role_id) &&
Toshi MARUYAMA
remove trailing white-spaces from app/models/issue_status.rb....
r6384 w.tracker_id == tracker.id &&
Jean-Philippe Lang
Fixed: additional workflow transitions not available when set to both author and assignee (#8836)....
r6180 ((!w.author && !w.assignee) || (author && w.author) || (assignee && w.assignee))
Jean-Philippe Lang
Allow additional workflow transitions for issue author and assignee (#2732)....
r4775 end
transitions.collect{|w| w.new_status}.compact.sort
Jean-Philippe Lang
Allows multiple roles on the same project (#706). Prerequisite for user groups feature....
r2627 else
[]
end
Jean-Philippe Lang
Various code cleaning, mainly on User, Permission and IssueStatus models....
r411 end
Toshi MARUYAMA
remove trailing white-spaces from app/models/issue_status.rb....
r6384
Jean-Philippe Lang
Various code cleaning, mainly on User, Permission and IssueStatus models....
r411 # Same thing as above but uses a database query
# More efficient than the previous method if called just once
Jean-Philippe Lang
Allow additional workflow transitions for issue author and assignee (#2732)....
r4775 def find_new_statuses_allowed_to(roles, tracker, author=false, assignee=false)
Jean-Philippe Lang
Fixed: additional workflow transitions not available when set to both author and assignee (#8836)....
r6180 if roles.present? && tracker
conditions = "(author = :false AND assignee = :false)"
conditions << " OR author = :true" if author
conditions << " OR assignee = :true" if assignee
Toshi MARUYAMA
remove trailing white-spaces from app/models/issue_status.rb....
r6384
Jean-Philippe Lang
Allows multiple roles on the same project (#706). Prerequisite for user groups feature....
r2627 workflows.find(:all,
Jean-Philippe Lang
Fixed: additional workflow transitions not available when set to both author and assignee (#8836)....
r6180 :include => :new_status,
Toshi MARUYAMA
remove trailing white-spaces from app/models/issue_status.rb....
r6384 :conditions => ["role_id IN (:role_ids) AND tracker_id = :tracker_id AND (#{conditions})",
Jean-Philippe Lang
Fixed: additional workflow transitions not available when set to both author and assignee (#8836)....
r6180 {:role_ids => roles.collect(&:id), :tracker_id => tracker.id, :true => true, :false => false}
]
).collect{|w| w.new_status}.compact.sort
Jean-Philippe Lang
Allows multiple roles on the same project (#706). Prerequisite for user groups feature....
r2627 else
[]
end
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 end
Jean-Philippe Lang
Added the ability to customize columns of a saved query....
r771
Jean-Philippe Lang
Merged IssuesController change_status and add_note actions....
r1030 def <=>(status)
position <=> status.position
end
Toshi MARUYAMA
remove trailing white-spaces from app/models/issue_status.rb....
r6384
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
raise "Can't delete status" if Issue.find(:first, :conditions => ["status_id=?", self.id])
Jean-Philippe Lang
Initial commit...
r2 end
Toshi MARUYAMA
remove trailing white-spaces from app/models/issue_status.rb....
r6384
Jean-Philippe Lang
Fixed: Deleting statuses doesn't delete all workflow entries (#5811)....
r3767 # Deletes associated workflows
def delete_workflows
Workflow.delete_all(["old_status_id = :id OR new_status_id = :id", {:id => id}])
end
Jean-Philippe Lang
Initial commit...
r2 end