Don't update ends_at when editing inactive blocks

This commit is contained in:
Anton Khorev 2024-08-17 13:02:20 +03:00
parent 9b2db63a95
commit cfaae9eadd
2 changed files with 13 additions and 4 deletions

View file

@ -75,11 +75,14 @@ class UserBlocksController < ApplicationController
if !user_block_was_active && @user_block.active? if !user_block_was_active && @user_block.active?
flash.now[:error] = t(".inactive_block_cannot_be_reactivated") flash.now[:error] = t(".inactive_block_cannot_be_reactivated")
render :action => "edit" render :action => "edit"
elsif @user_block.save
flash[:notice] = t(".success")
redirect_to @user_block
else 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
end end
else else

View file

@ -799,6 +799,8 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest
end end
def check_inactive_block_updates(block) def check_inactive_block_updates(block)
original_ends_at = block.ends_at
put user_block_path(block, put user_block_path(block,
:user_block_period => "0", :user_block_period => "0",
:user_block => { :needs_view => false, :reason => "Updated Reason" }) :user_block => { :needs_view => false, :reason => "Updated Reason" })
@ -807,6 +809,7 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest
block.reload block.reload
assert_not_predicate block, :active? assert_not_predicate block, :active?
assert_equal "Updated Reason", block.reason assert_equal "Updated Reason", block.reason
assert_equal original_ends_at, block.ends_at
put user_block_path(block, put user_block_path(block,
:user_block_period => "0", :user_block_period => "0",
@ -816,6 +819,7 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest
block.reload block.reload
assert_not_predicate block, :active? assert_not_predicate block, :active?
assert_equal "Updated Reason", block.reason assert_equal "Updated Reason", block.reason
assert_equal original_ends_at, block.ends_at
put user_block_path(block, put user_block_path(block,
:user_block_period => "1", :user_block_period => "1",
@ -825,6 +829,7 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest
block.reload block.reload
assert_not_predicate block, :active? assert_not_predicate block, :active?
assert_equal "Updated Reason", block.reason assert_equal "Updated Reason", block.reason
assert_equal original_ends_at, block.ends_at
put user_block_path(block, put user_block_path(block,
:user_block_period => "0", :user_block_period => "0",
@ -834,6 +839,7 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest
block.reload block.reload
assert_not_predicate block, :active? assert_not_predicate block, :active?
assert_equal "Updated Reason Again", block.reason assert_equal "Updated Reason Again", block.reason
assert_equal original_ends_at, block.ends_at
end end
def check_user_blocks_table(user_blocks) def check_user_blocks_table(user_blocks)