X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/d0e291552e5da004f1582d7ce577b8ccf7f546df..b3d62bb85a03a0b68068d3d2e7801ec2cd2e3e7b:/app/models/map_bug.rb diff --git a/app/models/map_bug.rb b/app/models/map_bug.rb index e04e180be..0effe38dd 100644 --- a/app/models/map_bug.rb +++ b/app/models/map_bug.rb @@ -9,9 +9,10 @@ class MapBug < ActiveRecord::Base validates_numericality_of :longitude, :only_integer => true validates_presence_of :date_created validates_presence_of :last_changed + validates_prensence_of :date_closed if :status == "closed" validates_inclusion_of :status, :in => [ "open", "closed", "hidden" ] - has_many :map_bug_comment, :foreign_key => :bug_id, :order => :date_created, :conditions => { :visible => true } + has_many :map_bug_comment, :foreign_key => :bug_id, :order => :date_created, :conditions => "visible = true and comment is not null" def self.create_bug(lat, lon) @@ -25,14 +26,18 @@ class MapBug < ActiveRecord::Base def close_bug self.status = "closed" - self.last_changed = Time.now.getutc + close_time = Time.now.getutc + self.last_changed = close_time + self.date_closed = close_time + self.save; end - def flatten_comment ( separator_char ) + def flatten_comment ( separator_char, upto_timestamp = :nil) resp = "" comment_no = 1 self.map_bug_comment.each do |comment| + next if upto_timestamp != :nil and comment.date_created > upto_timestamp resp += (comment_no == 1 ? "" : separator_char) resp += comment.comment if comment.comment resp += " [ " @@ -45,4 +50,8 @@ class MapBug < ActiveRecord::Base end + def visible + return status != "hidden" + end + end