From 347561c838c0c9ab2c634deaeee340cd422c9be2 Mon Sep 17 00:00:00 2001 From: Toks Date: Mon, 9 Dec 2013 15:05:12 -0500 Subject: [PATCH] fixes #1439 --- app/controllers/post_versions_controller.rb | 2 +- app/models/post.rb | 2 +- app/models/post_version.rb | 9 +++++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/app/controllers/post_versions_controller.rb b/app/controllers/post_versions_controller.rb index bc0ac7d20..93dfc5558 100644 --- a/app/controllers/post_versions_controller.rb +++ b/app/controllers/post_versions_controller.rb @@ -3,7 +3,7 @@ class PostVersionsController < ApplicationController rescue_from ActiveRecord::StatementInvalid, :with => :rescue_exception def index - @post_versions = PostVersion.search(params[:search]).order("updated_at desc").paginate(params[:page], :limit => params[:limit], :search_count => params[:search]) + @post_versions = PostVersion.search(params[:search]).order("updated_at desc, id desc").paginate(params[:page], :limit => params[:limit], :search_count => params[:search]) respond_with(@post_versions) do |format| format.xml do render :xml => @post_versions.to_xml(:root => "post-versions") diff --git a/app/models/post.rb b/app/models/post.rb index 13e31de14..58b179840 100644 --- a/app/models/post.rb +++ b/app/models/post.rb @@ -26,7 +26,7 @@ class Post < ActiveRecord::Base has_one :artist_commentary has_many :flags, :class_name => "PostFlag", :dependent => :destroy has_many :appeals, :class_name => "PostAppeal", :dependent => :destroy - has_many :versions, :class_name => "PostVersion", :dependent => :destroy, :order => "post_versions.id ASC" + has_many :versions, :class_name => "PostVersion", :dependent => :destroy, :order => "post_versions.updated_at ASC, post_versions.id ASC" has_many :votes, :class_name => "PostVote", :dependent => :destroy has_many :notes, :dependent => :destroy has_many :comments, :order => "comments.id", :dependent => :destroy diff --git a/app/models/post_version.rb b/app/models/post_version.rb index ed6140b0c..c4805b673 100644 --- a/app/models/post_version.rb +++ b/app/models/post_version.rb @@ -65,7 +65,7 @@ class PostVersion < ActiveRecord::Base end def sequence_for_post - versions = PostVersion.where(:post_id => post_id).order("updated_at desc").all + versions = PostVersion.where(:post_id => post_id).order("updated_at desc, id desc").all diffs = [] versions.each_index do |i| if i < versions.size - 1 @@ -130,7 +130,12 @@ class PostVersion < ActiveRecord::Base end def previous - PostVersion.where("post_id = ? and updated_at < ?", post_id, updated_at).order("updated_at desc").first + if updated_at.to_i == Time.zone.parse("2007-03-14T19:38:12Z").to_i + # Old post versions which didn't have updated_at set correctly + PostVersion.where("post_id = ? and updated_at = ? and id < ?", post_id, updated_at, id).order("updated_at desc, id desc").first + else + PostVersion.where("post_id = ? and updated_at < ?", post_id, updated_at).order("updated_at desc, id desc").first + end end def truncated_source