Sha256: efad84959306e05c8e9f5b8587f7e5922bb5cc5b1034864d32dfba9e5b7032da

Contents?: true

Size: 1.15 KB

Versions: 9

Compression:

Stored size: 1.15 KB

Contents

# frozen_string_literal: true

module Lcms
  module Engine
    # Simple presenter for Curriculum (resources tree)
    class CurriculumPresenter
      UNIT_LEVEL = Lcms::Engine::Resource.hierarchy.index(:unit)

      def editor_props
        @editor_props ||= {
          form_url: routes.admin_curriculum_path
        }
      end

      def parse_jstree_node(node)
        {
          id: node.id,
          text: element_text(node),
          children: node.children.any?,
          li_attr: { title: node.title }
        }
      end

      def routes
        Lcms::Engine::Engine.routes.url_helpers
      end

      private

      def element_text(resource)
        case resource.curriculum_type
        when 'subject'
          resource.title
        when 'unit'
          resource.short_title&.upcase.presence || 'N/A'
        when 'grade'
          resource.short_title&.capitalize.presence || 'N/A'
        when 'lesson_set'
          "Lesson set #{resource.metadata['lesson_set']}"
        when 'lesson'
          "Lesson #{resource.metadata['lesson']}"
        else
          "Unknown curriculum type for: #{resource.title}"
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
lcms-engine-0.5.5 app/presenters/lcms/engine/curriculum_presenter.rb
lcms-engine-0.5.4 app/presenters/lcms/engine/curriculum_presenter.rb
lcms-engine-0.5.3 app/presenters/lcms/engine/curriculum_presenter.rb
lcms-engine-0.5.2 app/presenters/lcms/engine/curriculum_presenter.rb
lcms-engine-0.5.1 app/presenters/lcms/engine/curriculum_presenter.rb
lcms-engine-0.5.0 app/presenters/lcms/engine/curriculum_presenter.rb
lcms-engine-0.4.2 app/presenters/lcms/engine/curriculum_presenter.rb
lcms-engine-0.4.1 app/presenters/lcms/engine/curriculum_presenter.rb
lcms-engine-0.4.0 app/presenters/lcms/engine/curriculum_presenter.rb