diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index fb5a0371d..50444a018 100755 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -553,6 +553,10 @@ def upload_roster begin save_uploaded_roster flash[:success] = "Successfully updated roster!" + unless @roster_warnings.nil? + w = @roster_warnings.keys.join('\n') + flash[:error] = w + end redirect_to(action: "users") && return rescue StandardError => e if e != "Roster validation error" @@ -798,6 +802,7 @@ def categorize_courses_for_listing(courses) def write_cuds(cuds) rowNum = 0 rosterErrors = {} + rosterWarnings = {} rowCUDs = [] duplicates = Set.new @@ -863,7 +868,7 @@ def write_cuds(cuds) new_cud.delete(:year) # Build cud - if !user.nil? + if !user.nil? && !existing cud = @course.course_user_data.new cud.user = user params = ActionController::Parameters.new( @@ -945,13 +950,15 @@ def write_cuds(cuds) rowCUDs.each do |cud| next unless duplicates.include?(cud[:email]) - msg = "Validation failed: Duplicate email #{cud[:email]}" - if !rosterErrors.key?(msg) - rosterErrors[msg] = [] + msg = "Warning : Duplicate email #{cud[:email]}" + if !rosterWarnings.key?(msg) + rosterWarnings[msg] = [] end - rosterErrors[msg].push(cud) + rosterWarnings[msg].push(cud) end + @roster_warnings = rosterWarnings + return if rosterErrors.empty? @roster_error = rosterErrors