This commit is contained in:
Carlos Coêlho 2016-03-04 17:46:50 +00:00
commit 5abd4abddd
2 changed files with 29 additions and 24 deletions

View file

@ -1,5 +1,6 @@
class ProposalController < ApplicationController class ProposalController < ApplicationController
before_filter :authenticate_user!, except: [:show, :new, :create] before_filter :authenticate_user!, except: [:show, :new, :create]
before_action :create_user_if_not_signed_in, only: [:create]
load_resource :conference, find_by: :short_title load_resource :conference, find_by: :short_title
load_resource :program, through: :conference, singleton: true load_resource :program, through: :conference, singleton: true
load_and_authorize_resource :event, parent: false, through: :program load_and_authorize_resource :event, parent: false, through: :program
@ -26,32 +27,9 @@ class ProposalController < ApplicationController
def create def create
@url = conference_program_proposal_index_path(@conference.short_title) @url = conference_program_proposal_index_path(@conference.short_title)
unless current_user
@user = User.new(user_params)
if @user.save
sign_in(@user)
else
flash[:error] = "Could not save user: #{@user.errors.full_messages.join(', ')}"
render action: 'new'
return
end
end
params[:event].delete :user params[:event].delete :user
@event = Event.new(event_params) proposal_submission
@event.program = @program
@event.event_users.new(user: current_user,
event_role: 'submitter')
@event.event_users.new(user: current_user,
event_role: 'speaker')
unless @event.save
flash[:error] = "Could not submit proposal: #{@event.errors.full_messages.join(', ')}"
render action: 'new'
return
end
ahoy.track 'Event submission', title: 'New submission' ahoy.track 'Event submission', title: 'New submission'
@ -146,6 +124,20 @@ class ProposalController < ApplicationController
def user_params def user_params
params.require(:user).permit(:email, :password, :password_confirmation, :username) params.require(:user).permit(:email, :password, :password_confirmation, :username)
end end
def proposal_submission
@event = Event.new(event_params)
@event.program = @program
@event.event_users.new(user: current_user,
event_role: 'submitter')
@event.event_users.new(user: current_user,
event_role: 'speaker')
return unless !@event.save
flash[:error] = "Could not submit proposal: #{@event.errors.full_messages.join(', ')}"
render action: 'new'
end
end end
# FIXME: Introduce strong_parameters pronto! # FIXME: Introduce strong_parameters pronto!

View file

@ -300,4 +300,17 @@ module ApplicationHelper
def unread_notifications(user) def unread_notifications(user)
Comment.accessible_by(current_ability).find_since_last_login(user) Comment.accessible_by(current_ability).find_since_last_login(user)
end end
def create_user_if_not_signed_in
unless current_user
@user = User.new(user_params)
if @user.save
sign_in(@user)
else
flash[:error] = "Could not save user: #{@user.errors.full_messages.join(', ')}"
render action: 'new'
return
end
end
end
end end