Skip to content

Commit 6135f91

Browse files
authored
Merge branch 'master' into enhancement/answers-and-assessment
2 parents 4576b4e + 426c3a9 commit 6135f91

File tree

9 files changed

+40
-15
lines changed

9 files changed

+40
-15
lines changed

lib/cadet/courses/assessment_config.ex

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ defmodule Cadet.Courses.AssessmentConfig do
1212
field(:type, :string)
1313
field(:show_grading_summary, :boolean, default: true)
1414
field(:is_manually_graded, :boolean, default: true)
15-
# used by fronend to determine display styles
15+
field(:has_token_counter, :boolean, default: false)
16+
# used by frontend to determine display styles
1617
field(:early_submission_xp, :integer, default: 0)
1718
field(:hours_before_early_xp_decay, :integer, default: 0)
1819

@@ -23,7 +24,7 @@ defmodule Cadet.Courses.AssessmentConfig do
2324

2425
@required_fields ~w(course_id)a
2526
@optional_fields ~w(order type early_submission_xp
26-
hours_before_early_xp_decay show_grading_summary is_manually_graded)a
27+
hours_before_early_xp_decay show_grading_summary is_manually_graded has_token_counter)a
2728

2829
def changeset(assessment_config, params) do
2930
assessment_config

lib/cadet_web/admin_views/admin_courses_view.ex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ defmodule CadetWeb.AdminCoursesView do
1212
displayInDashboard: :show_grading_summary,
1313
isManuallyGraded: :is_manually_graded,
1414
earlySubmissionXp: :early_submission_xp,
15+
hasTokenCounter: :has_token_counter,
1516
hoursBeforeEarlyXpDecay: :hours_before_early_xp_decay
1617
})
1718
end

lib/cadet_web/helpers/assessments_helpers.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ defmodule CadetWeb.AssessmentsHelpers do
180180
solutionTemplate: "template",
181181
contestEntries:
182182
&Enum.map(&1[:contest_entries], fn entry -> build_contest_entry(entry) end),
183-
contestLeaderboard:
183+
scoreLeaderboard:
184184
&Enum.map(&1[:contest_leaderboard], fn entry ->
185185
build_contest_leaderboard_entry(entry)
186186
end)

lib/cadet_web/views/user_view.ex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ defmodule CadetWeb.UserView do
125125
type: :type,
126126
displayInDashboard: :show_grading_summary,
127127
isManuallyGraded: :is_manually_graded,
128+
hasTokenCounter: :has_token_counter,
128129
earlySubmissionXp: :early_submission_xp,
129130
hoursBeforeEarlyXpDecay: :hours_before_early_xp_decay
130131
})

