module Moodle2CC::Moodle2Converter::FeedbackConverter
Constants
- QUESTION_TYPE_MAP
Public Instance Methods
convert_feedback(moodle_feedback)
click to toggle source
# File lib/moodle2cc/moodle2converter/feedback_converter.rb, line 5 def convert_feedback(moodle_feedback) canvas_assessment = Moodle2CC::CanvasCC::Models::Assessment.new canvas_assessment.identifier = generate_unique_identifier_for_activity(moodle_feedback) canvas_assessment.title = truncate_text(moodle_feedback.name) canvas_assessment.description = moodle_feedback.intro canvas_assessment.workflow_state = workflow_state(moodle_feedback.visible) canvas_assessment.lock_at = Time.at(Integer(moodle_feedback.time_close)) if moodle_feedback.time_close canvas_assessment.unlock_at = Time.at(Integer(moodle_feedback.time_open)) if moodle_feedback.time_open canvas_assessment.scoring_policy = 'keep_latest' canvas_assessment.quiz_type = 'survey' canvas_assessment.allowed_attempts = -1 if moodle_feedback.multiple_submit canvas_assessment.items = [] moodle_feedback.items.each do |item| if canvas_question = convert_feedback_question(item) canvas_assessment.items << canvas_question end end canvas_assessment end
convert_feedback_question(moodle_question)
click to toggle source
# File lib/moodle2cc/moodle2converter/feedback_converter.rb, line 39 def convert_feedback_question(moodle_question) return unless canvas_type = QUESTION_TYPE_MAP[moodle_question.type] canvas_question = Moodle2CC::CanvasCC::Models::Question.create(canvas_type) canvas_question.identifier = generate_unique_identifier_for(moodle_question.id, "_feedback_question") if moodle_question.type == 'label' canvas_question.title = truncate_text(moodle_question.name) canvas_question.material = moodle_question.presentation else canvas_question.title = truncate_text(moodle_question.label) canvas_question.material = moodle_question.name end if ['multichoice', 'multichoicerated'].include?(moodle_question.type) choices = moodle_question.presentation.to_s.sub('r>>>>>', '').split("\\n").map do |c| c = c.strip c = c.sub('|', '') if c.start_with?('|') if moodle_question.type == 'multichoicerated' && c =~ /(\d+)\#\#\#\#(.*)/ c = "[#{$1}] #{$2}" end c end choices.each_with_index do |choice, num| answer = Moodle2CC::CanvasCC::Models::Answer.new answer.id = generate_unique_identifier_for(moodle_question.id, "_answer#{num + 1}") answer.answer_text = choice canvas_question.answers << answer end end canvas_question end