From: Anton Khorev Date: Sat, 17 Aug 2024 10:02:20 +0000 (+0300) Subject: Don't update ends_at when editing inactive blocks X-Git-Tag: live~289^2 X-Git-Url: https://git.openstreetmap.org./rails.git/commitdiff_plain/cfaae9eadd794d646950421c8d21a6fe356e727f Don't update ends_at when editing inactive blocks --- diff --git a/app/controllers/user_blocks_controller.rb b/app/controllers/user_blocks_controller.rb index 3b7ef30f9..962eff04c 100644 --- a/app/controllers/user_blocks_controller.rb +++ b/app/controllers/user_blocks_controller.rb @@ -75,11 +75,14 @@ class UserBlocksController < ApplicationController if !user_block_was_active && @user_block.active? flash.now[:error] = t(".inactive_block_cannot_be_reactivated") render :action => "edit" - elsif @user_block.save - flash[:notice] = t(".success") - redirect_to @user_block else - render :action => "edit" + @user_block.ends_at = @user_block.ends_at_was unless user_block_was_active + if @user_block.save + flash[:notice] = t(".success") + redirect_to @user_block + else + render :action => "edit" + end end end else diff --git a/test/controllers/user_blocks_controller_test.rb b/test/controllers/user_blocks_controller_test.rb index d28194fdc..57481abf8 100644 --- a/test/controllers/user_blocks_controller_test.rb +++ b/test/controllers/user_blocks_controller_test.rb @@ -799,6 +799,8 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest end def check_inactive_block_updates(block) + original_ends_at = block.ends_at + put user_block_path(block, :user_block_period => "0", :user_block => { :needs_view => false, :reason => "Updated Reason" }) @@ -807,6 +809,7 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest block.reload assert_not_predicate block, :active? assert_equal "Updated Reason", block.reason + assert_equal original_ends_at, block.ends_at put user_block_path(block, :user_block_period => "0", @@ -816,6 +819,7 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest block.reload assert_not_predicate block, :active? assert_equal "Updated Reason", block.reason + assert_equal original_ends_at, block.ends_at put user_block_path(block, :user_block_period => "1", @@ -825,6 +829,7 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest block.reload assert_not_predicate block, :active? assert_equal "Updated Reason", block.reason + assert_equal original_ends_at, block.ends_at put user_block_path(block, :user_block_period => "0", @@ -834,6 +839,7 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest block.reload assert_not_predicate block, :active? assert_equal "Updated Reason Again", block.reason + assert_equal original_ends_at, block.ends_at end def check_user_blocks_table(user_blocks)