@@ -50,30 +50,31 @@ def required_fields
5050 #~ Class methods ............................................................
5151
5252 def self . get_progress ( user_id , inst_chapter_module_id , inst_book_id , lis_outcome_service_url = nil , lis_result_sourcedid = nil , lms_access_id = nil )
53- module_progress = OdsaModuleProgress . find_or_create_by ( user_id : user_id , inst_chapter_module_id : inst_chapter_module_id ) do |mp |
54- mp . inst_book_id = inst_book_id
55- end
56- if lis_outcome_service_url . present?
53+ module_progress = OdsaModuleProgress . find_or_initialize_by ( user_id : user_id , inst_chapter_module_id : inst_chapter_module_id )
54+ if module_progress . new_record?
55+ module_progress . inst_book_id = inst_book_id
5756 module_progress . lis_outcome_service_url = lis_outcome_service_url
5857 module_progress . lis_result_sourcedid = lis_result_sourcedid
5958 module_progress . lms_access_id = lms_access_id
60- save_result = module_progress . save!
59+ module_progress . save!
60+ elsif lis_outcome_service_url . present? && module_progress . lis_outcome_service_url != lis_outcome_service_url
61+ module_progress . lis_outcome_service_url = lis_outcome_service_url
62+ module_progress . lis_result_sourcedid = lis_result_sourcedid
63+ module_progress . lms_access_id = lms_access_id
64+ module_progress . save!
6165 end
6266
6367 module_progress
6468 end
6569
6670 def self . get_standalone_progress ( user_id , inst_module_version_id , lis_outcome_service_url = nil , lis_result_sourcedid = nil , lms_access_id = nil )
67- module_progress = OdsaModuleProgress . find_or_create_by ( user_id : user_id , inst_module_version_id : inst_module_version_id )
68- if module_progress == nil
69- module_progress = OdsaModuleProgress . new ( user_id : user_id , inst_module_version_id : inst_module_version_id )
70- unless lis_outcome_service_url == nil or lis_result_sourcedid == nil
71- module_progress . lis_outcome_service_url = lis_outcome_service_url
72- module_progress . lis_result_sourcedid = lis_result_sourcedid
73- module_progress . lms_access_id = lms_access_id
74- end
71+ module_progress = OdsaModuleProgress . find_or_initialize_by ( user_id : user_id , inst_module_version_id : inst_module_version_id )
72+ if module_progress . new_record?
73+ module_progress . lis_outcome_service_url = lis_outcome_service_url
74+ module_progress . lis_result_sourcedid = lis_result_sourcedid
75+ module_progress . lms_access_id = lms_access_id
7576 module_progress . save!
76- elsif ( lis_outcome_service_url != nil and module_progress . lis_outcome_service_url == nil ) or ( lis_result_sourcedid != nil and module_progress . lis_result_sourcedid == nil ) or ( lms_access_id != nil and module_progress . lms_access_id == nil )
77+ elsif lis_outcome_service_url . present? && module_progress . lis_outcome_service_url != lis_outcome_service_url
7778 module_progress . lis_outcome_service_url = lis_outcome_service_url
7879 module_progress . lis_result_sourcedid = lis_result_sourcedid
7980 module_progress . lms_access_id = lms_access_id
@@ -84,7 +85,6 @@ def self.get_standalone_progress(user_id, inst_module_version_id, lis_outcome_se
8485
8586 #~ Instance methods .........................................................
8687 def update_proficiency ( inst_exercise , force_send = false )
87- Rails . logger . info ( "--- ODSA_MODULE_PROGRESS: update_proficiency called for user #{ self . user_id } ---" )
8888 if self . inst_module_version_id
8989 # standalone module
9090 return update_standalone_proficiency ( inst_exercise )
@@ -104,13 +104,14 @@ def update_proficiency(inst_exercise, force_send = false)
104104 # Comparing two floats.
105105 # Only send score to LMS if the score has increased, or previous
106106 # passback was not performed or unsuccessful
107- if force_send or
108- self . last_passback . nil? or
109- ( self . inst_book && self . inst_book . last_compiled . nil? ) or
110- ( self . last_passback && self . inst_book && self . inst_book . last_compiled && ( self . last_passback < self . inst_book . last_compiled ) ) or
111- self . highest_score > old_score
112- res = post_score_to_lms ( )
113- end
107+ # if force_send or
108+ # self.last_passback.nil? or
109+ # (self.inst_book && self.inst_book.last_compiled.nil?) or
110+ # (self.last_passback && self.inst_book && self.inst_book.last_compiled && (self.last_passback < self.inst_book.last_compiled)) or
111+ # self.highest_score > old_score
112+ # res = post_score_to_lms()
113+ # end
114+ res = post_score_to_lms ( )
114115 self . save!
115116
116117 last_exercise = false
0 commit comments