moodle2cc 0.2.31 → 0.2.32

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 454c08c2f88ab86fe2036e22d82db441706aaca7
4
- data.tar.gz: c9b8432e8e060b7519b76bb4c8493e7820e594f5
3
+ metadata.gz: 84458c72175d199565c6a5bfc146137b3b37c13b
4
+ data.tar.gz: 35fc6d255908a4bb61e5c9b88680849604d435ff
5
5
  SHA512:
6
- metadata.gz: 71ac2bb459b06db08c18b752c2475962b3dc1d7fdcb46aa68f9a49bc0c75ef882d3f4794a4a2c0cc09e5e6465d30b1ab7a076c21a5213ed6dce3281dc97a5b64
7
- data.tar.gz: 3ed60f392be83ef7a59d930ff92205e15bdd130c99f9a9e1c8ed3b0f004218a188bbb385bf29aa6db90054e3a974bba53af481ae6f7c98b8c6392f0c505b571b
6
+ metadata.gz: 7987922081107f961e132a778d6f1027dcf6ca5d999a01e54ca4883b40cc7b4c9dc42684c5a816b127dd799c0c9caca83028686d741b52777e2901143fdb3df1
7
+ data.tar.gz: b42092f99be42df4685309c839000be17458dc30042fdf6118705deae2a19e5e0bbe958c51bee6cd4c6eeba32bbd670b5e671da99bf58acf1e58870c273b79a1
@@ -43,6 +43,7 @@ module Moodle2CC::CanvasCC
43
43
  xml.automatic_peer_reviews assignment.automatic_peer_reviews unless assignment.automatic_peer_reviews.nil?
44
44
  xml.grade_group_students_individually assignment.grade_group_students_individually unless assignment.grade_group_students_individually.nil?
45
45
  xml.muted assignment.muted unless assignment.muted.nil?
46
+ xml.external_tool_url assignment.external_tool_url unless assignment.external_tool_url.nil?
46
47
  }
47
48
  end.to_xml
48
49
  File.open(File.join(assignment_dir, Moodle2CC::CanvasCC::Models::Assignment::ASSIGNMENT_SETTINGS_FILE), 'w') { |f| f.write(xml) }
@@ -3,7 +3,7 @@ module Moodle2CC::CanvasCC::Models
3
3
  attr_accessor :identifier, :title, :body, :due_at, :lock_at, :unlock_at, :all_day_date, :peer_reviews_due_at,
4
4
  :assignment_group_identifier_ref, :workflow_state, :points_possible, :grading_type, :all_day,
5
5
  :submission_types, :position, :peer_review_count, :peer_reviews_assigned, :peer_reviews,
6
- :automatic_peer_reviews, :grade_group_students_individually, :muted
6
+ :automatic_peer_reviews, :grade_group_students_individually, :muted, :external_tool_url
7
7
 
8
8
  LAR_TYPE = 'associatedcontent/imscc_xmlv1p1/learning-application-resource'
9
9
  ASSIGNMENT_SETTINGS_FILE = 'assignment_settings.xml'
@@ -173,8 +173,17 @@ module Moodle2CC::Moodle2
173
173
  end
174
174
 
175
175
  def parse_lti_links(work_dir, course)
176
- if lti_links = Parsers::LtiParser.new(work_dir).parse
177
- course.lti_links = lti_links
176
+ if lti_items = Parsers::LtiParser.new(work_dir).parse
177
+ course.assignments ||= []
178
+ course.lti_links ||= []
179
+ lti_items.each do |item|
180
+ case item
181
+ when Models::Lti
182
+ course.lti_links << item
183
+ when Models::Assignment
184
+ course.assignments << item
185
+ end
186
+ end
178
187
  end
179
188
  end
180
189
 
@@ -5,6 +5,7 @@ module Moodle2CC::Moodle2::Models
5
5
  :grade, :time_modified, :completion_submit, :require_submission_statement, :team_submission,
6
6
  :require_all_team_members_submit, :team_submission_grouping_id, :blind_marking, :reveal_identities,
7
7
  :online_text_submission, :file_submission, :max_file_size_submission, :max_files_submission,
8
- :submission_comments, :feedback_comments, :feedback_files, :offline_grading_worksheet, :visible
8
+ :submission_comments, :feedback_comments, :feedback_files, :offline_grading_worksheet, :visible,
9
+ :external_tool_url
9
10
  end
10
11
  end
@@ -1,3 +1,4 @@
1
+ require 'byebug'
1
2
  module Moodle2CC::Moodle2
2
3
  class Parsers::LtiParser
3
4
  include Parsers::ParserHelper
@@ -17,17 +18,30 @@ module Moodle2CC::Moodle2
17
18
  private
18
19
 
19
20
  def parse_lti(dir)
20
- lti = Models::Lti.new
21
+ model = nil
21
22
  activity_dir = File.join(@backup_dir, dir)
22
23
  File.open(File.join(activity_dir, LTI_XML)) do |f|
23
24
  lti_xml = Nokogiri::XML(f)
24
- lti.id = lti_xml.at_xpath('/activity/lti/@id').value
25
- lti.module_id = lti_xml.at_xpath('/activity/@moduleid').value
26
- lti.name = parse_text(lti_xml, '/activity/lti/name')
27
- lti.url = parse_text(lti_xml, '/activity/lti/toolurl')
25
+ points = parse_text(lti_xml, '/activity/lti/grade')
26
+ if points && points.to_i > 0
27
+ model = Models::Assignment.new
28
+ model.id = lti_xml.at_xpath('/activity/lti/@id').value
29
+ model.module_id = lti_xml.at_xpath('/activity/@moduleid').value
30
+ model.name = parse_text(lti_xml, '/activity/lti/name')
31
+ model.intro = parse_text(lti_xml, "/activity/lti/intro")
32
+ model.intro_format = parse_text(lti_xml, "/activity/lti/introformat")
33
+ model.grade = points
34
+ model.external_tool_url = parse_text(lti_xml, '/activity/lti/toolurl')
35
+ else
36
+ model = Models::Lti.new
37
+ model.id = lti_xml.at_xpath('/activity/lti/@id').value
38
+ model.module_id = lti_xml.at_xpath('/activity/@moduleid').value
39
+ model.name = parse_text(lti_xml, '/activity/lti/name')
40
+ model.url = parse_text(lti_xml, '/activity/lti/toolurl')
41
+ end
28
42
  end
29
- parse_module(activity_dir, lti)
30
- lti
43
+ parse_module(activity_dir, model)
44
+ model
31
45
  end
32
46
 
33
47
 
@@ -12,6 +12,7 @@ module Moodle2CC::Moodle2Converter
12
12
  canvas_assignment.lock_at = Time.at(Integer(moodle_assignment.cut_off_date)) if moodle_assignment.cut_off_date
13
13
  canvas_assignment.unlock_at = Time.at(Integer(moodle_assignment.allow_submissions_from_date)) if moodle_assignment.allow_submissions_from_date
14
14
  canvas_assignment.workflow_state = workflow_state(moodle_assignment.visible)
15
+ canvas_assignment.external_tool_url = moodle_assignment.external_tool_url
15
16
  points = Integer(moodle_assignment.grade)
16
17
  if points > 0 || scale = moodle_grading_scales[-1 * points] # moodle uses negative numbers for grading scale ids
17
18
  if scale && scale.count == 2
@@ -23,6 +24,7 @@ module Moodle2CC::Moodle2Converter
23
24
  end
24
25
  canvas_assignment.submission_types << 'online_text_entry' if moodle_assignment.online_text_submission == '1'
25
26
  canvas_assignment.submission_types << 'online_upload' if moodle_assignment.file_submission == '1'
27
+ canvas_assignment.submission_types << 'external_tool' if moodle_assignment.external_tool_url && moodle_assignment.external_tool_url.length > 0
26
28
  else
27
29
  canvas_assignment.grading_type = 'not_graded'
28
30
  canvas_assignment.submission_types << 'not_graded'
@@ -1,3 +1,3 @@
1
1
  module Moodle2CC
2
- VERSION = "0.2.31"
2
+ VERSION = "0.2.32"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: moodle2cc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.31
4
+ version: 0.2.32
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christopher Durtschi
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2016-04-29 00:00:00.000000000 Z
13
+ date: 2016-05-17 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rubyzip