Refactoring Tickets

- Tickets now independent from registration
- Implemented money gem
#419
This commit is contained in:
Chrisbr 2014-08-28 15:21:05 +02:00
parent 5485fe0e7f
commit 5f8a8ac6d9
63 changed files with 1581 additions and 573 deletions

View file

@ -17,13 +17,13 @@ module Admin
flash[:notice] = "Successfully updated Attended for #{@user.email}"
redirect_to admin_conference_registrations_path(@conference.short_title)
else
flash[:notice] = "Update Attended for #{@user.email} failed!"
flash[:notice] = "Update Attended for #{@user.email} failed!" \
"#{@registration.errors.full_messages.join('. ')}"
redirect_to admin_conference_registrations_path(@conference.short_title)
end
end
def edit
end
def edit; end
def update
@registration.update_attributes(registration_params)
@ -51,7 +51,7 @@ module Admin
protected
def set_user
@user = User.where('id = ?', @registration.user_id).first
@user = User.find_by(id: @registration.user_id)
end
def registration_params
@ -63,10 +63,7 @@ module Admin
qanswers_attributes: [],
user_attributes: [
:id, :name, :tshirt, :mobile, :volunteer_experience, :languages,
:nickname, :affiliation ],
supporter_registration_attributes: [
:id, :supporter_level_id, :code
])
:nickname, :affiliation ])
end
end
end

View file

@ -1,23 +0,0 @@
module Admin
class SupporterLevelsController < Admin::BaseController
load_and_authorize_resource :conference, find_by: :short_title
authorize_resource through: :conference
def index
authorize! :update, SupporterLevel.new(conference_id: @conference.id)
end
def show
render :supporter_levels
end
def update
begin
@conference.update_attributes!(params[:conference])
redirect_to(admin_conference_supporter_levels_path(conference_id: @conference.short_title), notice: 'Supporter levels were successfully updated.')
rescue => e
redirect_to(admin_conference_supporter_levels_path(conference_id: @conference.short_title), alert: "Supporter levels update failed: #{e.message}")
end
end
end
end

View file

@ -1,19 +0,0 @@
module Admin
class SupportersController < Admin::BaseController
load_and_authorize_resource :conference, find_by: :short_title
load_and_authorize_resource through: :conference
def index
respond_to do |format|
format.html
format.json { render json: DatatableSupporters.new(@conference.supporter_registrations, view_context) }
end
end
def create
params[:supporter_registration][:conference_id] = @conference.id
SupporterRegistration.create!(params[:supporter_registration])
redirect_to(admin_conference_supporters_path(conference_id: @conference.short_title), notice: "Supporter added")
end
end
end

View file

@ -0,0 +1,54 @@
module Admin
class TicketsController < Admin::BaseController
load_and_authorize_resource :conference, find_by: :short_title
load_and_authorize_resource :ticket, through: :conference
def index
authorize! :update, Ticket.new(conference_id: @conference.id)
end
def new
@ticket = @conference.tickets.new
end
def create
@ticket = @conference.tickets.new(ticket_params)
if @ticket.save(ticket_params)
redirect_to(admin_conference_tickets_path(conference_id: @conference.short_title),
notice: 'Ticket successfully created.')
else
flash[:alert] = "Creating Ticket failed: #{@ticket.errors.full_messages.join('. ')}."
render :new
end
end
def edit; end
def update
if @ticket.update_attributes(ticket_params)
redirect_to(admin_conference_tickets_path(conference_id: @conference.short_title),
notice: 'Ticket successfully updated.')
else
flash[:alert] = "Ticket update failed: #{@ticket.errors.full_messages.join('. ')}."
render :edit
end
end
def destroy
if @ticket.destroy
redirect_to(admin_conference_tickets_path(conference_id: @conference.short_title),
notice: 'Ticket successfully destroyed.')
else
redirect_to(admin_conference_tickets_path(conference_id: @conference.short_title),
alert: "Ticket was successfully destroyed." \
"#{@ticket.errors.full_messages.join('. ')}.")
end
end
private
def ticket_params
params[:ticket]
end
end
end