summaryrefslogtreecommitdiffstats
path: root/app/models/version.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/version.rb')
-rw-r--r--app/models/version.rb12
1 files changed, 11 insertions, 1 deletions
diff --git a/app/models/version.rb b/app/models/version.rb
index 463ca3354..a4e93118e 100644
--- a/app/models/version.rb
+++ b/app/models/version.rb
@@ -23,7 +23,7 @@ class Version < ActiveRecord::Base
validates_presence_of :name
validates_uniqueness_of :name, :scope => [:project_id]
- validates_format_of :effective_date, :with => /^\d{4}-\d{2}-\d{2}$/, :message => :activerecord_error_not_a_date
+ validates_format_of :effective_date, :with => /^\d{4}-\d{2}-\d{2}$/, :message => :activerecord_error_not_a_date, :allow_nil => true
def start_date
effective_date
@@ -37,6 +37,16 @@ class Version < ActiveRecord::Base
effective_date && effective_date <= Date.today
end
+ # 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
+
private
def check_integrity
raise "Can't delete version" if self.fixed_issues.find(:first)