@@ -1943,12 +1943,12 @@ defmodule Cadet.Assessments do
19431943 left_join: asst in subquery ( question_answers_query ) ,
19441944 on: asst . assessment_id == s . assessment_id ,
19451945 as: :asst ,
1946- left_join: user in User ,
1947- on: user . id == s . student_id ,
1948- as: :user ,
19491946 left_join: cr in CourseRegistration ,
1950- on: user . id == cr . user_id ,
1947+ on: s . student_id == cr . id ,
19511948 as: :cr ,
1949+ left_join: user in User ,
1950+ on: user . id == cr . user_id ,
1951+ as: :user ,
19521952 left_join: group in Group ,
19531953 on: cr . group_id == group . id ,
19541954 as: :group ,
@@ -1982,7 +1982,9 @@ defmodule Cadet.Assessments do
19821982 query =
19831983 sort_submission ( query , Map . get ( params , "sortBy" , "" ) , Map . get ( params , "sortDirection" , "" ) )
19841984
1985- query = from ( [ s , ans , asst , user , cr , group ] in query , order_by: [ desc: s . inserted_at ] )
1985+ query =
1986+ from ( [ s , ans , asst , cr , user , group ] in query , order_by: [ desc: s . inserted_at , asc: s . id ] )
1987+
19861988 submissions = Repo . all ( query )
19871989
19881990 count_query =
@@ -2027,30 +2029,30 @@ defmodule Cadet.Assessments do
20272029 defp sort_submission_asc ( query , sort_by ) do
20282030 cond do
20292031 sort_by == "assessmentName" ->
2030- from ( [ s , ans , asst , user , cr , group , config ] in query ,
2032+ from ( [ s , ans , asst , cr , user , group , config ] in query ,
20312033 order_by: fragment ( "upper(?)" , asst . title )
20322034 )
20332035
20342036 sort_by == "assessmentType" ->
2035- from ( [ s , ans , asst , user , cr , group , config ] in query , order_by: asst . config_id )
2037+ from ( [ s , ans , asst , cr , user , group , config ] in query , order_by: asst . config_id )
20362038
20372039 sort_by == "studentName" ->
2038- from ( [ s , ans , asst , user , cr , group , config ] in query ,
2040+ from ( [ s , ans , asst , cr , user , group , config ] in query ,
20392041 order_by: fragment ( "upper(?)" , user . name )
20402042 )
20412043
20422044 sort_by == "studentUsername" ->
2043- from ( [ s , ans , asst , user , cr , group , config ] in query ,
2045+ from ( [ s , ans , asst , cr , user , group , config ] in query ,
20442046 order_by: fragment ( "upper(?)" , user . username )
20452047 )
20462048
20472049 sort_by == "groupName" ->
2048- from ( [ s , ans , asst , user , cr , group , config ] in query ,
2050+ from ( [ s , ans , asst , cr , user , group , config ] in query ,
20492051 order_by: fragment ( "upper(?)" , group . name )
20502052 )
20512053
20522054 sort_by == "progressStatus" ->
2053- from ( [ s , ans , asst , user , cr , group , config ] in query ,
2055+ from ( [ s , ans , asst , cr , user , group , config ] in query ,
20542056 order_by: [
20552057 asc: config . is_manually_graded ,
20562058 asc: s . status ,
@@ -2060,7 +2062,7 @@ defmodule Cadet.Assessments do
20602062 )
20612063
20622064 sort_by == "xp" ->
2063- from ( [ s , ans , asst , user , cr , group , config ] in query ,
2065+ from ( [ s , ans , asst , cr , user , group , config ] in query ,
20642066 order_by: ans . xp + ans . xp_adjustment
20652067 )
20662068
@@ -2072,30 +2074,30 @@ defmodule Cadet.Assessments do
20722074 defp sort_submission_desc ( query , sort_by ) do
20732075 cond do
20742076 sort_by == "assessmentName" ->
2075- from ( [ s , ans , asst , user , cr , group , config ] in query ,
2077+ from ( [ s , ans , asst , cr , user , group , config ] in query ,
20762078 order_by: [ desc: fragment ( "upper(?)" , asst . title ) ]
20772079 )
20782080
20792081 sort_by == "assessmentType" ->
2080- from ( [ s , ans , asst , user , cr , group , config ] in query , order_by: [ desc: asst . config_id ] )
2082+ from ( [ s , ans , asst , cr , user , group , config ] in query , order_by: [ desc: asst . config_id ] )
20812083
20822084 sort_by == "studentName" ->
2083- from ( [ s , ans , asst , user , cr , group , config ] in query ,
2085+ from ( [ s , ans , asst , cr , user , group , config ] in query ,
20842086 order_by: [ desc: fragment ( "upper(?)" , user . name ) ]
20852087 )
20862088
20872089 sort_by == "studentUsername" ->
2088- from ( [ s , ans , asst , user , cr , group , config ] in query ,
2090+ from ( [ s , ans , asst , cr , user , group , config ] in query ,
20892091 order_by: [ desc: fragment ( "upper(?)" , user . username ) ]
20902092 )
20912093
20922094 sort_by == "groupName" ->
2093- from ( [ s , ans , asst , user , cr , group , config ] in query ,
2095+ from ( [ s , ans , asst , cr , user , group , config ] in query ,
20942096 order_by: [ desc: fragment ( "upper(?)" , group . name ) ]
20952097 )
20962098
20972099 sort_by == "progressStatus" ->
2098- from ( [ s , ans , asst , user , cr , group , config ] in query ,
2100+ from ( [ s , ans , asst , cr , user , group , config ] in query ,
20992101 order_by: [
21002102 desc: config . is_manually_graded ,
21012103 desc: s . status ,
@@ -2105,7 +2107,7 @@ defmodule Cadet.Assessments do
21052107 )
21062108
21072109 sort_by == "xp" ->
2108- from ( [ s , ans , asst , user , cr , group , config ] in query ,
2110+ from ( [ s , ans , asst , cr , user , group , config ] in query ,
21092111 order_by: [ desc: ans . xp + ans . xp_adjustment ]
21102112 )
21112113
0 commit comments