Merge 06c60ef095 into 18bb1bd237
This commit is contained in:
commit
5abd4abddd
2 changed files with 29 additions and 24 deletions
|
|
@ -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!
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue