Created
October 25, 2010 21:57
-
-
Save scottmessinger/645869 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module CoursePresenters | |
class ShowPresenter < Presenter | |
include AvailableResourceTypes | |
available_types #this is how I initialize availabe_resource_types...there has to be a better way | |
include CanCan::Ability | |
def initialize(course, current_user) | |
@current_user = current_user || User.new | |
@course = Course.find(course) | |
@root_sequences = Sequence.root_sequences(@course.id).all | |
@units = Unit.find(@root_sequences.collect{|s| s.unit_id}) | |
@resources = Resource.find(@course.resource_ids) | |
@resource_types = ResourceType.find(@course.resource_type_ids) | |
@activities = Activity.find(@course.activity_ids) | |
@assets = Asset.find(asset_ids) | |
end | |
delegate_attributes :@course, :prefix => 'course', :attributes => [:id, :title, :narrative_sidebar, :narrative_sidebar_flag, :narrative, :sequence_types] | |
delegate_attributes :@unit, :prefix => 'unit', :attributes => [:title, :narrative_sidebar_flag, :narrative_sidebar, :narrative] | |
def course | |
@course | |
end | |
def narratable | |
@course | |
end | |
def narratable_class | |
"Course" | |
end | |
def sidebar? | |
@course.narrative_sidebar_flag | |
end | |
def sidebar | |
@course.narrative_sidebar | |
end | |
def narrative | |
@course.narrative | |
end | |
def sequence_groups | |
@course.sequence_groups.sort_by(&:position) | |
end | |
def depth_label | |
@course.depth_label | |
end | |
def root_sequences | |
@root_sequences | |
end | |
def grouped_root_sequences(group_id=nil) | |
@root_sequences.select{|rs| rs.sequence_group_id == group_id} | |
end | |
def units | |
@units | |
end | |
def resources | |
@resources | |
end | |
def resourceable | |
@course | |
end | |
def resourceable_class | |
@course.class.to_s | |
end | |
def activities | |
@activities | |
end | |
def activable | |
@course | |
end | |
def activable_class | |
@course.class.to_s | |
end | |
def asset_ids | |
@activities.collect{|a| a.asset_ids} | |
end | |
def assets | |
@assets | |
end | |
def can_edit? | |
@current_user.can? :update, @course | |
end | |
def can_view? | |
@current_user.can? :read, @course | |
end | |
end #ShowPresenter | |
end #CoursePresenter |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment