• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

source-academy / backend / e0330f2cf38b2d8af12bffd20f4cac2158d607fc-PR-1236

31 Mar 2025 09:12AM UTC coverage: 19.982% (-73.6%) from 93.607%
e0330f2cf38b2d8af12bffd20f4cac2158d607fc-PR-1236

Pull #1236

github

RichDom2185
Redate migrations to maintain total ordering
Pull Request #1236: Added Exam mode

12 of 57 new or added lines in 8 files covered. (21.05%)

2430 existing lines in 97 files now uncovered.

671 of 3358 relevant lines covered (19.98%)

3.03 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/lib/cadet_web/admin_views/admin_assessments_view.ex
1
defmodule CadetWeb.AdminAssessmentsView do
2
  use CadetWeb, :view
3
  use Timex
4
  import CadetWeb.AssessmentsHelpers
5

6
  def render("index.json", %{assessments: assessments}) do
UNCOV
7
    render_many(assessments, CadetWeb.AdminAssessmentsView, "overview.json", as: :assessment)
×
8
  end
9

10
  def render("overview.json", %{assessment: assessment}) do
UNCOV
11
    transform_map_for_view(assessment, %{
×
12
      id: :id,
13
      courseId: :course_id,
14
      title: :title,
15
      shortSummary: :summary_short,
UNCOV
16
      openAt: &format_datetime(&1.open_at),
×
UNCOV
17
      closeAt: &format_datetime(&1.close_at),
×
UNCOV
18
      type: & &1.config.type,
×
UNCOV
19
      isManuallyGraded: & &1.config.is_manually_graded,
×
20
      story: :story,
21
      number: :number,
22
      reading: :reading,
UNCOV
23
      status: &(&1.user_status || "not_attempted"),
×
24
      maxXp: :max_xp,
UNCOV
25
      xp: &(&1.xp || 0),
×
26
      coverImage: :cover_picture,
UNCOV
27
      private: &password_protected?(&1.password),
×
28
      isPublished: :is_published,
29
      questionCount: :question_count,
UNCOV
30
      gradedCount: &(&1.graded_count || 0),
×
UNCOV
31
      earlySubmissionXp: & &1.config.early_submission_xp,
×
32
      maxTeamSize: :max_team_size,
33
      hasVotingFeatures: :has_voting_features,
34
      hasTokenCounter: :has_token_counter,
35
      isVotingPublished: :is_voting_published
36
    })
37
  end
38

39
  def render("show.json", %{assessment: assessment}) do
40
    transform_map_for_view(
×
41
      assessment,
42
      %{
43
        id: :id,
44
        courseId: :course_id,
45
        title: :title,
46
        type: & &1.config.type,
×
47
        story: :story,
48
        number: :number,
49
        reading: :reading,
50
        longSummary: :summary_long,
51
        hasTokenCounter: :has_token_counter,
52
        missionPDF: &Cadet.Assessments.Upload.url({&1.mission_pdf, &1}),
×
53
        questions:
54
          &Enum.map(&1.questions, fn question ->
×
55
            map =
×
56
              build_question_with_answer_and_solution_if_ungraded(%{
57
                question: question
58
              })
59

60
            map
×
61
          end)
62
      }
63
    )
64
  end
65

66
  def render("leaderboard.json", %{leaderboard: leaderboard}) do
UNCOV
67
    render_many(leaderboard, CadetWeb.AdminAssessmentsView, "contestEntry.json", as: :contestEntry)
×
68
  end
69

70
  def render("contestEntry.json", %{contestEntry: contestEntry}) do
UNCOV
71
    transform_map_for_view(
×
72
      contestEntry,
73
      %{
74
        student_name: :student_name,
UNCOV
75
        answer: & &1.answer["code"],
×
76
        final_score: "final_score"
77
      }
78
    )
79
  end
80

UNCOV
81
  defp password_protected?(nil), do: false
×
82

83
  defp password_protected?(_), do: true
×
84
end
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc