##// END OF EJS Templates
Added custom fields marked as "For all projects" to the csv export of the cross project issue list....
Added custom fields marked as "For all projects" to the csv export of the cross project issue list. git-svn-id: http://redmine.rubyforge.org/svn/trunk@933 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r895:9ad79612fed4
r920:c383486d711d
Show More
version.rb
88 lines | 3.0 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 Version < ActiveRecord::Base
before_destroy :check_integrity
belongs_to :project
has_many :fixed_issues, :class_name => 'Issue', :foreign_key => 'fixed_version_id'
has_many :attachments, :as => :container, :dependent => :destroy
validates_presence_of :name
validates_uniqueness_of :name, :scope => [:project_id]
Jean-Philippe Lang
Added several validates_length_of...
r590 validates_length_of :name, :maximum => 30
Jean-Philippe Lang
Versions can now be created with no date....
r533 validates_format_of :effective_date, :with => /^\d{4}-\d{2}-\d{2}$/, :message => :activerecord_error_not_a_date, :allow_nil => true
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330
Jean-Philippe Lang
Added versions due dates on gantt chart....
r425 def start_date
effective_date
end
def due_date
effective_date
end
Jean-Philippe Lang
Overdue versions (date reached and open issues > 0) are now always displayed on the roadmap....
r601 # Returns true if the version is completed: due date reached and no open issues
Jean-Philippe Lang
Added an option to see all versions in the roadmap view (including completed ones)....
r513 def completed?
Jean-Philippe Lang
Overdue versions (date reached and open issues > 0) are now always displayed on the roadmap....
r601 effective_date && (effective_date <= Date.today) && (open_issues_count == 0)
end
Jean-Philippe Lang
Roadmap: more accurate completion percentage calculation (done ratio of open issues is now taken into account)....
r895 def completed_pourcent
if fixed_issues.count == 0
0
elsif open_issues_count == 0
100
else
(closed_issues_count * 100 + Issue.sum('done_ratio', :include => 'status', :conditions => ["fixed_version_id = ? AND is_closed = ?", id, false]).to_f) / fixed_issues.count
end
end
Jean-Philippe Lang
Overdue versions (date reached and open issues > 0) are now always displayed on the roadmap....
r601 # Returns true if the version is overdue: due date reached and some open issues
def overdue?
effective_date && (effective_date < Date.today) && (open_issues_count > 0)
end
def open_issues_count
@open_issues_count ||= Issue.count(:all, :conditions => ["fixed_version_id = ? AND is_closed = ?", self.id, false], :include => :status)
end
def closed_issues_count
@closed_issues_count ||= Issue.count(:all, :conditions => ["fixed_version_id = ? AND is_closed = ?", self.id, true], :include => :status)
Jean-Philippe Lang
Added an option to see all versions in the roadmap view (including completed ones)....
r513 end
Jean-Philippe Lang
A wiki page can now be attached to each version....
r561 def wiki_page
if project.wiki && !wiki_page_title.blank?
@wiki_page ||= project.wiki.find_page(wiki_page_title)
end
@wiki_page
end
Jean-Philippe Lang
Added custom fields in issue related mail notifications....
r811 def to_s; name end
Jean-Philippe Lang
Versions can now be created with no date....
r533 # Versions are sorted by effective_date
# Those with no effective_date are at the end, sorted by name
def <=>(version)
if self.effective_date
version.effective_date ? (self.effective_date <=> version.effective_date) : -1
else
version.effective_date ? 1 : (self.name <=> version.name)
end
end
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 private
def check_integrity
raise "Can't delete version" if self.fixed_issues.find(:first)
end
Jean-Philippe Lang
Initial commit...
r2 end