mirror of
https://github.com/openSUSE/osem.git
synced 2026-08-17 13:44:09 +00:00
User/Person models merge
This commit is contained in:
parent
66b84e3660
commit
23bf55b66c
80 changed files with 1064 additions and 1221 deletions
|
|
@ -1,11 +1,11 @@
|
|||
class ProposalController < ApplicationController
|
||||
before_filter :verify_user, :except => [:show]
|
||||
before_filter :verify_user, except: [:show]
|
||||
before_filter :setup
|
||||
before_filter :verify_access, only: [:edit, :update, :destroy, :confirm, :restart]
|
||||
|
||||
def setup
|
||||
@person = current_user.person if current_user
|
||||
#FIXME: @conference also comes from verify_user, but we need setup also in show
|
||||
@user = current_user if current_user
|
||||
# FIXME: @conference also comes from verify_user, but we need setup also in show
|
||||
# which can be accessed anonymusly
|
||||
@conference = Conference.find_by(short_title: params[:conference_id])
|
||||
@url = conference_proposal_index_path(@conference.short_title)
|
||||
|
|
@ -19,22 +19,23 @@ class ProposalController < ApplicationController
|
|||
|
||||
begin
|
||||
if !organizer_or_admin?
|
||||
@event = @person.events.find(params[:id])
|
||||
@event = @user.events.find(params[:id])
|
||||
else
|
||||
@event = Event.find(params[:id])
|
||||
end
|
||||
rescue Exception => e
|
||||
Rails.logger.debug("Proposal failure in verify_access: #{e.message}")
|
||||
redirect_to(conference_proposal_index_path(:conference_id => @conference.short_title), :alert => 'Invalid or uneditable proposal.')
|
||||
redirect_to(conference_proposal_index_path(conference_id: @conference.short_title),
|
||||
alert: 'Invalid or uneditable proposal.')
|
||||
end
|
||||
end
|
||||
|
||||
def index
|
||||
@events = @person.proposals @conference
|
||||
@events = @user.proposals @conference
|
||||
end
|
||||
|
||||
def destroy
|
||||
proposal = @person.events.find_by_id(params[:id])
|
||||
proposal = @user.events.find_by_id(params[:id])
|
||||
if proposal
|
||||
proposal.withdraw
|
||||
proposal.save
|
||||
|
|
@ -56,92 +57,99 @@ class ProposalController < ApplicationController
|
|||
@attachments = @event.event_attachments
|
||||
|
||||
if @event.nil?
|
||||
redirect_to(conference_proposal_index_path(:conference_id => @conference.short_title), :alert => 'Invalid or uneditable proposal.')
|
||||
redirect_to(conference_proposal_index_path(conference_id: @conference.short_title),
|
||||
alert: 'Invalid or uneditable proposal.')
|
||||
end
|
||||
end
|
||||
|
||||
def update
|
||||
session[:return_to] ||= request.referer
|
||||
submitter = params[:person]
|
||||
submitter = params[:user]
|
||||
|
||||
params[:event].delete :people_attributes
|
||||
params[:event].delete :person
|
||||
params[:event].delete :users_attributes
|
||||
params[:event].delete :user
|
||||
|
||||
if submitter[:public_name].blank?
|
||||
redirect_to edit_conference_proposal_path(@conference.short_title, @event), :alert => "Your public name cannot be blank"
|
||||
if submitter[:name].blank?
|
||||
redirect_to edit_conference_proposal_path(@conference.short_title, @event),
|
||||
alert: 'Your name cannot be blank'
|
||||
return
|
||||
end
|
||||
|
||||
if submitter[:biography].blank?
|
||||
redirect_to edit_conference_proposal_path(@conference.short_title, @event), :alert => "Your biography cannot be blank"
|
||||
redirect_to edit_conference_proposal_path(@conference.short_title, @event),
|
||||
alert: 'Your biography cannot be blank'
|
||||
return
|
||||
end
|
||||
|
||||
if submitter[:public_name] != @person.public_name || submitter[:biography] != @person.biography
|
||||
@person.update_attributes(submitter)
|
||||
if submitter[:name] != @user.name || submitter[:biography] != @user.biography
|
||||
@user.update_attributes(submitter)
|
||||
end
|
||||
|
||||
event = Event.find_by_id(params[:id])
|
||||
|
||||
begin
|
||||
event.update_attributes!(params[:event])
|
||||
redirect_to(conference_proposal_index_path(:conference_id => @conference.short_title), :notice => "'#{event.title}' was successfully updated.")
|
||||
redirect_to(conference_proposal_index_path(conference_id: @conference.short_title),
|
||||
notice: "'#{event.title}' was successfully updated.")
|
||||
rescue Exception => e
|
||||
redirect_to edit_conference_proposal_path(@conference.short_title, @event), :alert => e.message
|
||||
redirect_to edit_conference_proposal_path(@conference.short_title, @event), alert: e.message
|
||||
end
|
||||
end
|
||||
|
||||
def create
|
||||
person = current_user.person
|
||||
user = current_user
|
||||
session[:return_to] ||= request.referer
|
||||
|
||||
event_params = params[:event]
|
||||
submitter = params[:person]
|
||||
params[:event].delete :person
|
||||
submitter = params[:user]
|
||||
params[:event].delete :user
|
||||
|
||||
@event = Event.new(event_params)
|
||||
@event.conference = @conference
|
||||
|
||||
if submitter[:public_name].blank?
|
||||
flash[:error] = "Your public name cannot be blank."
|
||||
render :action => "new"
|
||||
if submitter[:name].blank?
|
||||
flash[:error] = 'Your public name cannot be blank.'
|
||||
render action: 'new'
|
||||
return
|
||||
end
|
||||
|
||||
if submitter[:biography].blank?
|
||||
flash[:error] = "Your biography cannot be blank."
|
||||
render :action => "new"
|
||||
flash[:error] = 'Your biography cannot be blank.'
|
||||
render action: 'new'
|
||||
return
|
||||
end
|
||||
|
||||
# First, update the submitter's info, if they've changed anything
|
||||
if submitter[:public_name] != person.public_name || submitter[:biography] != person.biography
|
||||
person.update_attributes(submitter)
|
||||
if submitter[:name] != user.name || submitter[:biography] != user.biography
|
||||
user.update_attributes(submitter)
|
||||
end
|
||||
|
||||
@event.event_people.new(:person => person,
|
||||
:event_role => "submitter")
|
||||
@event.event_people.new(:person => person,
|
||||
:event_role => "speaker")
|
||||
@event.event_users.new(user: user,
|
||||
event_role: 'submitter')
|
||||
@event.event_users.new(user: user,
|
||||
event_role: 'speaker')
|
||||
|
||||
begin
|
||||
@event.save!
|
||||
rescue Exception => e
|
||||
@url = conference_proposal_index_path(@conference.short_title)
|
||||
@event_types = @conference.event_types
|
||||
@person = current_user.person
|
||||
@user = current_user
|
||||
|
||||
flash[:error] = "Could not submit proposal: #{e.message}"
|
||||
render :action => 'new'
|
||||
render action: 'new'
|
||||
return
|
||||
end
|
||||
|
||||
registration = person.registrations.where(:conference_id => @conference.id).first
|
||||
registration = user.registrations.where(conference_id: @conference.id).first
|
||||
ahoy.track 'Event submission', title: 'New submission'
|
||||
if registration.nil?
|
||||
redirect_to(register_conference_path(@conference.short_title), :notice => 'Event was successfully submitted. You probably want to register for the conference now!')
|
||||
redirect_to(register_conference_path(@conference.short_title),
|
||||
notice: 'Event was successfully submitted.\
|
||||
You probably want to register for the conference now!')
|
||||
else
|
||||
redirect_to(conference_proposal_index_path(:conference_id => @conference.short_title), :notice => 'Event was successfully submitted.')
|
||||
redirect_to(conference_proposal_index_path(conference_id: @conference.short_title),
|
||||
notice: 'Event was successfully submitted.')
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -155,17 +163,21 @@ class ProposalController < ApplicationController
|
|||
begin
|
||||
@event.confirm!
|
||||
rescue InvalidTransition => e
|
||||
redirect_to(conference_proposal_index_path(:conference_id => @conference.short_title), :alert => "Event was NOT confirmed: #{e.message}")
|
||||
redirect_to(conference_proposal_index_path(conference_id: @conference.short_title),
|
||||
alert: "Event was NOT confirmed: #{e.message}")
|
||||
return
|
||||
end
|
||||
|
||||
if !@conference.user_registered?(current_user)
|
||||
redirect_to(register_conference_path(@conference.short_title), :notice => "Event was confirmed. Please register to attend the conference.")
|
||||
redirect_to(register_conference_path(@conference.short_title),
|
||||
notice: 'Event was confirmed. Please register to attend the conference.')
|
||||
return
|
||||
end
|
||||
redirect_to(conference_proposal_index_path(:conference_id => @conference.short_title), :notice => 'Event was confirmed.')
|
||||
redirect_to(conference_proposal_index_path(conference_id: @conference.short_title),
|
||||
notice: 'Event was confirmed.')
|
||||
else
|
||||
redirect_to(conference_proposal_index_path(:conference_id => @conference.short_title), :alert => 'Event was NOT confirmed!')
|
||||
redirect_to(conference_proposal_index_path(conference_id: @conference.short_title),
|
||||
alert: 'Event was NOT confirmed!')
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue