X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/c64ebb9139dd5a25b82b6e8170d3b554cf45d516..fa13a11a94a96e47582483503753ced3db438f6f:/app/models/changeset.rb diff --git a/app/models/changeset.rb b/app/models/changeset.rb index 53078b2e8..a1162b323 100644 --- a/app/models/changeset.rb +++ b/app/models/changeset.rb @@ -144,19 +144,9 @@ class Changeset < ActiveRecord::Base end def save_with_tags! - t = Time.now.getutc - # do the changeset update and the changeset tags update in the # same transaction to ensure consistency. Changeset.transaction do - # set the auto-close time to be one hour in the future unless - # that would make it more than 24h long, in which case clip to - # 24h, as this has been decided is a reasonable time limit. - if (closed_at - created_at) > (MAX_TIME_OPEN - IDLE_TIMEOUT) - self.closed_at = created_at + MAX_TIME_OPEN - else - self.closed_at = Time.now.getutc + IDLE_TIMEOUT - end self.save! tags = self.tags @@ -171,6 +161,20 @@ class Changeset < ActiveRecord::Base end end end + + ## + # set the auto-close time to be one hour in the future unless + # that would make it more than 24h long, in which case clip to + # 24h, as this has been decided is a reasonable time limit. + def before_save + if self.is_open? + if (closed_at - created_at) > (MAX_TIME_OPEN - IDLE_TIMEOUT) + self.closed_at = created_at + MAX_TIME_OPEN + else + self.closed_at = Time.now.getutc + IDLE_TIMEOUT + end + end + end def to_xml doc = OSM::API.new.get_xml_doc @@ -225,7 +229,7 @@ class Changeset < ActiveRecord::Base def update_from(other, user) # ensure that only the user who opened the changeset may modify it. unless user.id == self.user_id - raise OSM::APIUserChangesetMismatchError + raise OSM::APIUserChangesetMismatchError.new end # can't change a closed changeset