Skip to content

Commit 443d925

Browse files
committed
add start_date/end_date to enrollment sis imports closes #5408
Change-Id: Ic300cd25ea87210e0cb61d11a433a89bd56dcb3d Reviewed-on: https://gerrit.instructure.com/5325 Tested-by: Hudson <hudson@instructure.com> Reviewed-by: Zach Wily <zach@instructure.com>
1 parent d0adad5 commit 443d925

2 files changed

Lines changed: 20 additions & 7 deletions

File tree

lib/sis/enrollment_importer.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,14 @@ def process(csv)
167167
enrollment.workflow_state = 'inactive'
168168
end
169169

170+
begin
171+
enrollment.start_at = row['start_date'].blank? ? nil : DateTime.parse(row['start_date'])
172+
enrollment.end_at = row['end_date'].blank? ? nil : DateTime.parse(row['end_date'])
173+
rescue
174+
add_warning(csv, "Bad date format for user #{row['user_id']} in #{row['course_id'].blank? ? 'section' : 'course'} #{row['course_id'].blank? ? row['section_id'] : row['course_id']}")
175+
end
176+
177+
170178
courses_to_touch_ids.add(enrollment.course)
171179
if enrollment.should_update_user_account_association?
172180
if enrollment.new_record? && !update_account_association_user_ids.include?(user.id)

spec/lib/sis_csv_importer_spec.rb

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -877,20 +877,22 @@ def gen_ssha_password(password)
877877
"user_2,user2,User,Dos,user2@example.com,active",
878878
"user_3,user4,User,Tres,user3@example.com,active",
879879
"user_5,user5,User,Quatro,user5@example.com,active",
880-
"user_6,user6,User,Cinco,user6@example.com,active"
880+
"user_6,user6,User,Cinco,user6@example.com,active",
881+
"user_7,user7,User,Siete,user7@example.com,active"
881882
)
882883
process_csv_data(
883884
"section_id,course_id,name,status,start_date,end_date",
884885
"S001,test_1,Sec1,active,,"
885886
)
886887
# the enrollments
887888
process_csv_data(
888-
"course_id,user_id,role,section_id,status,associated_user_id",
889-
"test_1,user_1,teacher,,active,",
890-
",user_2,student,S001,active,",
891-
"test_1,user_3,ta,S001,active,",
892-
"test_1,user_5,observer,S001,active,user_2",
893-
"test_1,user_6,designer,S001,active,"
889+
"course_id,user_id,role,section_id,status,associated_user_id,start_date,end_date",
890+
"test_1,user_1,teacher,,active,,,",
891+
",user_2,student,S001,active,,,",
892+
"test_1,user_3,ta,S001,active,,,",
893+
"test_1,user_5,observer,S001,active,user_2,,",
894+
"test_1,user_6,designer,S001,active,,,",
895+
"test_1,user_7,teacher,S001,active,,1985-08-24,2011-08-29"
894896
)
895897
course = @account.courses.find_by_sis_source_id("test_1")
896898
course.teachers.first.name.should == "User Uno"
@@ -899,6 +901,9 @@ def gen_ssha_password(password)
899901
course.observers.first.name.should == "User Quatro"
900902
course.observer_enrollments.first.associated_user_id.should == course.students.first.id
901903
course.designers.first.name.should == "User Cinco"
904+
course.teacher_enrollments.last.user.name.should == "User Siete"
905+
course.teacher_enrollments.last.start_at.should == DateTime.new(1985, 8, 24)
906+
course.teacher_enrollments.last.end_at.should == DateTime.new(2011, 8, 29)
902907
end
903908

904909
it "should not try looking up a section to enroll into if the section name is empty" do

0 commit comments

Comments
 (0)