Skip to content

Commit

Permalink
Merge branch 'development' of github.com:CurricularAnalytics/Curricul…
Browse files Browse the repository at this point in the history
…arAnalytics.jl into development
  • Loading branch information
heileman committed Jan 29, 2020
2 parents 6115158 + 9cc76ea commit 8934941
Showing 1 changed file with 20 additions and 20 deletions.
40 changes: 20 additions & 20 deletions src/DataHandler.jl
Original file line number Diff line number Diff line change
Expand Up @@ -24,57 +24,57 @@ function string_to_requisite(req::String)
end
end

function json_to_julia(json_tuple::NamedTuple, is_curriculum::Bool)
function json_to_julia(json_tuple, is_curriculum::Bool)
all_courses = Array{Course}(undef, 0)
courses_dict = Dict{Int, Course}()
if (is_curriculum)
num_courses = length(json_tuple.courses)

for i = 1:num_courses
course = json_tuple.courses[i]
if(:nameSub in keys(course))
if("nameSub" in keys(course))
# If it is, use nameSub as the course name when constructing the course object
course_object = Course(course[:nameSub], course[:credits])
course_object = Course(course.nameSub, course.credits)
else
# Otherwise, just use the normal course :name
course_object = Course(course[:name], course[:credits])
course_object = Course(course.name, course.credits)
end
push!(all_courses, course_object)
courses_dict[course.id] = course_object
end

for i = 1:num_courses
course = json_tuple.courses[i]
for req in course[:requisites]
for req in course.requisites
# Create the requisite relationship
source = courses_dict[req[:source_id]]
target = courses_dict[req[:target_id]]
add_requisite!(source, target, string_to_requisite(req[:type]))
source = courses_dict[req.source_id]
target = courses_dict[req.target_id]
add_requisite!(source, target, string_to_requisite(req.type))
end
end

curric = Curriculum("", all_courses)
return curric
elseif (isdefined(json_tuple, :curriculum_terms))
elseif ("curriculum_terms" in keys(json_tuple))
# Create an array "terms" with elements equal to the number of terms from the file
num_terms = length(json_tuple.curriculum_terms)
terms = Array{Term}(undef, num_terms)

# For every term
for i = 1:num_terms
# Grab the current term
current_term = json_tuple[:curriculum_terms][i]
current_term = json_tuple.curriculum_terms[i]
# Create an array of course objects for the current term
courses = Array{Course}(undef, 0)
# For each course in the current term
for course in current_term[:curriculum_items]
for course in current_term.curriculum_items
# Check if nameSub is defined on the current course
if(:nameSub in keys(course))
if("nameSub" in keys(course))
# If it is, use nameSub as the course name when constructing the course object
current_course = Course(course[:nameSub], course[:credits])
current_course = Course(course.nameSub, course.credits)
else
# Otherwise, just use the normal course :name
current_course = Course(course[:name], course[:credits])
current_course = Course(course.name, course.credits)
end
# Push each Course object to the array of courses
push!(courses, current_course)
Expand All @@ -83,15 +83,15 @@ function json_to_julia(json_tuple::NamedTuple, is_curriculum::Bool)
end

# For each course object create its requisites
for course in current_term[:curriculum_items]
for course in current_term.curriculum_items
# If the course has requisites
if !isempty(course[:curriculum_requisites])
if !isempty(course.curriculum_requisites)
# For each requisite of the course
for req in course[:curriculum_requisites]
for req in course.curriculum_requisites
# Create the requisite relationship
source = courses_dict[req[:source_id]]
target = courses_dict[req[:target_id]]
add_requisite!(source, target, string_to_requisite(req[:type]))
source = courses_dict[req.source_id]
target = courses_dict[req.target_id]
add_requisite!(source, target, string_to_requisite(req.type))
end
end
end
Expand Down

0 comments on commit 8934941

Please sign in to comment.