mumuki-laboratory 8.2.1 → 8.6.1
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/javascripts/mumuki_laboratory/application/upload.js +69 -14
- 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/_content_show.scss +1 -1
- data/app/assets/stylesheets/mumuki_laboratory/application/modules/_discussion.scss +31 -8
- data/app/assets/stylesheets/mumuki_laboratory/application/modules/_kids.scss +4 -0
- 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/exercise_input_helper.rb +8 -17
- 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/editors/_upload.html.erb +11 -2
- 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/app/views/users/terms.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 +34 -24
- data/lib/mumuki/laboratory/locales/es-CL.yml +25 -10
- data/lib/mumuki/laboratory/locales/es.yml +32 -23
- data/lib/mumuki/laboratory/locales/pt.yml +27 -17
- 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/profile_flow_spec.rb +1 -2
- data/spec/features/terms_flow_spec.rb +30 -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
- data/spec/javascripts/upload-spec.js +80 -0
- metadata +131 -96
- data/spec/features/chapter_spec.rb +0 -70
@@ -39,7 +39,11 @@ module MenuBarHelper
|
|
39
39
|
li_tag menu_item('sign-out-alt', :sign_out, logout_path(origin: url_for))
|
40
40
|
end
|
41
41
|
|
42
|
-
def menu_item(icon, name, url)
|
43
|
-
link_to fixed_fa_icon(icon, text: t(name)), url, role: 'menuitem', tabindex: '-1'
|
42
|
+
def menu_item(icon, name, url, translation_params = {})
|
43
|
+
link_to fixed_fa_icon(icon, text: t(name, translation_params)), url, role: 'menuitem', tabindex: '-1'
|
44
|
+
end
|
45
|
+
|
46
|
+
def any_menu_bar_links?
|
47
|
+
menu_bar_links.any?
|
44
48
|
end
|
45
49
|
end
|
@@ -1,10 +1,10 @@
|
|
1
1
|
module OverlappedButtonsHelper
|
2
2
|
def expand_icon
|
3
|
-
overlapped_button_icon :fullscreen, :expand
|
3
|
+
overlapped_button_icon :fullscreen, :expand
|
4
4
|
end
|
5
5
|
|
6
|
-
def restart_icon
|
7
|
-
overlapped_button_icon :restart, :undo
|
6
|
+
def restart_icon(data_placement='left')
|
7
|
+
overlapped_button_icon :restart, :undo, data_placement
|
8
8
|
end
|
9
9
|
|
10
10
|
def format_icon
|
@@ -12,10 +12,14 @@ module OverlappedButtonsHelper
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def restart_guide_link(guide)
|
15
|
-
link_to restart_icon
|
15
|
+
link_to restart_icon('top'),
|
16
|
+
guide_progress_path(guide),
|
17
|
+
class: 'mu-content-toolbar-item mu-restart-guide',
|
18
|
+
data: {confirm: t(:confirm_restart)},
|
19
|
+
method: :delete
|
16
20
|
end
|
17
21
|
|
18
|
-
def overlapped_button_icon(key, icon,
|
19
|
-
fa_icon(icon, title: t(key)
|
22
|
+
def overlapped_button_icon(key, icon, data_placement='left')
|
23
|
+
fa_icon(icon, title: t(key), class: 'fa-fw', role: 'button', 'aria-label': t(key), 'data-placement': data_placement)
|
20
24
|
end
|
21
25
|
end
|
@@ -1,8 +1,8 @@
|
|
1
1
|
module ProgressBarHelper
|
2
2
|
include IconsHelper
|
3
3
|
|
4
|
-
def class_for_progress_list_item(
|
5
|
-
"progress-list-item text-center #{
|
4
|
+
def class_for_progress_list_item(assignment, active)
|
5
|
+
"progress-list-item text-center #{icon_class_for(assignment)} #{active ? 'active' : ''}"
|
6
6
|
end
|
7
7
|
|
8
8
|
end
|
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
<div class="row">
|
12
12
|
<div class="mu-inline-block-left">
|
13
|
-
<h1><%=
|
13
|
+
<h1><%= t :forum %></h1>
|
14
14
|
</div>
|
15
15
|
</div>
|
16
16
|
|
@@ -21,3 +21,5 @@
|
|
21
21
|
<%= render partial: 'layouts/discussions' %>
|
22
22
|
<% end %>
|
23
23
|
</div>
|
24
|
+
|
25
|
+
<%= forum_terms_link %>
|
@@ -3,9 +3,14 @@
|
|
3
3
|
<% end %>
|
4
4
|
|
5
5
|
<div class="chapter-description">
|
6
|
-
<h1>
|
7
|
-
<span class="hidden-xs"><%= t(:chapter_number, number: @chapter.number) %>: </span>
|
8
|
-
<span><%= @chapter.name %></span>
|
6
|
+
<h1 class="pull-left">
|
7
|
+
<span class="hidden-xs pull-left"><%= t(:chapter_number, number: @chapter.number) %>: </span>
|
8
|
+
<span class="pull-left"><%= @chapter.name %></span>
|
9
|
+
<% if @chapter.monolesson? %>
|
10
|
+
<div class="mu-monolesson pull-left">
|
11
|
+
<%= render partial: 'layouts/guide_title_icons' %>
|
12
|
+
</div>
|
13
|
+
<% end %>
|
9
14
|
</h1>
|
10
15
|
|
11
16
|
<%= @chapter.description_html %>
|
@@ -13,14 +18,21 @@
|
|
13
18
|
</div>
|
14
19
|
|
15
20
|
<% if @chapter.lessons.present? %>
|
16
|
-
|
17
|
-
|
21
|
+
<% if @chapter.monolesson? %>
|
22
|
+
<div class="mu-monolesson">
|
23
|
+
<%= render partial: 'layouts/guide', locals: { subject: @monolesson } %>
|
24
|
+
</div>
|
25
|
+
<% else %>
|
26
|
+
<div>
|
27
|
+
<h3><%= t(:lessons) %></h3>
|
18
28
|
|
19
|
-
|
20
|
-
|
21
|
-
|
29
|
+
<% @chapter.lessons.includes(guide: :exercises).each do |lesson| %>
|
30
|
+
<h4><%= lesson.number %>. <%= link_to_path_element lesson, mode: :plain %></h4>
|
31
|
+
<%= render partial: 'layouts/progress_listing', locals: { guide: lesson.guide } %>
|
32
|
+
<% end %>
|
33
|
+
</div>
|
22
34
|
<% end %>
|
23
|
-
|
35
|
+
|
24
36
|
<% end %>
|
25
37
|
|
26
38
|
<% if @chapter.appendix.present? %>
|
@@ -1 +1 @@
|
|
1
|
-
<%= render partial: "layouts/
|
1
|
+
<%= render partial: "layouts/guide_container", locals: { subject: @complement }%>
|
@@ -3,29 +3,29 @@
|
|
3
3
|
<div class="discussion-message-bubble-header">
|
4
4
|
<div class="discussion-message-bubble-title">
|
5
5
|
<%= user.name %>
|
6
|
+
<% if user.moderator_here? %>
|
7
|
+
<span class="moderator-badge"><%= t(:moderation) %></span>
|
8
|
+
<% end %>
|
6
9
|
<span class="message-date">
|
7
10
|
<%= t(:time_since, time: time_ago_in_words(message.created_at)) %>
|
8
11
|
</span>
|
9
|
-
<% if user.moderator_here? %>
|
10
|
-
<%= fa_icon(:star, 'data-toggle': 'tooltip', title: (t :moderator), class: 'moderator-star') %>
|
11
|
-
<% end %>
|
12
12
|
<span class="actions">
|
13
13
|
<% if message.authorized? current_user %>
|
14
14
|
<% if current_user&.moderator_here? %>
|
15
15
|
<a class="discussion-message-approved <%= 'selected' if message.approved? %>" onclick="mumuki.Forum.discussionMessageToggleApprove('<%= approve_discussion_message_url(@discussion, message) %>', $(this))">
|
16
|
-
<%= fa_icon(:check, class: 'fa-
|
16
|
+
<%= fa_icon(:check, class: 'fa-lg') %>
|
17
17
|
</a>
|
18
18
|
<% if message.from_initiator? %>
|
19
19
|
<a class="discussion-message-not-actually-a-question <%= 'selected' if message.not_actually_a_question? %>" onclick="mumuki.Forum.discussionMessageToggleNotActuallyAQuestion('<%= question_discussion_message_url(@discussion, message) %>', $(this))">
|
20
|
-
<%= fa_icon('question-circle', type: 'regular', class: 'fa-
|
20
|
+
<%= fa_icon('question-circle', type: 'regular', class: 'fa-lg') %>
|
21
21
|
</a>
|
22
22
|
<% end %>
|
23
23
|
<% end %>
|
24
|
-
<%= link_to fa_icon('trash-alt', type: :regular), discussion_message_path(@discussion, message), method: :delete, data: { confirm: t(:are_you_sure, action: t(:destroy_message)) } %>
|
24
|
+
<%= link_to fa_icon('trash-alt', type: :regular, class: 'fa-lg'), discussion_message_path(@discussion, message), method: :delete, data: { confirm: t(:are_you_sure, action: t(:destroy_message)) }, class: 'discussion-delete-message' %>
|
25
25
|
<% end %>
|
26
26
|
<% if should_show_approved_for?(current_user, message) %>
|
27
27
|
<span class="discussion-message-approved selected">
|
28
|
-
<%= fa_icon(:check, class: 'fa-
|
28
|
+
<%= fa_icon(:check, class: 'fa-lg', 'data-toggle': 'tooltip', title: (t :approved_message)) %>
|
29
29
|
</span>
|
30
30
|
<% end %>
|
31
31
|
</span>
|
@@ -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>
|