The rejection reason is better managed
This commit is contained in:
parent
93bdb05a01
commit
cb474960f0
|
@ -44,8 +44,7 @@ class ModerationsController < ApplicationController
|
||||||
# DELETE /events/1
|
# DELETE /events/1
|
||||||
# DELETE /events/1.json
|
# DELETE /events/1.json
|
||||||
def destroy
|
def destroy
|
||||||
@moderation.reason = params[:event][:reason] ||
|
@moderation.reason = generate_destroy_reason(params)
|
||||||
t("moderations.refuse.reason_#{params[:reason]}_long")
|
|
||||||
@moderation.destroy!
|
@moderation.destroy!
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.html { redirect_to :moderations, notice: t('.ok') }
|
format.html { redirect_to :moderations, notice: t('.ok') }
|
||||||
|
@ -55,6 +54,14 @@ class ModerationsController < ApplicationController
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
def generate_destroy_reason(params)
|
||||||
|
if params[:reason] == 'r_4'
|
||||||
|
params[:event][:reason]
|
||||||
|
else
|
||||||
|
t "moderations.refuse.reason_#{params[:reason]}_long"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
# Use callbacks to share common setup or constraints between actions.
|
# Use callbacks to share common setup or constraints between actions.
|
||||||
def set_moderation
|
def set_moderation
|
||||||
@event = Event.find params[:id]
|
@event = Event.find params[:id]
|
||||||
|
|
|
@ -15,7 +15,7 @@ class Event < ActiveRecord::Base
|
||||||
validates :title, presence: true
|
validates :title, presence: true
|
||||||
validate :end_after_start
|
validate :end_after_start
|
||||||
RULES = %w(daily weekly monthly).freeze
|
RULES = %w(daily weekly monthly).freeze
|
||||||
validates :rule, inclusion: RULES
|
validates :rule, allow_nil: true, inclusion: RULES
|
||||||
validates :description, presence: true
|
validates :description, presence: true
|
||||||
validates :city, presence: true
|
validates :city, presence: true
|
||||||
validates :region, presence: true
|
validates :region, presence: true
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
= radio_button_tag :reason, :r_3, params[:event] == 'reason_r_3'
|
= radio_button_tag :reason, :r_3, params[:event] == 'reason_r_3'
|
||||||
= label_tag :reason_r_3, t('.reason_r_3')
|
= label_tag :reason_r_3, t('.reason_r_3')
|
||||||
|
|
||||||
.field.opener{ title: t('.reason_r_4_long') }
|
.field.opener
|
||||||
= radio_button_tag :reason, :r_4,
|
= radio_button_tag :reason, :r_4,
|
||||||
params[:event] == 'reason_r_4' || !params[:event]
|
params[:event] == 'reason_r_4' || !params[:event]
|
||||||
= label_tag :reason_r_4, t('.reason_r_4')
|
= label_tag :reason_r_4, t('.reason_r_4')
|
||||||
|
|
|
@ -92,9 +92,10 @@ class ModerationsControllerTest < ActionController::TestCase
|
||||||
|
|
||||||
test 'should reject event' do
|
test 'should reject event' do
|
||||||
assert_difference 'Event.count', -1 do
|
assert_difference 'Event.count', -1 do
|
||||||
delete :destroy, id: @moderation, event: {}
|
delete :destroy, id: @moderation, reason: 'r_1', event: { reason: '' }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
assert_not_empty assigns(:moderation).reason
|
||||||
assert_empty assigns(:moderation).errors
|
assert_empty assigns(:moderation).errors
|
||||||
|
|
||||||
assert_redirected_to :moderations
|
assert_redirected_to :moderations
|
||||||
|
@ -102,9 +103,10 @@ class ModerationsControllerTest < ActionController::TestCase
|
||||||
|
|
||||||
test 'should reject event with a reason' do
|
test 'should reject event with a reason' do
|
||||||
assert_difference 'Event.count', -1 do
|
assert_difference 'Event.count', -1 do
|
||||||
delete :destroy, id: @moderation, reason: 'r_4', event: {}
|
delete :destroy, id: @moderation, reason: 'r_4', event: { reason: 'bye' }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
assert_not_empty assigns(:moderation).reason
|
||||||
assert_empty assigns(:moderation).errors
|
assert_empty assigns(:moderation).errors
|
||||||
|
|
||||||
assert_redirected_to :moderations
|
assert_redirected_to :moderations
|
||||||
|
|
Loading…
Reference in New Issue