Implements targets and campaigns for conference

This commit is contained in:
Chrisbr 2014-06-26 09:08:26 +02:00
parent 678fe38a25
commit 857ac43e74
40 changed files with 1086 additions and 44 deletions

View file

@ -0,0 +1,65 @@
module Admin
class CampaignsController < ApplicationController
before_filter :verify_organizer
def index
@conference = Conference.find_by(short_title: params[:conference_id])
@campaigns = @conference.campaigns
end
def create
@conference = Conference.find_by(short_title: params[:conference_id])
@campaign = @conference.campaigns.new(params[:campaign])
@campaign.conference_id = @conference.id
if @conference.save
redirect_to(admin_conference_campaigns_path(conference_id: @conference.short_title),
notice: 'Campaign successfully created.')
else
redirect_to(new_admin_conference_campaign_path(conference_id: @conference.short_title),
alert: "Creating of Campaign for #{@conference.short_title} failed." \
"#{@campaign.errors.full_messages.join('. ')}.")
end
end
def new
@conference = Conference.find_by(short_title: params[:conference_id])
@campaign = @conference.campaigns.new
end
def edit
@conference = Conference.find_by(short_title: params[:conference_id])
@campaign = Campaign.find(params[:id])
end
def update
@conference = Conference.find_by(short_title: params[:conference_id])
@campaign = Campaign.find(params[:id])
if @campaign.update_attributes(params[:campaign])
redirect_to(admin_conference_campaigns_path(
conference_id: @conference.short_title),
notice: "Campaign '#{@campaign.name}' successfully updated.")
else
redirect_to(edit_admin_conference_campaign_path(
conference_id: @conference.short_title,
id: @campaign.id),
alert: "Update of Campaign for #{@conference.short_title} failed." \
"#{@campaign.errors.full_messages.join('. ')}.")
end
end
def destroy
@conference = Conference.find_by(short_title: params[:conference_id])
@campaign = Campaign.find(params[:id])
if @campaign.destroy
redirect_to(admin_conference_campaigns_path(conference_id: @conference.short_title),
notice: "Campaign '#{@campaign.name}' successfully deleted.")
else
redirect_to(admin_conference_campaigns_path(conference_id: @conference.short_title),
alert: "Delete of Campaign for #{@conference.short_title} failed." \
"#{@campaign.errors.full_messages.join('. ')}.")
end
end
end
end

View file

@ -144,6 +144,14 @@ class Admin::ConferenceController < ApplicationController
@top_submitter = @conference.get_top_submitter
# get targets
@registration_targets = @conference.get_targets(Target.units[:registrations])
@submission_targets = @conference.get_targets(Target.units[:submissions])
@program_minutes_targets = @conference.get_targets(Target.units[:program_minutes])
# get campaigns
@campaigns = @conference.get_campaigns
respond_to do |format|
format.html
format.json { render json: @conference.to_json }

View file

@ -0,0 +1,21 @@
module Admin
class TargetsController < ApplicationController
before_filter :verify_organizer
def index
end
def update
if @conference.update_attributes(params[:conference])
redirect_to(admin_conference_targets_path(
conference_id: @conference.short_title),
notice: 'Targets were successfully updated.')
else
redirect_to(admin_conference_targets_path(
conference_id: @conference.short_title),
alert: 'Targets update failed: ' \
"#{@conference.errors.full_messages.join('. ')}")
end
end
end
end