mumuki-laboratory 8.2.0 → 8.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +19 -8
- data/app/assets/javascripts/mumuki_laboratory/application/bridge.js +2 -1
- data/app/assets/javascripts/mumuki_laboratory/application/button.js +0 -2
- data/app/assets/javascripts/mumuki_laboratory/application/codemirror.js +1 -1
- data/app/assets/javascripts/mumuki_laboratory/application/i18n.js +73 -0
- data/app/assets/javascripts/mumuki_laboratory/application/kids.js +22 -1
- data/app/assets/javascripts/mumuki_laboratory/application/kindergarten.js +6 -1
- data/app/assets/javascripts/mumuki_laboratory/application/primary.js +5 -3
- data/app/assets/javascripts/mumuki_laboratory/application/results-renderer.js +28 -1
- data/app/assets/javascripts/mumuki_laboratory/application/submission.js +72 -48
- data/app/assets/stylesheets/mumuki_laboratory/application.scss +1 -0
- data/app/assets/stylesheets/mumuki_laboratory/application/_codemirror-themes.scss +1 -0
- data/app/assets/stylesheets/mumuki_laboratory/application/codemirror-themes/_mu-light.scss +3 -0
- data/app/assets/stylesheets/mumuki_laboratory/application/modules/_discussion.scss +31 -8
- data/app/assets/stylesheets/mumuki_laboratory/application/modules/_kids.scss +2 -3
- data/app/assets/stylesheets/mumuki_laboratory/application/modules/_kids_results.scss +1 -0
- data/app/assets/stylesheets/mumuki_laboratory/application/modules/_terms.scss +4 -0
- data/app/controllers/application_controller.rb +1 -1
- data/app/controllers/chapters_controller.rb +9 -5
- data/app/controllers/exam_authorization_requests_controller.rb +26 -0
- data/app/controllers/exam_registrations_controller.rb +6 -0
- data/app/controllers/guide_container_controller.rb +2 -7
- data/app/helpers/application_helper.rb +4 -0
- data/app/helpers/contextualization_result_helper.rb +0 -8
- data/app/helpers/discussions_helper.rb +8 -0
- data/app/helpers/icons_helper.rb +3 -11
- data/app/helpers/menu_bar_helper.rb +6 -2
- data/app/helpers/overlapped_buttons_helper.rb +10 -6
- data/app/helpers/progress_bar_helper.rb +2 -2
- data/app/views/book_discussions/index.html.erb +3 -1
- data/app/views/chapters/show.html.erb +21 -9
- data/app/views/complements/show.html.erb +1 -1
- data/app/views/discussions/_message.html.erb +7 -7
- data/app/views/discussions/index.html.erb +11 -4
- data/app/views/exam_authorization_requests/show.html.erb +17 -0
- data/app/views/exam_registrations/show.html.erb +37 -0
- data/app/views/exams/show.html.erb +1 -1
- data/app/views/exercises/show.html.erb +2 -2
- data/app/views/layouts/_discussions.html.erb +0 -4
- data/app/views/layouts/_guide.html.erb +4 -33
- data/app/views/layouts/_guide_container.html.erb +28 -0
- data/app/views/layouts/_guide_title_icons.html.erb +9 -0
- data/app/views/layouts/_progress_bar.html.erb +9 -7
- data/app/views/layouts/_progress_listing.html.erb +5 -5
- data/app/views/layouts/_social_media.html.erb +2 -2
- data/app/views/layouts/application.html.erb +4 -7
- data/app/views/layouts/exercise_inputs/layouts/_input_kindergarten.html.erb +1 -1
- data/app/views/layouts/modals/_kindergarten_results_aborted.html.erb +1 -1
- data/app/views/lessons/show.html.erb +1 -1
- data/app/views/notifications/_discussion.html.erb +1 -0
- data/app/views/notifications/_dropdown.html.erb +13 -0
- data/app/views/notifications/_exam_authorization_request.html.erb +1 -0
- data/app/views/notifications/_exam_registration.html.erb +1 -0
- data/app/views/notifications/_message.html.erb +1 -0
- data/app/views/users/_term.html.erb +1 -1
- data/config/routes.rb +3 -0
- data/lib/mumuki/laboratory/controllers/notifications.rb +3 -22
- data/lib/mumuki/laboratory/controllers/results_rendering.rb +2 -1
- data/lib/mumuki/laboratory/locales/en.yml +31 -22
- data/lib/mumuki/laboratory/locales/es-CL.yml +23 -9
- data/lib/mumuki/laboratory/locales/es.yml +30 -22
- data/lib/mumuki/laboratory/locales/pt.yml +25 -16
- data/lib/mumuki/laboratory/version.rb +1 -1
- data/spec/controllers/exam_authorization_requests_controller_spec.rb +40 -0
- data/spec/controllers/exam_registrations_controller_spec.rb +19 -0
- data/spec/controllers/exercise_solutions_controller_spec.rb +3 -2
- data/spec/dummy/db/schema.rb +50 -1
- data/spec/dummy/public/character/animations.json +1 -0
- data/{public → spec/dummy/public}/character/kibi/context.svg +0 -0
- data/{public → spec/dummy/public}/character/kibi/failure.svg +0 -0
- data/{public → spec/dummy/public}/character/kibi/jump.svg +0 -0
- data/spec/dummy/public/character/kibi/passed_with_warnings.svg +4 -0
- data/{public → spec/dummy/public}/character/kibi/success2_l.svg +0 -0
- data/{public → spec/dummy/public}/character/kibi/success_l.svg +0 -0
- data/{public → spec/dummy/public}/character/magnifying_glass/apparition.svg +0 -0
- data/{public → spec/dummy/public}/character/magnifying_glass/loop.svg +0 -0
- data/spec/features/chapters_flow_spec.rb +112 -0
- data/spec/features/login_flow_spec.rb +1 -1
- data/spec/features/notifications_flow_spec.rb +46 -0
- data/spec/features/topic_flow_spec.rb +0 -1
- data/spec/javascripts/bridge-spec.js +2 -2
- data/spec/javascripts/csrf-token-spec.js +2 -2
- data/spec/javascripts/editors-spec.js +7 -9
- data/spec/javascripts/elipsis-spec.js +4 -4
- data/spec/javascripts/events-spec.js +7 -7
- data/spec/javascripts/exercise-spec.js +7 -8
- data/spec/javascripts/global-spec.js +3 -3
- data/spec/javascripts/i18n-spec.js +82 -0
- data/spec/javascripts/kids-button-spec.js +34 -0
- data/spec/javascripts/results-renderers-spec.js +5 -5
- data/spec/javascripts/speech-bubble-renderer-spec.js +2 -3
- data/spec/javascripts/submissions-store-spec.js +14 -14
- data/spec/javascripts/sync-mode-spec.js +3 -3
- data/spec/javascripts/timeout-spec.js +2 -2
- data/spec/javascripts/timer-spec.js +2 -2
- metadata +125 -92
- data/spec/features/chapter_spec.rb +0 -70
@@ -2,17 +2,22 @@
|
|
2
2
|
<%= breadcrumbs(@debatable, t(:discussions)) %>
|
3
3
|
<% end %>
|
4
4
|
|
5
|
+
<div class="row">
|
6
|
+
<div class="mu-inline-block-left">
|
7
|
+
<h1><%= t :forum %></h1>
|
8
|
+
</div>
|
9
|
+
</div>
|
5
10
|
<div class="row">
|
6
11
|
<% if @debatable.respond_to? :language %>
|
7
12
|
<div class="mu-inline-block-right hidden-xs">
|
8
|
-
<
|
13
|
+
<h3><%= language_icon @debatable.language %></h3>
|
9
14
|
</div>
|
10
15
|
<% end %>
|
11
16
|
<div class="mu-inline-block-left">
|
12
|
-
<
|
17
|
+
<h3>
|
13
18
|
<span class="hidden-xs"><%= t("#{@debatable_class.downcase}_number", number: @debatable.number) %>: </span>
|
14
19
|
<span><%= @debatable.name %></span>
|
15
|
-
</
|
20
|
+
</h3>
|
16
21
|
</div>
|
17
22
|
</div>
|
18
23
|
|
@@ -23,7 +28,9 @@
|
|
23
28
|
<%= new_discussion_link(:no_useful_result, :ask_a_question) %>
|
24
29
|
<% end %>
|
25
30
|
|
26
|
-
|
31
|
+
<%= content_for :no_container do %>
|
27
32
|
<% end if current_user? %>
|
28
33
|
|
34
|
+
<%= forum_terms_link %>
|
35
|
+
|
29
36
|
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<%= content_for :breadcrumbs do %>
|
2
|
+
<%= breadcrumbs @authorization_request %>
|
3
|
+
<% end %>
|
4
|
+
|
5
|
+
<div class="row">
|
6
|
+
<div class="mu-inline-block-left">
|
7
|
+
<h1>
|
8
|
+
<%= t :exam_registration_to, description: @authorization_request.exam_registration.description %>
|
9
|
+
</h1>
|
10
|
+
</div>
|
11
|
+
</div>
|
12
|
+
|
13
|
+
<% if @authorization_request.approved? %>
|
14
|
+
<%= t :exam_authorization_request_approved_html, date: l(@authorization_request.exam.start_time, format: :long) %>
|
15
|
+
<% else %>
|
16
|
+
<%= t :exam_authorization_request_rejected %>
|
17
|
+
<% end %>
|
@@ -0,0 +1,37 @@
|
|
1
|
+
<%= content_for :breadcrumbs do %>
|
2
|
+
<%= breadcrumbs @registration %>
|
3
|
+
<% end %>
|
4
|
+
|
5
|
+
<div class="row">
|
6
|
+
<div class="mu-inline-block-left">
|
7
|
+
<h1>
|
8
|
+
<%= t :exam_registration_to, description: @registration.description %>
|
9
|
+
</h1>
|
10
|
+
</div>
|
11
|
+
</div>
|
12
|
+
|
13
|
+
<div class="row">
|
14
|
+
<div class="mu-inline-block-left">
|
15
|
+
<div class="bs-callout bs-callout-info">
|
16
|
+
<h4 class="text-info">
|
17
|
+
<strong><%= fa_icon :info_circle %> <%= t :important_info %></strong>
|
18
|
+
</h4>
|
19
|
+
<p>
|
20
|
+
<%= t :exam_registration_explanation_html, date: l(@registration.end_time, format: :long) %>
|
21
|
+
</p>
|
22
|
+
</div>
|
23
|
+
<%= form_for @authorization_request do |f| %>
|
24
|
+
<%= f.hidden_field :exam_registration_id, value: @registration.id %>
|
25
|
+
<div class="form-group">
|
26
|
+
<%= f.label :exam_id, t(:exam_registration_choose_exam) %>
|
27
|
+
<% @registration.exams.each do |exam| %>
|
28
|
+
<div class="field radio complementary complementary-radio">
|
29
|
+
<%= f.radio_button(:exam_id, exam.id, id: exam.id, required: true, checked: @authorization_request.exam_id == exam.id) %>
|
30
|
+
<%= label_tag exam.id, l(exam.start_time, format: :long) %>
|
31
|
+
</div>
|
32
|
+
<% end %>
|
33
|
+
</div>
|
34
|
+
<button class="btn btn-success"> <%= t :save %> </button>
|
35
|
+
<% end %>
|
36
|
+
</div>
|
37
|
+
</div>
|
@@ -1 +1 @@
|
|
1
|
-
<%= render partial: "layouts/
|
1
|
+
<%= render partial: "layouts/guide_container", locals: { subject: @exam }%>
|
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
<%= render partial: 'layouts/authoring', locals: {guide: @guide} %>
|
8
8
|
|
9
|
-
<% @stats = @exercise.
|
9
|
+
<% @stats = @exercise.stats_for(current_user) %>
|
10
10
|
|
11
11
|
<% if @exercise.navigable_parent.timed? && !current_user.teacher? %>
|
12
12
|
<%= render partial: 'layouts/timer', locals: {end_time: @exercise.navigable_parent.real_end_time(current_user)} %>
|
@@ -65,6 +65,6 @@
|
|
65
65
|
<%= render partial: 'layouts/modals/level_up' %>
|
66
66
|
<% end %>
|
67
67
|
|
68
|
-
<%= render partial: 'layouts/modals/guide_corollary', locals: {guide: @guide} %>
|
68
|
+
<%= render partial: 'layouts/modals/guide_corollary', locals: {guide: @guide} if @stats.almost_done? %>
|
69
69
|
<%= render partial: 'layouts/modals/new_message', locals: {exercise: @exercise} if should_render_message_input?(@exercise) %>
|
70
70
|
<% end if current_user? %>
|
@@ -1,48 +1,19 @@
|
|
1
1
|
<%= render_runner_assets @guide.language, :layout %>
|
2
2
|
|
3
|
-
<%= content_for :breadcrumbs do %>
|
4
|
-
<%= breadcrumbs subject %>
|
5
|
-
<% end %>
|
6
|
-
|
7
3
|
<%= render partial: 'layouts/authoring', locals: {guide: @guide} %>
|
8
4
|
|
9
|
-
<% if subject.timed? &&
|
5
|
+
<% if subject.timed? && @stats.started? && !current_user.teacher? %>
|
10
6
|
<%= render partial: 'layouts/timer', locals: {end_time: subject.real_end_time(current_user)} %>
|
11
7
|
<% end %>
|
12
8
|
|
13
|
-
|
14
|
-
<div class="mu-inline-block-right">
|
15
|
-
<h1><%= language_icon @guide.language %></h1>
|
16
|
-
</div>
|
17
|
-
<div class="mu-inline-block-left guide-header">
|
18
|
-
<h1 class="pull-left">
|
19
|
-
<span class="pull-left">
|
20
|
-
<%= subject.name %>
|
21
|
-
</span>
|
22
|
-
<% if current_user? && should_display_medal?(@guide, Organization.current) %>
|
23
|
-
<div class="pull-left">
|
24
|
-
<%= content_medal_for(@guide, current_user) %>
|
25
|
-
</div>
|
26
|
-
<% end %>
|
27
|
-
<%= teacher_info_button @guide%>
|
28
|
-
<%= link_to_bibliotheca_guide @guide %>
|
29
|
-
</h1>
|
30
|
-
</div>
|
31
|
-
</div>
|
32
|
-
<div class="row">
|
33
|
-
<div class="col-md-12">
|
34
|
-
<div class="text-box">
|
35
|
-
<%= @guide.description_html %>
|
36
|
-
</div>
|
37
|
-
</div>
|
38
|
-
</div>
|
9
|
+
<%= yield if block_given? %>
|
39
10
|
|
40
11
|
<h3>
|
41
12
|
<%= t :exercises %>
|
42
|
-
<%= restart_guide_link(@guide) if current_user && @
|
13
|
+
<%= restart_guide_link(@guide) if current_user && @stats.started? && @guide.resettable? %>
|
43
14
|
</h3>
|
44
15
|
|
45
|
-
<%= render partial: 'layouts/progress_listing', locals: {
|
16
|
+
<%= render partial: 'layouts/progress_listing', locals: { guide: @guide } %>
|
46
17
|
|
47
18
|
<% if @stats&.done? %>
|
48
19
|
<div class="text-box">
|
@@ -0,0 +1,28 @@
|
|
1
|
+
<%= content_for :breadcrumbs do %>
|
2
|
+
<%= breadcrumbs subject %>
|
3
|
+
<% end %>
|
4
|
+
|
5
|
+
<%= render layout: 'layouts/guide', locals: { subject: subject } do %>
|
6
|
+
|
7
|
+
<div class="row">
|
8
|
+
<div class="mu-inline-block-right">
|
9
|
+
<h1><%= language_icon @guide.language %></h1>
|
10
|
+
</div>
|
11
|
+
<div class="mu-inline-block-left guide-header">
|
12
|
+
<h1 class="pull-left">
|
13
|
+
<span class="pull-left">
|
14
|
+
<%= subject.name %>
|
15
|
+
</span>
|
16
|
+
<%= render partial: 'layouts/guide_title_icons' %>
|
17
|
+
</h1>
|
18
|
+
</div>
|
19
|
+
</div>
|
20
|
+
<div class="row">
|
21
|
+
<div class="col-md-12">
|
22
|
+
<div class="text-box">
|
23
|
+
<%= @guide.description_html %>
|
24
|
+
</div>
|
25
|
+
</div>
|
26
|
+
</div>
|
27
|
+
|
28
|
+
<% end %>
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<div class="guide-title-icons pull-left">
|
2
|
+
<% if current_user? && should_display_medal?(@guide, Organization.current) %>
|
3
|
+
<div class="pull-left">
|
4
|
+
<%= content_medal_for(@guide, current_user) %>
|
5
|
+
</div>
|
6
|
+
<% end %>
|
7
|
+
<%= teacher_info_button @guide %>
|
8
|
+
<%= link_to_bibliotheca_guide @guide %>
|
9
|
+
</div>
|
@@ -1,12 +1,14 @@
|
|
1
1
|
<div class="progress-list-flex">
|
2
|
-
<% guide.
|
2
|
+
<% assignments = guide.assignments_for(current_user) %>
|
3
|
+
<% assignments.each do |assignment| %>
|
4
|
+
<% exercise = assignment.exercise %>
|
3
5
|
<a
|
4
|
-
<%= turbolinks_enable_for
|
5
|
-
href="<%= exercise_path(
|
6
|
-
aria-label="<%=
|
7
|
-
title="<%=
|
8
|
-
data-mu-exercise-id="<%=
|
9
|
-
class="<%= class_for_progress_list_item(
|
6
|
+
<%= turbolinks_enable_for exercise %>
|
7
|
+
href="<%= exercise_path(exercise)%>"
|
8
|
+
aria-label="<%= exercise.navigable_name %>"
|
9
|
+
title="<%= exercise.navigable_name %>"
|
10
|
+
data-mu-exercise-id="<%= exercise.id %>"
|
11
|
+
class="<%= class_for_progress_list_item(assignment, exercise == actual)%>">
|
10
12
|
</a>
|
11
13
|
<% end %>
|
12
14
|
</div>
|
@@ -1,9 +1,9 @@
|
|
1
1
|
<ul class="progress-listing">
|
2
|
-
<%
|
3
|
-
<% cache [exercise,
|
4
|
-
<li <%= turbolinks_enable_for(exercise) %>>
|
5
|
-
<%=
|
6
|
-
<%= link_to_path_element(exercise) %>
|
2
|
+
<% guide.assignments_for(current_user).each do |assignment| %>
|
3
|
+
<% cache [assignment.exercise, assignment.status, Organization.current] do %>
|
4
|
+
<li <%= turbolinks_enable_for(assignment.exercise) %>>
|
5
|
+
<%= assignment_status_icon assignment %>
|
6
|
+
<%= link_to_path_element(assignment.exercise) %>
|
7
7
|
</li>
|
8
8
|
<% end %>
|
9
9
|
<% end %>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<a class="fab fa-
|
1
|
+
<a class="fab fa-instagram social-icon" aria-label="Instagram" href="https://www.instagram.com/mumukiorg" target="_blank"></a>
|
2
2
|
<a class="fab fa-twitter social-icon" aria-label="Twitter" href="https://twitter.com/MumukiOrg" target="_blank"></a>
|
3
|
+
<a class="fab fa-youtube social-icon" aria-label="Youtube" href="https://www.youtube.com/c/MumukiOrg" target="_blank"></a>
|
3
4
|
<a class="fab fa-github social-icon" aria-label="Github" href="https://github.com/mumuki" target="_blank"></a>
|
4
|
-
<a class="fab fa-linkedin-in social-icon" aria-label="LinkedIn" href="https://www.linkedin.com/company/mumukiorg" target="_blank"></a>
|
@@ -25,12 +25,7 @@
|
|
25
25
|
<span class="mu-level-number"></span>
|
26
26
|
</div>
|
27
27
|
<% end %>
|
28
|
-
|
29
|
-
<a href=<%= "#{user_notifications_path}" %>>
|
30
|
-
<i class="fas fa-bell fa-fw fa-2x mu-navbar-icon"></i>
|
31
|
-
<span class="badge badge-notifications"><%= notifications_count %></span>
|
32
|
-
</a>
|
33
|
-
</div>
|
28
|
+
<%= render partial: 'notifications/dropdown' %>
|
34
29
|
<div class="dropdown mu-navbar-element">
|
35
30
|
<div id="profileDropdown" class="profile-dropdown" data-toggle="dropdown" aria-label="<%= t(:user) %>" role="menu" tabindex="0">
|
36
31
|
<%= profile_picture_for current_user %>
|
@@ -38,7 +33,9 @@
|
|
38
33
|
</div>
|
39
34
|
<ul class="dropdown-menu dropdown-menu-right" aria-labelledby="profileDropdown">
|
40
35
|
<%= menu_bar_list_items %>
|
41
|
-
|
36
|
+
<% if any_menu_bar_links? %>
|
37
|
+
<li class="divider"></li>
|
38
|
+
<% end %>
|
42
39
|
<%= logout_link %>
|
43
40
|
</ul>
|
44
41
|
</div>
|
@@ -1 +1 @@
|
|
1
|
-
<%= render partial: "layouts/
|
1
|
+
<%= render partial: "layouts/guide_container", locals: { subject: @lesson }%>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= menu_item :comments, :new_discussion_message, url_for([target.item, target]), { title: target.item.name.truncate_words(3) } %>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<div class="dropdown mu-navbar-element notifications-box <%= 'notifications-box-empty' unless has_notifications? %>">
|
2
|
+
<div id="notificationsDropdown" class="profile-dropdown" data-toggle="dropdown" aria-label="<%= t(:notifications) %>" role="menu" tabindex="0">
|
3
|
+
<i class="fas fa-bell fa-fw fa-2x mu-navbar-icon"></i>
|
4
|
+
<span class="badge badge-notifications"><%= notifications_count %></span>
|
5
|
+
</div>
|
6
|
+
<ul id="notificationsPanel" class="dropdown-menu dropdown-menu-right" aria-labelledby="notificationsDropdown">
|
7
|
+
<% notifications.each do |it| %>
|
8
|
+
<li>
|
9
|
+
<%= notification_preview_for it.target %>
|
10
|
+
</li>
|
11
|
+
<% end %>
|
12
|
+
</ul>
|
13
|
+
</div>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= menu_item :book_open, :exam_authorization_request_updated, url_for(target), { description: target.exam_registration.description } %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= menu_item :book_open, :exam_registration_open, url_for(target), { description: target.description } %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= menu_item :envelope, :new_message_received, url_for(target.exercise), { sender: target.sender } %>
|
data/config/routes.rb
CHANGED
@@ -22,6 +22,9 @@ Rails.application.routes.draw do
|
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
25
|
+
resources :exam_registrations, only: [:show]
|
26
|
+
resources :exam_authorization_requests, only: [:show, :create, :update]
|
27
|
+
|
25
28
|
resources :book, only: [:show]
|
26
29
|
resources :chapters, only: [:show] do
|
27
30
|
concerns :debatable, debatable_class: 'Chapter'
|
@@ -1,32 +1,13 @@
|
|
1
1
|
module Mumuki::Laboratory::Controllers::Notifications
|
2
|
-
|
3
|
-
def user_notifications_path
|
4
|
-
user_path(anchor: current_notifications_tab)
|
5
|
-
end
|
6
|
-
|
7
2
|
def has_notifications?
|
8
3
|
notifications_count > 0
|
9
4
|
end
|
10
5
|
|
11
6
|
def notifications_count
|
12
|
-
|
13
|
-
end
|
14
|
-
|
15
|
-
private
|
16
|
-
|
17
|
-
def current_notifications_tab
|
18
|
-
has_messages? ? 'messages' : 'discussions'
|
19
|
-
end
|
20
|
-
|
21
|
-
def has_messages?
|
22
|
-
messages_count > 0
|
23
|
-
end
|
24
|
-
|
25
|
-
def messages_count
|
26
|
-
current_user.try(:unread_messages).try(:count) || 0
|
7
|
+
notifications.size
|
27
8
|
end
|
28
9
|
|
29
|
-
def
|
30
|
-
current_user.try(:
|
10
|
+
def notifications
|
11
|
+
current_user.try(:unread_notifications) || []
|
31
12
|
end
|
32
13
|
end
|
@@ -20,7 +20,8 @@ module Mumuki::Laboratory::Controllers::ResultsRendering
|
|
20
20
|
.merge(
|
21
21
|
html: render_results(layout, assignment),
|
22
22
|
remaining_attempts_html: remaining_attempts_text(assignment),
|
23
|
-
current_exp: UserStats.exp_for(assignment.submitter)
|
23
|
+
current_exp: UserStats.exp_for(assignment.submitter),
|
24
|
+
in_gamified_context: Organization.current.gamification_enabled?)
|
24
25
|
end
|
25
26
|
|
26
27
|
def merge_kids_specific_renders(assignment, results)
|
@@ -11,20 +11,20 @@ en:
|
|
11
11
|
actual_state: Obtained board
|
12
12
|
age: Age
|
13
13
|
all: All
|
14
|
-
appendix:
|
14
|
+
appendix: Appendix
|
15
15
|
appendix_teaser: Do you want to learn more? <a href="%{link}">Check this chapter's appendix</a>"
|
16
16
|
approved_message: Validated by mentor
|
17
|
-
are_you_sure:
|
17
|
+
are_you_sure: Are you sure you want to %{action}?
|
18
18
|
ask_a_question: Ask a question!
|
19
19
|
ask_community: Ask community for help
|
20
20
|
ask_redirect: Do you want to go there?
|
21
21
|
ask_the_first_question: Be the first one to ask!
|
22
22
|
attempts_left:
|
23
|
-
zero: "You've run out of attempts
|
23
|
+
zero: "You've run out of attempts"
|
24
24
|
one: "1 attempt remaining"
|
25
25
|
other: '%{count} attempts remaining'
|
26
26
|
author: Author
|
27
|
-
authoring:
|
27
|
+
authoring: Authoring
|
28
28
|
authoring_note_html: This guide's content was developed by %{authors} under the terms of <a href="https://creativecommons.org/licenses/by-sa/4.0/" target="_blank">Creative Commons License Share-Alike, 4.0</a>
|
29
29
|
authoring_note_with_collaborators_html: This guide's content was developed by %{authors} and <a href="%{collaborators}" target="_blank">many others</a>, under the terms of <a href="https://creativecommons.org/licenses/by-sa/4.0/" target="_blank">Creative Commons License Share-Alike, 4.0</a>
|
30
30
|
back_to_mumuki: Back to Mumuki!
|
@@ -51,7 +51,7 @@ en:
|
|
51
51
|
console: Console
|
52
52
|
contact_administrator: 'If you think this is not supposed to happen, please contact %{link}'
|
53
53
|
content: Content
|
54
|
-
continue_exercise:
|
54
|
+
continue_exercise: Continue
|
55
55
|
continue_lesson: Continue this lesson!
|
56
56
|
continue_practicing: Continue practicing!
|
57
57
|
corollary: To think about
|
@@ -60,11 +60,12 @@ en:
|
|
60
60
|
created_at: Created at
|
61
61
|
date: Date
|
62
62
|
description: Description
|
63
|
-
destroy_message: delete the message
|
64
63
|
destroy: Destroy
|
64
|
+
destroy_message: delete the message
|
65
65
|
disabled_explanation: You are trying to visit a permamently disabled or deleted resource
|
66
66
|
disabled_organization_explanation: This path has already finished.
|
67
67
|
discussion_description_placeholder: You can add more information regarding your doubt.
|
68
|
+
new_discussion_message: New message on %{title}
|
68
69
|
discussion_updated: Discussion updated
|
69
70
|
discussions: Discussions
|
70
71
|
dont_leave_us: Don't leave us! Learning is fun. You just have to keep at it.
|
@@ -73,19 +74,28 @@ en:
|
|
73
74
|
edit_profile: Edit profile
|
74
75
|
editor_placeholder: "write your solution here..."
|
75
76
|
email: Email
|
76
|
-
error_description: This is known as a <span class="error-link">%{error}</span>.
|
77
|
-
error_401: 401 error
|
78
|
-
error_403: 403 error
|
79
|
-
error_404: 404 error
|
80
|
-
error_410: 410 error
|
81
|
-
error_500: 500 error
|
82
|
-
errored: Oops, your solution didn't work
|
83
77
|
error:
|
84
78
|
title:
|
85
79
|
forbidden: You are not allowed to see this content
|
86
80
|
gone: Oops! Content has expired
|
87
81
|
internal_server_error: Oops! Something went wrong
|
88
82
|
not_found: Oops! Page was not found
|
83
|
+
error_401: 401 error
|
84
|
+
error_403: 403 error
|
85
|
+
error_404: 404 error
|
86
|
+
error_410: 410 error
|
87
|
+
error_500: 500 error
|
88
|
+
error_description: This is known as a <span class="error-link">%{error}</span>.
|
89
|
+
errored: Oops, your solution didn't work
|
90
|
+
exam_authorization_request_approved_html: Your request was approved, don't forget to log in at <strong>%{date}</strong>. Good luck!
|
91
|
+
exam_authorization_request_created: Your registration to the exam has been saved!
|
92
|
+
exam_authorization_request_rejected: Your request was rejected.
|
93
|
+
exam_authorization_request_saved: Your registration to the exam has been updated!
|
94
|
+
exam_authorization_request_updated: Your registration to %{description} has been updated
|
95
|
+
exam_registration_choose_exam: Choose date and time to attend to the exam
|
96
|
+
exam_registration_explanation_html: You have until <strong>%{date}</strong> to register. After that date, your request will be processed and you will receive a confirmation. <br> Don't forget to check the notifications!
|
97
|
+
exam_registration_open: Registrations open for %{description}!
|
98
|
+
exam_registration_to: Registration to %{description}
|
89
99
|
exams: Exams
|
90
100
|
exercise: Exercise
|
91
101
|
exercises: Exercises
|
@@ -105,9 +115,10 @@ en:
|
|
105
115
|
first_name: First Name
|
106
116
|
forbidden_explanation: Please verify you have logged in with the right account
|
107
117
|
format: Format
|
118
|
+
forum: Forum
|
108
119
|
forum_terms: Forum rules
|
109
120
|
forum_terms_link: If you have any questions, please check %{terms_link}
|
110
|
-
fullscreen: "Fullscreen"
|
121
|
+
fullscreen: "Fullscreen (F11)"
|
111
122
|
gender: Gender
|
112
123
|
get_messages: "View messages"
|
113
124
|
go_to: 'Go to %{organization}'
|
@@ -120,6 +131,7 @@ en:
|
|
120
131
|
hidden_done: 'Good!'
|
121
132
|
history: History
|
122
133
|
home: Home
|
134
|
+
important_info: Important information
|
123
135
|
initial_state: Initial board
|
124
136
|
insert_file_name: Insert a file name
|
125
137
|
invitation: Invitation to course
|
@@ -129,12 +141,6 @@ en:
|
|
129
141
|
joining_html: '¡Welcome to course <strong>%{course}</strong>!'
|
130
142
|
keep_learning: Keep learning!
|
131
143
|
kids_default_success: You did it great!
|
132
|
-
kindergarten_passed: "Your program worked great!"
|
133
|
-
kindergarten_passed_with_warnings: "Your program worked great!"
|
134
|
-
kindergarten_pending: "There's an error in your program. Try again!"
|
135
|
-
kindergarten_failed: "There's an error in your program. Try again!"
|
136
|
-
kindergarten_errored: "There's an error in your program. Try again!"
|
137
|
-
kindergarten_aborted: "Ups! Something went wrong"
|
138
144
|
language: Language
|
139
145
|
last_name: Last Name
|
140
146
|
last_seen: "Seen by %{name}"
|
@@ -160,8 +166,9 @@ en:
|
|
160
166
|
message: Message
|
161
167
|
messages: Messages
|
162
168
|
messages_error: Previous messages are unavailable. Please try again later.
|
163
|
-
|
169
|
+
moderation: Mentoring
|
164
170
|
moderator: Mentor
|
171
|
+
more_messages: More
|
165
172
|
my_doubts: My doubts
|
166
173
|
my_submissions: My Submissions
|
167
174
|
name: Name
|
@@ -173,6 +180,7 @@ en:
|
|
173
180
|
never: never
|
174
181
|
new: New
|
175
182
|
new_message_placeholder: Write a message for your teacher...
|
183
|
+
new_message_received: You have a new message from %{sender}
|
176
184
|
next_exercise: Next
|
177
185
|
next_lesson: 'Next Guide: %{name}'
|
178
186
|
no_discussions: No discussions matched your search.
|
@@ -185,6 +193,7 @@ en:
|
|
185
193
|
no_useful_result: Didn't find what you were looking for?
|
186
194
|
not_found_explanation: 'You may have mistyped the address or the page may have moved.'
|
187
195
|
not_in_any_organizations: It seems you aren't in any organizations yet!
|
196
|
+
notifications: Notifications
|
188
197
|
notify_problem_with_exercise: Report a bug
|
189
198
|
office: Office
|
190
199
|
only_landscape_support: Please, rotate your tablet or cellphone to continue practicing
|
@@ -261,7 +270,7 @@ en:
|
|
261
270
|
tell_us_how: Please tell us how this happened!
|
262
271
|
tell_us_if_our_error: If you think this is our fault, %{issues}
|
263
272
|
terms_accepted: The terms and conditions were accepted
|
264
|
-
terms_and_conditions: Terms and
|
273
|
+
terms_and_conditions: Terms and Conditions
|
265
274
|
terms_and_conditions_continue_disclaimer: By continuing you agree to %{terms_link}
|
266
275
|
terms_and_conditions_must_be_accepted: You must accept the terms and conditions
|
267
276
|
test_results: Test results
|