##// END OF EJS Templates
Added wiki diff....
Added wiki diff. Diff can be viewed from the page history, or directly from the project activity page for each edit. Uses Lars Christensen's diff library. git-svn-id: http://redmine.rubyforge.org/svn/trunk@583 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r555:4dddb606a6d2
r580:5e20417e6d52
Show More
issue_status.rb
58 lines | 2.4 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 IssueStatus < ActiveRecord::Base
before_destroy :check_integrity
Jean-Philippe Lang
Added :dependent => :delete_all on IssueStatus Workflow association....
r555 has_many :workflows, :foreign_key => "old_status_id", :dependent => :delete_all
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 acts_as_list
validates_presence_of :name
validates_uniqueness_of :name
validates_format_of :name, :with => /^[\w\s\'\-]*$/i
validates_length_of :html_color, :is => 6
validates_format_of :html_color, :with => /^[a-f0-9]*$/i
def before_save
IssueStatus.update_all "is_default=#{connection.quoted_false}" if self.is_default?
end
# Returns the default status for new issues
def self.default
find(:first, :conditions =>["is_default=?", true])
end
# 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
added svn:eol-style native property on /app files...
r330 def new_statuses_allowed_to(role, tracker)
Jean-Philippe Lang
The ability to change the issue status to the same status is no longer forced....
r467 new_statuses = workflows.select {|w| w.role_id == role.id && w.tracker_id == tracker.id}.collect{|w| w.new_status} if role && tracker
Jean-Philippe Lang
Fixed: default status not showing in new issue...
r472 new_statuses ? new_statuses.sort{|x, y| x.position <=> y.position } : []
Jean-Philippe Lang
Various code cleaning, mainly on User, Permission and IssueStatus models....
r411 end
# Same thing as above but uses a database query
# More efficient than the previous method if called just once
def find_new_statuses_allowed_to(role, tracker)
Jean-Philippe Lang
The ability to change the issue status to the same status is no longer forced....
r467 new_statuses = workflows.find(:all,
Jean-Philippe Lang
Fixed a regression (crash when an admin with no role on the project try to create an issue)...
r417 :include => :new_status,
Jean-Philippe Lang
Added :dependent => :delete_all on IssueStatus Workflow association....
r555 :conditions => ["role_id=? and tracker_id=?", role.id, tracker.id]).collect{ |w| w.new_status }.compact if role && tracker
Jean-Philippe Lang
Fixed: default status not showing in new issue...
r472 new_statuses ? new_statuses.sort{|x, y| x.position <=> y.position } : []
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 end
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
end