Class: Moodle2CC::Moodle2Converter::SectionConverter

Inherits:
Object
  • Object
show all
Includes:
ConverterHelper
Defined in:
lib/moodle2cc/moodle2converter/section_converter.rb

Constant Summary collapse

ACTIVITY_CONVERTERS =
{
  Moodle2::Models::Book => Moodle2Converter::BookConverter,
  Moodle2::Models::Label => Moodle2Converter::LabelConverter,
}

Constants included from ConverterHelper

ConverterHelper::ACTIVITY_LOOKUP, ConverterHelper::ASSESSMENT_SUFFIX, ConverterHelper::ASSIGNMENT_SUFFIX, ConverterHelper::CHAPTER_SUFFIX, ConverterHelper::CHOICE_ASSESSMENT_SUFFIX, ConverterHelper::COURSE_SUFFIX, ConverterHelper::DISCUSSION_SUFFIX, ConverterHelper::EXTERNAL_URL_SUFFIX, ConverterHelper::FEEDBACK_ASSESSMENT_SUFFIX, ConverterHelper::FILE_SUFFIX, ConverterHelper::FOLDER_SUFFIX, ConverterHelper::GLOSSARY_SUFFIX, ConverterHelper::INTRO_SUFFIX, ConverterHelper::MAX_TITLE_LENGTH, ConverterHelper::MODULE_SUFFIX, ConverterHelper::PAGE_SUFFIX, ConverterHelper::QUESTIONNAIRE_ASSESSMENT_SUFFIX, ConverterHelper::QUESTION_BANK_SUFFIX, ConverterHelper::SUMMARY_PAGE_SUFFIX

Instance Method Summary collapse

Methods included from ConverterHelper

#activity_content_type, #generate_unique_identifier, #generate_unique_identifier_for, #generate_unique_identifier_for_activity, #generate_unique_resource_path, #truncate_text, #workflow_state

Constructor Details

#initializeSectionConverter

Returns a new instance of SectionConverter.



10
11
12
# File 'lib/moodle2cc/moodle2converter/section_converter.rb', line 10

def initialize
  @converters ={}
end

Instance Method Details

#convert(moodle_section) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/moodle2cc/moodle2converter/section_converter.rb', line 14

def convert(moodle_section)
  canvas_module = CanvasCC::Models::CanvasModule.new
  canvas_module.identifier = generate_unique_identifier_for(moodle_section.id, MODULE_SUFFIX)
  canvas_module.title = truncate_text(moodle_section.name)
  canvas_module.workflow_state = workflow_state(moodle_section.visible)

  canvas_module.module_items += convert_activity(moodle_section) if moodle_section.summary && !moodle_section.summary.strip.empty?
  canvas_module.module_items += moodle_section.activities.map { |a| convert_activity(a) }
  canvas_module.module_items = canvas_module.module_items.flatten.compact

  canvas_module
end

#convert_activity(moodle_activity) ⇒ Object



39
40
41
42
43
44
45
# File 'lib/moodle2cc/moodle2converter/section_converter.rb', line 39

def convert_activity(moodle_activity)
  begin
    activity_converter_for(moodle_activity).convert_to_module_items(moodle_activity)
  rescue Exception => e
    puts e.message
  end
end

#convert_to_module_items(moodle_activity) ⇒ Object



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/moodle2cc/moodle2converter/section_converter.rb', line 47

def convert_to_module_items(moodle_activity)
  module_item = CanvasCC::Models::ModuleItem.new
  module_item.identifier = generate_unique_identifier
  module_item.workflow_state = workflow_state(moodle_activity.visible)
  module_item.title = truncate_text(moodle_activity.name)
  unless moodle_activity.is_a? Moodle2::Models::Label
    if moodle_activity.is_a? Moodle2::Models::ExternalUrl
      module_item.identifierref = module_item.identifier
      module_item.url = moodle_activity.external_url.gsub(/\s/, '%20')
    elsif moodle_activity.is_a? Moodle2::Models::Resource
      module_item.identifierref = moodle_activity.file.content_hash if moodle_activity.file
    else
      module_item.identifierref = generate_unique_identifier_for_activity(moodle_activity)
    end
  end
  module_item.content_type = activity_content_type(moodle_activity)
  module_item.indent = '0'

  [module_item]
end

#convert_to_summary_page(moodle_section) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
# File 'lib/moodle2cc/moodle2converter/section_converter.rb', line 27

def convert_to_summary_page(moodle_section)
  canvas_page = CanvasCC::Models::Page.new
  canvas_page.identifier = generate_unique_identifier_for_activity(moodle_section)
  canvas_page.title = truncate_text(moodle_section.name)
  canvas_page.workflow_state = workflow_state(moodle_section.visible)
  canvas_page.editing_roles = CanvasCC::Models::Page::EDITING_ROLE_TEACHER
  canvas_page.body = moodle_section.summary
  canvas_page.href = generate_unique_resource_path(CanvasCC::Models::Page::WIKI_CONTENT, Moodle2CC::CanvasCC::Models::Page.convert_name_to_url("#{moodle_section.name}-summary"))

  canvas_page
end