Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class OpinionPollsController < ApplicationController
- before_filter :find_portal
- before_filter :check_ownership
- before_filter :find_poll, except: [:create]
- def create
- @portal = Portal.find(params[:portal_id])
- @poll = @portal.opinion_polls.new(poll_params)
- if @poll.save
- flash[:info] = I18n.t('flash.opinion_polls.create')
- render :json => { message: "OK", url: edit_portal_opinion_poll_path(portal_id: @portal.id, id: @poll.id) }.to_json
- else
- render :json => { errors: @poll.errors }.to_json, status: :unprocessable_entity
- end
- end
- def edit
- add_breadcrumb 'Start', :start_index_path
- add_breadcrumb 'Portale', :portals_path
- add_breadcrumb @portal.name, user_portal_path(current_user, @portal, tab: :opinions)
- add_breadcrumb "Badanie opinii"
- end
- def update
- @good_response = { message: "OK" }
- @good_response.merge!({ dont_close: true }) if params[:commit] == I18n.t("modal.#{@poll.type_string}.save_and_add")
- if @poll.update(poll_params)
- render :json => @good_response.to_json
- else
- render :json => { errors: @poll.errors }.to_json, status: :unprocessable_entity
- end
- end
- def destroy
- if @poll.destroy
- flash[:info] = I18n.t('flash.opinion_polls.destroy')
- redirect_to user_portal_path(current_user, @portal, tab: :opinions)
- else
- flash[:info] = I18n.t('flash.opinion_polls.cant_destroy')
- redirect_to :back
- end
- end
- private
- def poll_params
- if params[:type] and params[:type] == "quiz"
- params.require(:opinion_polls_quiz).permit(
- :title, :type,
- :published, :fb_published,
- :publish_rules => [:views_count, :answers_count, :days_count],
- :fb_publish_rules => [:percent, :days_count],
- :questions_attributes => [:id, :position, :title, :answer_a, :answer_b, :answer_c, :good_answer]
- )
- elsif params[:type] and params[:type] == "survey"
- params.require(:opinion_polls_survey).permit(
- :title, :type,
- :published, :fb_published,
- :publish_rules => [:views_count, :answers_count, :days_count],
- :fb_publish_rules => [:percent, :days_count],
- :questions_attributes => [:id, :position, :title, :answer_a, :answer_b, :answer_c],
- )
- end
- end
- def find_portal
- @portal = Portal.find(params[:portal_id])
- end
- def find_poll
- @poll = @portal.opinion_polls.where(id: params[:id]).first
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement