Created
November 21, 2013 11:19
-
-
Save pabloDon/7579946 to your computer and use it in GitHub Desktop.
Controlador. Proyecto interno de Clever Consulting
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class FormsController < ApplicationController | |
before_filter :customer_can_review?, only: :review | |
before_filter :require_user, only: [:index, :show, :edit, :update, :destroy, :confirm] | |
# GET /forms | |
# GET /forms.json | |
def index | |
@forms = Form.all | |
respond_to do |format| | |
format.html # index.html.erb | |
format.json { render json: @forms } | |
end | |
end | |
# GET /forms/1 | |
# GET /forms/1.json | |
def show | |
@form = Form.find(params[:id]) | |
respond_to do |format| | |
format.html # show.html.erb | |
format.json { render json: @form } | |
format.pdf do | |
pdf = FormPdf.new(@form, view_context) | |
send_data pdf.render, filename: "form #{@form.contact_project_name}.pdf", type: "application/pdf" | |
end | |
end | |
end | |
# GET /forms/new | |
# GET /forms/new.json | |
def new | |
@form = Form.new | |
respond_to do |format| | |
format.html # new.html.erb | |
format.json { render json: @form } | |
end | |
end | |
# GET /forms/1/edit | |
def edit | |
@form = Form.find(params[:id]) | |
end | |
# POST /forms | |
# POST /forms.json | |
def create | |
@form = Form.new(params[:form]) | |
# pending: 1 => revisar por comercial | |
@form.pending = 1 | |
respond_to do |format| | |
if @form.save | |
UserMailer.notify_create_to_commercial(@form).deliver | |
format.html { redirect_to root_url, notice: 'Tu formulario ha sido creado y enviado correctamente. Pronto nos pondremos en contacto contigo.' } | |
format.json { render json: @form, status: :created, location: @form } | |
else | |
format.html { render action: "new" } | |
format.json { render json: @form.errors, status: :unprocessable_entity } | |
end | |
end | |
end | |
# PUT /forms/1 | |
# PUT /forms/1.json | |
def update | |
@form = Form.find(params[:id]) | |
# pending: 0 => revisar por cliente | |
params[:form][:pending] = 0 | |
respond_to do |format| | |
if @form.update_attributes(params[:form]) | |
UserMailer.reject_form_email(@form).deliver | |
format.html { redirect_to forms_url, notice: 'Form was successfully updated.' } | |
format.json { head :no_content } | |
else | |
format.html { render action: "edit" } | |
format.json { render json: @form.errors, status: :unprocessable_entity } | |
end | |
end | |
end | |
# DELETE /forms/1 | |
# DELETE /forms/1.json | |
def destroy | |
@form = Form.find(params[:id]) | |
@form.destroy | |
respond_to do |format| | |
format.html { redirect_to forms_url } | |
format.json { head :no_content } | |
end | |
end | |
# Revisión del formulario por parte del comercial | |
def review | |
@form = Form.find(params[:id]) | |
end | |
# Reinicio de las sugerencias comentadas por el comercial | |
def restart_suggestions params | |
form = params[:form] | |
form[:step_1_review] = form[:step_2_review] = form[:step_7_review] = form[:step_8_review] = true | |
form[:step_1_review_desc] = form[:step_2_review_desc] = form[:step_7_review_desc] = form[:task_1_review_desc] = form[:task_2_review_desc] = form[:task_3_review_desc] = form[:task_4_review_desc] = form[:task_5_review_desc] = form[:task_6_review_desc] = form[:task_7_review_desc] = form[:task_8_review_desc] = form[:task_9_review_desc] = form[:task_10_review_desc] = "" | |
return form | |
end | |
# Actualización de la revisión, modificada respecto al update. | |
def update_review | |
@form = Form.find(params[:id]) | |
# pending: 1 => a revisar por comercial | |
params[:form][:pending] = 1 | |
respond_to do |format| | |
params[:form] = restart_suggestions params | |
if @form.update_attributes(params[:form]) | |
UserMailer.notify_update_to_commercial(@form).deliver | |
format.html { redirect_to @form, notice: 'Form was successfully updated.' } | |
format.json { head :no_content } | |
else | |
format.html { render action: "review" } | |
format.json { render json: @form.errors, status: :unprocessable_entity } | |
end | |
end | |
end | |
# Confirmación de que el formulario es definitivo | |
def confirm | |
@form = Form.find(params[:id]) | |
# pending: 2 => OK | |
@form.update_attributes(pending: 2) | |
UserMailer.confirm_form_email(@form).deliver | |
UserMailer.confirm_form_email_to_comercial(@form).deliver | |
redirect_to forms_path | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment