Skip to content

Instantly share code, notes, and snippets.

@davidray
Created August 3, 2010 17:40
Show Gist options
  • Select an option

  • Save davidray/506795 to your computer and use it in GitHub Desktop.

Select an option

Save davidray/506795 to your computer and use it in GitHub Desktop.
class MeritBadgeTrackersController < ApplicationController
before_filter :tab_alias
before_filter :can_manage_merit_badge_records
before_filter :can_manage_merit_badge_records_required, :except => [:show, :index]
# before_filter :allow_scout_run
before_filter :user
before_filter :scout_user_required
def index
end
def destroy
mbt = @user.merit_badge_trackers.find(params[:id])
mbt.destroy
@merit_badge_tracker_id = params[:id]
end
def new
@merit_badge_tracker = @user.merit_badge_trackers.new
@merit_badges = (MeritBadge.all - @user.merit_badges).map {|mb| [mb.name, mb.id]}
end
def create
merit_badge = MeritBadge.find(params[:merit_badge_tracker][:merit_badge_id])
@merit_badge_tracker = @user.get_or_create_merit_badge_tracker_for_merit_badge(merit_badge);
@merit_badge_tracker.update_attributes(params[:merit_badge_tracker])
@merit_badge_trackers = @user.merit_badge_trackers
end
def edit
@merit_badge_tracker = @user.merit_badge_trackers.find(params[:id])
@merit_badges = (MeritBadge.all - @user.merit_badges).map {|mb| [mb.name, mb.id]}
end
def update
@merit_badge_tracker = @user.merit_badge_trackers.find(params[:id])
unless @merit_badge_tracker.update_attributes(params[:merit_badge_tracker])
render :partial => 'edit'
end
end
def show
@merit_badge_tracker = @user.merit_badge_trackers.find(params[:id])
end
def approve
@merit_badge_tracker = @user.merit_badge_trackers.find(params[:id])
@merit_badge_tracker.approved_on = Date.today
@merit_badge_tracker.save
end
private
def tab_alias
#DEBT This should change once the user_profile controller is finally he dead
@subheader_tab = "merit_badge";
end
def can_manage_merit_badge_records_required
if @can_edit
return true
else
flash[:notice] = "Sorry - you don't have permission to manage scout merit badge records"
redirect_to user_dashboard_path
return false
end
end
def can_manage_merit_badge_records
if @login_user.has_privilege?(MANAGE_MERIT_BADGES)
@can_edit = true
elsif @troop.let_scouts_edit and @login_user.is_scout?
@can_edit = true
else
@can_edit = false
end
end
end
<%= render :partial => 'merit_badge_tracker', :locals => {:merit_badge_tracker => @merit_badge_tracker} %>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment