diff --git a/engines/adva_cms/app/controllers/admin/articles_controller.rb b/engines/adva_cms/app/controllers/admin/articles_controller.rb index 60b086d0f..5e28ebfb2 100644 --- a/engines/adva_cms/app/controllers/admin/articles_controller.rb +++ b/engines/adva_cms/app/controllers/admin/articles_controller.rb @@ -152,7 +152,8 @@ def optimistic_lock raise t(:'adva.articles.exception.missing_timestamp') end - if @article.updated_at && (Time.zone.parse(updated_at) != @article.updated_at) + # We parse the timestamp of article too so we can get rid of those microseconds postgresql adds + if @article.updated_at && (Time.zone.parse(updated_at) != Time.zone.parse(@article.updated_at.to_s)) flash[:error] = t(:'adva.articles.flash.optimistic_lock.failure') render :action => :edit end diff --git a/engines/adva_wiki/app/controllers/admin/wikipages_controller.rb b/engines/adva_wiki/app/controllers/admin/wikipages_controller.rb index 271449642..4cf98d4e4 100644 --- a/engines/adva_wiki/app/controllers/admin/wikipages_controller.rb +++ b/engines/adva_wiki/app/controllers/admin/wikipages_controller.rb @@ -100,13 +100,14 @@ def set_wikipage_param(key, value) def optimistic_lock return unless params[:wikipage] - + unless updated_at = params[:wikipage].delete(:updated_at) # TODO raise something more explicit here raise t(:'adva.wiki.exception.missing_timestamp') end - - if @wikipage.updated_at && (Time.zone.parse(updated_at) != @wikipage.updated_at) + + # We parse the timestamp of wikipage too so we can get rid of those microseconds postgresql adds + if @wikipage.updated_at && (Time.zone.parse(updated_at) != Time.zone.parse(@wikipage.updated_at.to_s)) flash[:error] = t(:'adva.wiki.flash.optimistic_lock.failure') render :action => :edit end diff --git a/engines/adva_wiki/app/controllers/wiki_controller.rb b/engines/adva_wiki/app/controllers/wiki_controller.rb index 39f23af18..660bb977b 100644 --- a/engines/adva_wiki/app/controllers/wiki_controller.rb +++ b/engines/adva_wiki/app/controllers/wiki_controller.rb @@ -154,7 +154,8 @@ def optimistic_lock raise t(:'adva.wiki.exception.missing_timestamp') end - if @wikipage.updated_at && (Time.zone.parse(updated_at) != @wikipage.updated_at) + # We parse the timestamp of wikipage too so we can get rid of those microseconds postgresql adds + if @wikipage.updated_at && (Time.zone.parse(updated_at) != Time.zone.parse(@wikipage.updated_at.to_s)) flash[:error] = t(:'adva.wiki.flash.optimistic_lock.failure') render :action => :edit end diff --git a/engines/adva_wiki/app/views/admin/wikipages/edit.html.erb b/engines/adva_wiki/app/views/admin/wikipages/edit.html.erb index d327a0e97..9b3235a60 100644 --- a/engines/adva_wiki/app/views/admin/wikipages/edit.html.erb +++ b/engines/adva_wiki/app/views/admin/wikipages/edit.html.erb @@ -1,6 +1,7 @@

<%= t(:'adva.wikipage.view.edit.header', :title => @wikipage.title) %>

<% split_form_for :wikipage, @wikipage, :url => admin_wikipage_path, :html => {:multipart => true, :method => :put, :id => 'content_form'} do |f| -%> + <%= f.hidden_field :updated_at, :value => @wikipage.updated_at %> <%= render :partial => "form", :locals => {:f => f} %> <% save_or_cancel_links(f, :cancel_url => admin_wikipage_path) %>