Sha256: 4e2c608b922b4b840a2c754d74ba7c1d4a2e4a1bdb197c3af9c32ef6001c47a4

Contents?: true

Size: 1.92 KB

Versions: 25

Compression:

Stored size: 1.92 KB

Contents

module Mumuki::Laboratory::Controllers::ResultsRendering
  extend ActiveSupport::Concern

  included do
    include ProgressBarHelper, ExerciseInputHelper

    before_action :set_guide_previously_done!
  end

  def render_results_json(assignment, results = {})
    render json: results.merge(progress_json).merge(
      html: render_results_html(assignment),
      title_html: render_results_title_html(assignment),
      button_html: render_results_button_html(assignment),
      expectations_html: render_results_expectations_html(assignment),
      remaining_attempts_html: remaining_attempts_text(assignment),
      test_results: assignment.test_results)
  end

  def progress_json
    {
      guide_finished_by_solution: guide_finished_by_solution?,
      class_for_progress_list_item: class_for_progress_list_item(@exercise, true)
    }
  end

  def render_results_html(assignment)
    render_to_string partial: results_partial(assignment),
                     locals: {assignment: assignment}
  end

  def results_partial(assignment)
    return 'out_of_attempts' unless assignment.attempts_left?
    assignment.input_kids? ? 'exercise_solutions/kids_results' : 'exercise_solutions/results'
  end

  def render_results_title_html(assignment)
    render_to_string partial: 'exercise_solutions/results_title',
                     locals: {contextualization: assignment}
  end

  def render_results_button_html(assignment)
    render_to_string partial: 'exercise_solutions/kids_results_button',
                     locals: {assignment: assignment}
  end

  def render_results_expectations_html(assignment)
    render_to_string partial: 'exercise_solutions/expectations',
                     locals: {assignment: assignment}
  end

  def guide_finished_by_solution?
    !@guide_previously_done && @exercise.guide_done_for?(current_user)
  end

  def set_guide_previously_done!
    @guide_previously_done = @exercise.guide_done_for?(current_user)
  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
mumuki-laboratory-7.0.12 lib/mumuki/laboratory/controllers/results_rendering.rb
mumuki-laboratory-7.0.11 lib/mumuki/laboratory/controllers/results_rendering.rb
mumuki-laboratory-7.0.10 lib/mumuki/laboratory/controllers/results_rendering.rb
mumuki-laboratory-7.0.9 lib/mumuki/laboratory/controllers/results_rendering.rb
mumuki-laboratory-7.0.8 lib/mumuki/laboratory/controllers/results_rendering.rb
mumuki-laboratory-7.0.7 lib/mumuki/laboratory/controllers/results_rendering.rb
mumuki-laboratory-7.0.6 lib/mumuki/laboratory/controllers/results_rendering.rb
mumuki-laboratory-7.0.5 lib/mumuki/laboratory/controllers/results_rendering.rb
mumuki-laboratory-7.0.4 lib/mumuki/laboratory/controllers/results_rendering.rb
mumuki-laboratory-7.0.3 lib/mumuki/laboratory/controllers/results_rendering.rb
mumuki-laboratory-7.0.2 lib/mumuki/laboratory/controllers/results_rendering.rb
mumuki-laboratory-6.7.7 lib/mumuki/laboratory/controllers/results_rendering.rb
mumuki-laboratory-6.7.6 lib/mumuki/laboratory/controllers/results_rendering.rb
mumuki-laboratory-6.7.5 lib/mumuki/laboratory/controllers/results_rendering.rb
mumuki-laboratory-7.0.1 lib/mumuki/laboratory/controllers/results_rendering.rb
mumuki-laboratory-7.0.0 lib/mumuki/laboratory/controllers/results_rendering.rb
mumuki-laboratory-6.7.4 lib/mumuki/laboratory/controllers/results_rendering.rb
mumuki-laboratory-6.7.3 lib/mumuki/laboratory/controllers/results_rendering.rb
mumuki-laboratory-6.7.2 lib/mumuki/laboratory/controllers/results_rendering.rb
mumuki-laboratory-6.7.1 lib/mumuki/laboratory/controllers/results_rendering.rb