diff --git a/app/controllers/guidances_controller.rb b/app/controllers/guidances_controller.rb index eeed41b..eeb25dd 100644 --- a/app/controllers/guidances_controller.rb +++ b/app/controllers/guidances_controller.rb @@ -33,82 +33,81 @@ ## # POST /guidances def admin_create - @guidance = Guidance.new(guidance_params) - authorize @guidance - @guidance.text = params["guidance-text"] + guidance = Guidance.new(guidance_params) + authorize guidance + guidance.text = params["guidance-text"] - @guidance.themes = [] + guidance.themes = [] if !guidance_params[:theme_ids].nil? - guidance_params[:theme_ids].map{|t| @guidance.themes << Theme.find(t.to_i) unless t.empty? } + guidance_params[:theme_ids].map{|t| guidance.themes << Theme.find(t.to_i) unless t.empty? } end - if @guidance.save - redirect_to admin_edit_guidance_path(@guidance), notice: success_message(_('guidance'), _('created')) + if guidance.save + flash[:notice] = success_message(_('guidance'), _('created')) + redirect_to(action: :admin_index) else - flash[:alert] = failed_create_error(@guidance, _('guidance')) - @themes = Theme.all.order('title') - @guidance_groups = GuidanceGroup.where(org_id: current_user.org_id).order('name ASC') - render action: "admin_new" + flash[:alert] = failed_create_error(guidance, _('guidance')) + redirect_to(action: :admin_index) end end ## # PUT /guidances/1 def admin_update - @guidance = Guidance.find(params[:id]) - authorize @guidance - @guidance.text = params["guidance-text"] + guidance = Guidance.find(params[:id]) + authorize guidance + guidance.text = params["guidance-text"] - if @guidance.update_attributes(guidance_params) - redirect_to admin_edit_guidance_path(params[:guidance]), notice: success_message(_('guidance'), _('saved')) + if guidance.update_attributes(guidance_params) + flash[:notice] = success_message(_('guidance'), _('saved')) + redirect_to(action: :admin_index) else - flash[:alert] = failed_update_error(@guidance, _('guidance')) - @themes = Theme.all.order('title') - @guidance_groups = GuidanceGroup.where(org_id: current_user.org_id).order('name ASC') - - render action: "admin_edit" + flash[:alert] = failed_update_error(guidance, _('guidance')) + redirect_to(action: :admin_edit, id: params[:id]) end end ## # DELETE /guidances/1 def admin_destroy - @guidance = Guidance.find(params[:id]) - authorize @guidance - if @guidance.destroy - redirect_to admin_index_guidance_path, notice: success_message(_('guidance'), _('deleted')) + guidance = Guidance.find(params[:id]) + authorize guidance + if guidance.destroy + flash[:notice] = success_message(_('guidance'), _('deleted')) + redirect_to(action: :admin_index) else - redirect_to admin_index_guidance_path, alert: failed_destroy_error(@guidance, _('guidance')) + flash[:alert] = failed_destroy_error(guidance, _('guidance')) + redirect_to(action: :admin_index) end end # PUT /guidances/1 def admin_publish - @guidance = Guidance.find(params[:id]) - authorize @guidance + guidance = Guidance.find(params[:id]) + authorize guidance - @guidance.published = true - guidance_group = GuidanceGroup.find(@guidance.guidance_group_id) + guidance.published = true + guidance_group = GuidanceGroup.find(guidance.guidance_group_id) if !guidance_group.published? || guidance_group.published.nil? guidance_group.published = true guidance_group.save end - @guidance.save + guidance.save flash[:notice] = _('Your guidance has been published and is now available to users.') - redirect_to admin_index_guidance_path + redirect_to(action: :admin_index) end # PUT /guidances/1 def admin_unpublish - @guidance = Guidance.find(params[:id]) - authorize @guidance + guidance = Guidance.find(params[:id]) + authorize guidance - @guidance.published = false - @guidance.save + guidance.published = false + guidance.save flash[:notice] = _('Your guidance is no longer published and will not be available to users.') - redirect_to admin_index_guidance_path + redirect_to(action: :admin_index) end private diff --git a/test/functional/guidances_controller_test.rb b/test/functional/guidances_controller_test.rb index e2a1bde..da6fd0b 100644 --- a/test/functional/guidances_controller_test.rb +++ b/test/functional/guidances_controller_test.rb @@ -89,16 +89,15 @@ post admin_create_guidance_path(@user.org), params assert_response :redirect - assert_redirected_to admin_edit_guidance_path(Guidance.last) + assert_redirected_to admin_index_guidance_path assert flash[:notice].start_with?('Successfully') && flash[:notice].include?('created') - assert assigns(:guidance) assert_equal 'Testing create', Guidance.last.text, "expected the record to have been created!" # Invalid object post admin_create_guidance_path(@user.org), {'guidance-text': nil, guidance: {published: false}} assert flash[:alert].starts_with?(_('Could not create your')) - assert_response :success - assert assigns(:guidance) + assert_response :redirect + assert_redirected_to admin_index_guidance_path end # PUT /org/admin/guidance/:id/admin_update (admin_update_guidance_path) @@ -115,15 +114,14 @@ put admin_update_guidance_path(Guidance.first), params assert_response :redirect assert flash[:notice].start_with?('Successfully') && flash[:notice].include?('saved') - assert_redirected_to "#{admin_edit_guidance_path(Guidance.first)}?guidance_group_id=#{GuidanceGroup.first.id}" - assert assigns(:guidance) + assert_redirected_to admin_index_guidance_path assert_equal 'Testing UPDATE', Guidance.first.text, "expected the record to have been updated" # Invalid object put admin_update_guidance_path(Guidance.first), {'guidance-text': nil, guidance: {guidance_group_id: GuidanceGroup.first.id}} assert flash[:alert].starts_with?(_('Could not update your')) - assert_response :success - assert assigns(:guidance) + assert_response :redirect + assert_redirected_to admin_edit_guidance_path(Guidance.first) end # PUT /org/admin/guidance/:id/admin_publish (admin_publish_guidance) @@ -141,7 +139,6 @@ assert_response :redirect assert flash[:notice].include?('published') assert_redirected_to "#{admin_index_guidance_path}" - assert assigns(:guidance) end # PUT /org/admin/guidance/:id/admin_unpublish (admin_unpublish_guidance) @@ -159,7 +156,6 @@ assert_response :redirect assert flash[:notice].include?('no longer published') assert_redirected_to "#{admin_index_guidance_path}" - assert assigns(:guidance) end # DELETE /org/admin/guidance/:id/admin_destroy (admin_destroy_guidance_path) @@ -176,7 +172,6 @@ assert_response :redirect assert_redirected_to admin_index_guidance_path assert flash[:notice].start_with?('Successfully') && flash[:notice].include?('deleted') - assert assigns(:guidance) assert_raise ActiveRecord::RecordNotFound do Guidance.find(id).nil? end