mix.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@
6464
"mime": {:hex, :mime, "2.0.5", "dc34c8efd439abe6ae0343edbb8556f4d63f178594894720607772a041b04b02", [:mix], [], "hexpm", "da0d64a365c45bc9935cc5c8a7fc5e49a0e0f9932a761c55d6c52b142780a05c"},
6565
"mimerl": {:hex, :mimerl, "1.2.0", "67e2d3f571088d5cfd3e550c383094b47159f3eee8ffa08e64106cdf5e981be3", [:rebar3], [], "hexpm", "f278585650aa581986264638ebf698f8bb19df297f66ad91b18910dfc6e19323"},
6666
"mock": {:hex, :mock, "0.3.8", "7046a306b71db2488ef54395eeb74df0a7f335a7caca4a3d3875d1fc81c884dd", [:mix], [{:meck, "~> 0.9.2", [hex: :meck, repo: "hexpm", optional: false]}], "hexpm", "7fa82364c97617d79bb7d15571193fc0c4fe5afd0c932cef09426b3ee6fe2022"},
67-
"oban": {:hex, :oban, "2.17.3", "ddfd5710aadcd550d2e174c8d73ce5f1865601418cf54a91775f20443fb832b7", [:mix], [{:ecto_sql, "~> 3.6", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:ecto_sqlite3, "~> 0.9", [hex: :ecto_sqlite3, repo: "hexpm", optional: true]}, {:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.16", [hex: :postgrex, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "452eada8bfe0d0fefd0740ab5fa8cf3ef6c375df0b4a3c3805d179022a04738a"},
67+
"oban": {:hex, :oban, "2.17.4", "3ebe79dc0cad16f23e5feea418f9bc5b07d453b8fb7caf376d812be96157a5c5", [:mix], [{:ecto_sql, "~> 3.6", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:ecto_sqlite3, "~> 0.9", [hex: :ecto_sqlite3, repo: "hexpm", optional: true]}, {:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.16", [hex: :postgrex, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "71a804abea3bb7e104782a5b5337cbab76c1a56b9689a6d5159a3873c93898b6"},
6868
"openid_connect": {:hex, :openid_connect, "0.2.2", "c05055363330deab39ffd89e609db6b37752f255a93802006d83b45596189c0b", [:mix], [{:httpoison, "~> 1.2", [hex: :httpoison, repo: "hexpm", optional: false]}, {:jason, ">= 1.0.0", [hex: :jason, repo: "hexpm", optional: false]}, {:jose, "~> 1.8", [hex: :jose, repo: "hexpm", optional: false]}], "hexpm", "735769b6d592124b58edd0582554ce638524c0214cd783d8903d33357d74cc13"},
6969
"parallel_stream": {:hex, :parallel_stream, "1.1.0", "f52f73eb344bc22de335992377413138405796e0d0ad99d995d9977ac29f1ca9", [:mix], [], "hexpm", "684fd19191aedfaf387bbabbeb8ff3c752f0220c8112eb907d797f4592d6e871"},
7070
"parse_trans": {:hex, :parse_trans, "3.4.1", "6e6aa8167cb44cc8f39441d05193be6e6f4e7c2946cb2759f015f8c56b76e5ff", [:rebar3], [], "hexpm", "620a406ce75dada827b82e453c19cf06776be266f5a67cff34e1ef2cbb60e49a"},
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
defmodule Cadet.Repo.Migrations.AddHasTokenCounterToggleToAssessmentConfig do
2+
use Ecto.Migration
3+
4+
def up do
5+
alter table(:assessment_configs) do
6+
add(:has_token_counter, :boolean, null: false, default: false)
7+
end
8+
end
9+
10+
def down do
11+
alter table(:assessment_configs) do
12+
remove(:has_token_counter)
13+
end
14+
end
15+
end

test/cadet_web/admin_controllers/admin_courses_controller_test.exs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,8 @@ defmodule CadetWeb.AdminCoursesControllerTest do
157157
is_manually_graded: false,
158158
order: 2,
159159
type: "Mission2",
160-
course: course
160+
course: course,
161+
has_token_counter: true
161162
})
162163

163164
resp =
@@ -172,23 +173,26 @@ defmodule CadetWeb.AdminCoursesControllerTest do
172173
"displayInDashboard" => true,
173174
"isManuallyGraded" => true,
174175
"type" => "Mission1",
175-
"assessmentConfigId" => config1.id
176+
"assessmentConfigId" => config1.id,
177+
"hasTokenCounter" => false
176178
},
177179
%{
178180
"earlySubmissionXp" => 200,
179181
"hoursBeforeEarlyXpDecay" => 48,
180182
"displayInDashboard" => false,
181183
"isManuallyGraded" => false,
182184
"type" => "Mission2",
183-
"assessmentConfigId" => config2.id
185+
"assessmentConfigId" => config2.id,
186+
"hasTokenCounter" => true
184187
},
185188
%{
186189
"earlySubmissionXp" => 200,
187190
"hoursBeforeEarlyXpDecay" => 48,
188191
"displayInDashboard" => true,
189192
"isManuallyGraded" => true,
190193
"type" => "Mission3",
191-
"assessmentConfigId" => config3.id
194+
"assessmentConfigId" => config3.id,
195+
"hasTokenCounter" => false
192196
}
193197
]
194198

test/cadet_web/controllers/assessments_controller_test.exs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -445,7 +445,7 @@ defmodule CadetWeb.AssessmentsControllerTest do
445445
|> Enum.zip(contests_entries)
446446
|> Enum.map(fn {question, contest_entries} ->
447447
question = Map.put(question, "contestEntries", contest_entries)
448-
Map.put(question, "contestLeaderboard", [])
448+
Map.put(question, "scoreLeaderboard", [])
449449
end)
450450

451451
expected_questions =
@@ -540,7 +540,7 @@ defmodule CadetWeb.AssessmentsControllerTest do
540540
|> json_response(200)
541541
|> Map.get("questions", [])
542542
|> Enum.find(&(&1["id"] == voting_question.id))
543-
|> Map.get("contestLeaderboard")
543+
|> Map.get("scoreLeaderboard")
544544

545545
assert resp_leaderboard == expected_leaderboard
546546
end
@@ -612,7 +612,7 @@ defmodule CadetWeb.AssessmentsControllerTest do
612612
|> json_response(200)
613613
|> Map.get("questions", [])
614614
|> Enum.find(&(&1["id"] == voting_question.id))
615-
|> Map.get("contestLeaderboard")
615+
|> Map.get("scoreLeaderboard")
616616

617617
assert resp_leaderboard == expected_leaderboard
618618
end
@@ -672,7 +672,7 @@ defmodule CadetWeb.AssessmentsControllerTest do
672672
|> json_response(200)
673673
|> Map.get("questions", [])
674674
|> Enum.find(&(&1["id"] == voting_question.id))
675-
|> Map.get("contestLeaderboard")
675+
|> Map.get("scoreLeaderboard")
676676

677677
assert resp_leaderboard == expected_leaderboard
678678
end

test/cadet_web/controllers/user_controller_test.exs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,23 +122,26 @@ defmodule CadetWeb.UserControllerTest do
122122
"isManuallyGraded" => true,
123123
"assessmentConfigId" => config1.id,
124124
"earlySubmissionXp" => 200,
125-
"hoursBeforeEarlyXpDecay" => 48
125+
"hoursBeforeEarlyXpDecay" => 48,
126+
"hasTokenCounter" => false
126127
},
127128
%{
128129
"type" => "test type 2",
129130
"displayInDashboard" => true,
130131
"isManuallyGraded" => true,
131132
"assessmentConfigId" => config2.id,
132133
"earlySubmissionXp" => 200,
133-
"hoursBeforeEarlyXpDecay" => 48
134+
"hoursBeforeEarlyXpDecay" => 48,
135+
"hasTokenCounter" => false
134136
},
135137
%{
136138
"type" => "test type 3",
137139
"displayInDashboard" => true,
138140
"isManuallyGraded" => true,
139141
"assessmentConfigId" => config3.id,
140142
"earlySubmissionXp" => 200,
141-
"hoursBeforeEarlyXpDecay" => 48
143+
"hoursBeforeEarlyXpDecay" => 48,
144+
"hasTokenCounter" => false
142145
}
143146
]
144147
}

0 commit comments

Comments
 (0)