mumuki-laboratory 9.16.0 → 9.17.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/mumuki_laboratory/application/csrf-token.js +5 -5
- data/app/assets/javascripts/mumuki_laboratory/application/exercise.js +17 -2
- data/app/helpers/exams_helper.rb +23 -0
- data/app/helpers/exercise_input_helper.rb +0 -4
- data/app/helpers/menu_bar_helper.rb +5 -4
- data/app/helpers/notifications_helper.rb +1 -1
- data/app/helpers/time_zone_helper.rb +5 -1
- data/app/views/book/show.html.erb +4 -2
- data/app/views/discussions/_actions.html.erb +1 -0
- data/app/views/discussions/_basic_actions.html.erb +20 -0
- data/app/views/discussions/new.html.erb +7 -1
- data/app/views/discussions/show.html.erb +1 -18
- data/app/views/exercises/_read_only.html.erb +54 -60
- data/app/views/exercises/show.html.erb +1 -0
- data/lib/mumuki/laboratory/locales/en.yml +5 -0
- data/lib/mumuki/laboratory/locales/es-CL.yml +5 -0
- data/lib/mumuki/laboratory/locales/es.yml +5 -0
- data/lib/mumuki/laboratory/locales/pt.yml +5 -0
- data/lib/mumuki/laboratory/version.rb +1 -1
- metadata +7 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d420aa36a1219b0a8984fa03062704f55b6227b0f8009ec7fa08b8c67d0780d6
|
4
|
+
data.tar.gz: 0e0d9d6aab2633b8081464b447a90db3be572ab5ec3f9dad92d77e3824c71ade
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '084ffe85c17ed01338fa6ad45bfb6a24b92ec85c838432626436b216c9486b49babac048883ce1a40dd20336ebdb745bf3182d82c681c2d29b7306f6b9a9e783'
|
7
|
+
data.tar.gz: bfb035582b7227797d88fc2f66dd9912d6366f32d5b4428cee0e90a9d2c698f3b2989d2c60cf75d51570e3709f10bafb47fcc32db4cc819fd891c29a0a37167c
|
@@ -1,12 +1,12 @@
|
|
1
1
|
mumuki.CsrfToken = (() => {
|
2
2
|
class CsrfToken {
|
3
|
-
|
4
|
-
|
3
|
+
get token() {
|
4
|
+
return $('meta[name="csrf-token"]').attr('content');
|
5
5
|
}
|
6
|
+
|
6
7
|
newRequest(data) {
|
7
|
-
|
8
|
-
|
9
|
-
xhr.setRequestHeader('X-CSRF-Token', self.value);
|
8
|
+
data.beforeSend = (xhr) => {
|
9
|
+
xhr.setRequestHeader('X-CSRF-Token', this.token);
|
10
10
|
};
|
11
11
|
return data;
|
12
12
|
}
|
@@ -1,12 +1,20 @@
|
|
1
1
|
(() => {
|
2
|
+
function shouldSkipChangesCheck() {
|
3
|
+
return mumuki.isKidsExercise() || mumuki.exercise.isReadOnly;
|
4
|
+
}
|
5
|
+
|
2
6
|
function solutionChangedSinceLastSubmission() {
|
3
7
|
return mumuki.exercise.id &&
|
4
8
|
mumuki.SubmissionsStore.getLastSubmissionAndResult(mumuki.exercise.id) &&
|
5
9
|
!mumuki.SubmissionsStore.getSubmissionResultFor(mumuki.exercise.id, mumuki.editors.getSubmission());
|
6
10
|
}
|
7
11
|
|
12
|
+
function shouldWarnOfChanges() {
|
13
|
+
return !shouldSkipChangesCheck() && solutionChangedSinceLastSubmission();
|
14
|
+
}
|
15
|
+
|
8
16
|
window.addEventListener("beforeunload", (event) => {
|
9
|
-
if (
|
17
|
+
if (shouldWarnOfChanges()) {
|
10
18
|
event.returnValue = 'unsaved_progress';
|
11
19
|
} else {
|
12
20
|
delete event['returnValue'];
|
@@ -14,7 +22,7 @@
|
|
14
22
|
});
|
15
23
|
|
16
24
|
window.addEventListener("turbolinks:before-visit", (event) => {
|
17
|
-
if (
|
25
|
+
if (shouldWarnOfChanges() && !confirm(mumuki.I18n.t('unsaved_progress'))) event.preventDefault();
|
18
26
|
});
|
19
27
|
})();
|
20
28
|
|
@@ -66,6 +74,13 @@ mumuki.exercise = {
|
|
66
74
|
return this._current;
|
67
75
|
},
|
68
76
|
|
77
|
+
/**
|
78
|
+
* @type {Boolean?}
|
79
|
+
*/
|
80
|
+
get isReadOnly() {
|
81
|
+
return $('#mu-exercise-read-only').val() === 'true';
|
82
|
+
},
|
83
|
+
|
69
84
|
/**
|
70
85
|
* Set global current exercise information
|
71
86
|
*/
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module ExamsHelper
|
2
|
+
def exam_information_for(user, exam)
|
3
|
+
%Q{
|
4
|
+
#{course_information_for(user, exam)}
|
5
|
+
#{fa_icon('calendar-alt', class: 'fa-fw',
|
6
|
+
text: "<strong>#{t :date_and_time}:</strong> #{local_time_without_time_zone(exam.start_time)} - #{local_time(exam.end_time)}".html_safe)}
|
7
|
+
<br>
|
8
|
+
#{fa_icon(:stopwatch, class: 'fa-fw',
|
9
|
+
text: "<strong>#{t :available_time}:</strong> #{t :time_in_minutes, time: exam.duration}".html_safe)}
|
10
|
+
<br>
|
11
|
+
}.html_safe
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def course_information_for(user, exam)
|
17
|
+
if user.teacher_here?
|
18
|
+
"#{fa_icon('graduation-cap', class: 'fa-fw',
|
19
|
+
text: "<strong>#{t :course}:</strong> #{exam.course.canonical_code}".html_safe)}
|
20
|
+
<br>"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -35,10 +35,6 @@ module ExerciseInputHelper
|
|
35
35
|
should_render_exercise_tabs?(exercise) { exercise.has_messages_for? user }
|
36
36
|
end
|
37
37
|
|
38
|
-
def should_render_read_only_exercise_tabs?(discussion)
|
39
|
-
should_render_exercise_tabs?(discussion.exercise) { discussion.has_submission? }
|
40
|
-
end
|
41
|
-
|
42
38
|
def should_render_message_input?(exercise, organization = Organization.current)
|
43
39
|
exercise.is_a?(Problem) && !exercise.hidden? && organization.raise_hand_enabled?
|
44
40
|
end
|
@@ -38,12 +38,13 @@ module MenuBarHelper
|
|
38
38
|
li_tag menu_item('sign-out-alt', :sign_out, logout_path(origin: url_for, organization: Organization.current))
|
39
39
|
end
|
40
40
|
|
41
|
-
def menu_item(icon, name, url, css_class = nil,
|
42
|
-
menu_text_item(icon, t(name, translation_params), url, css_class)
|
41
|
+
def menu_item(icon, name, url, css_class = nil, translation_params = {}, options = {})
|
42
|
+
menu_text_item(icon, t(name, translation_params), url, css_class, **options)
|
43
43
|
end
|
44
44
|
|
45
|
-
def menu_text_item(icon, text, url, css_class = nil)
|
46
|
-
|
45
|
+
def menu_text_item(icon, text, url, css_class = nil, **options)
|
46
|
+
link_options = { role: 'menuitem', tabindex: '-1', class: "dropdown-item #{css_class}" }.merge(options)
|
47
|
+
link_to fixed_fa_icon(icon, text: text), url, link_options
|
47
48
|
end
|
48
49
|
|
49
50
|
def any_menu_bar_links?
|
@@ -4,7 +4,7 @@ module NotificationsHelper
|
|
4
4
|
end
|
5
5
|
|
6
6
|
def notification_preview_item(icon, name, url, **translation_params)
|
7
|
-
menu_item icon, name, url, 'mu-notification-preview',
|
7
|
+
menu_item icon, name, url, 'mu-notification-preview', translation_params
|
8
8
|
end
|
9
9
|
|
10
10
|
def notification_text_preview_item(icon, text, url)
|
@@ -1,5 +1,9 @@
|
|
1
1
|
module TimeZoneHelper
|
2
2
|
def local_time(time, time_zone = Time.zone.name)
|
3
|
-
"#{
|
3
|
+
"#{local_time_without_time_zone(time, time_zone)} (#{time_zone})"
|
4
|
+
end
|
5
|
+
|
6
|
+
def local_time_without_time_zone(time, time_zone = Time.zone.name)
|
7
|
+
l(time.in_time_zone(time_zone), format: :long)
|
4
8
|
end
|
5
9
|
end
|
@@ -45,8 +45,10 @@
|
|
45
45
|
<h2><%= t(:exams) %></h2>
|
46
46
|
<% @exams.each_with_index do |it, index| %>
|
47
47
|
<div class="chapter">
|
48
|
-
<h3
|
49
|
-
|
48
|
+
<h3><%= link_to_path_element it, mode: :plain %></h3>
|
49
|
+
<div class="fs-7">
|
50
|
+
<%= exam_information_for(current_user, it) %>
|
51
|
+
</div>
|
50
52
|
<div class="text-box">
|
51
53
|
<%= it.guide.description_teaser_html %>
|
52
54
|
</div>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= render partial: 'discussions/basic_actions' %>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<% if @discussion.can_toggle_responsible?(current_user) %>
|
2
|
+
<div class="discussion-responsible me-1">
|
3
|
+
<%= btn_toggle responsible_icon, not_responsible_icon, @discussion.any_responsible?, class: 'btn-sm',
|
4
|
+
onclick: "mumuki.Forum.discussionResponsible('#{responsible_discussion_url(@discussion)}')" %>
|
5
|
+
</div>
|
6
|
+
<% end %>
|
7
|
+
|
8
|
+
<% if @discussion.subscribable? %>
|
9
|
+
<div class="discussion-subscription me-1">
|
10
|
+
<%= btn_toggle subscription_icon, unsubscription_icon, current_user.subscribed_to?(@discussion), class: 'btn-sm',
|
11
|
+
onclick: "mumuki.Forum.discussionSubscription('#{subscription_discussion_url(@discussion)}')" %>
|
12
|
+
</div>
|
13
|
+
<% end %>
|
14
|
+
|
15
|
+
<% if @discussion.solved? %>
|
16
|
+
<div class="discussion-upvote">
|
17
|
+
<%= btn_toggle upvote_icon, undo_upvote_icon, current_user.upvoted?(@discussion), class: 'btn-sm',
|
18
|
+
onclick: "mumuki.Forum.discussionUpvote('#{upvote_discussion_url(@discussion)}')" %>
|
19
|
+
</div>
|
20
|
+
<% end %>
|
@@ -22,12 +22,18 @@
|
|
22
22
|
<div class="container-fluid">
|
23
23
|
<div class="row">
|
24
24
|
<div class="discussion-new-message-content">
|
25
|
-
<%=
|
25
|
+
<%= spell_checked_editor 'discussion[description]',
|
26
|
+
{ id: 'discussion-new-message', placeholder: t(:discussion_description_placeholder) } %>
|
26
27
|
</div>
|
27
28
|
</div>
|
28
29
|
</div>
|
29
30
|
</div>
|
30
31
|
</div>
|
32
|
+
<% if faqs_enabled_here? %>
|
33
|
+
<div class="fs-7">
|
34
|
+
<%= fa_icon('exclamation-triangle', text: t(:only_forum_questions_on_forum, link: link_to_faqs).html_safe) %>
|
35
|
+
</div>
|
36
|
+
<% end %>
|
31
37
|
<%= f.submit t(:publish_discussion), class: 'btn btn-complementary w-100 discussion-new-message-button' %>
|
32
38
|
<% end %>
|
33
39
|
<% end %>
|
@@ -15,24 +15,7 @@
|
|
15
15
|
<h3 class="flex-grow-1 me-3"><%= t :messages %></h3>
|
16
16
|
<% if current_user && @discussion.persisted? && current_access_mode.show_discussion_element? %>
|
17
17
|
<span class="d-flex">
|
18
|
-
|
19
|
-
<div class="discussion-responsible me-1">
|
20
|
-
<%= btn_toggle responsible_icon, not_responsible_icon, @discussion.any_responsible?, class: 'btn-sm',
|
21
|
-
onclick: "mumuki.Forum.discussionResponsible('#{responsible_discussion_url(@discussion)}')" %>
|
22
|
-
</div>
|
23
|
-
<% end %>
|
24
|
-
<% if @discussion.subscribable? %>
|
25
|
-
<div class="discussion-subscription me-1">
|
26
|
-
<%= btn_toggle subscription_icon, unsubscription_icon, current_user.subscribed_to?(@discussion), class: 'btn-sm',
|
27
|
-
onclick: "mumuki.Forum.discussionSubscription('#{subscription_discussion_url(@discussion)}')" %>
|
28
|
-
</div>
|
29
|
-
<% end %>
|
30
|
-
<% if @discussion.solved? %>
|
31
|
-
<div class="discussion-upvote">
|
32
|
-
<%= btn_toggle upvote_icon, undo_upvote_icon, current_user.upvoted?(@discussion), class: 'btn-sm',
|
33
|
-
onclick: "mumuki.Forum.discussionUpvote('#{upvote_discussion_url(@discussion)}')" %>
|
34
|
-
</div>
|
35
|
-
<% end %>
|
18
|
+
<%= render partial: 'discussions/actions' %>
|
36
19
|
</span>
|
37
20
|
<% end %>
|
38
21
|
</div>
|
@@ -45,82 +45,76 @@
|
|
45
45
|
<div class="accordion-body accordion-collapse collapse show" id="mu-discussion-accordion-body"
|
46
46
|
aria-labelledby="#mu-discussion-accordion-header" data-bs-parent="#mu-discussion-accordion">
|
47
47
|
|
48
|
-
|
49
|
-
<
|
50
|
-
<
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
<
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
<
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
</li>
|
48
|
+
<ul class="nav nav-tabs discussion-tabs" role="tablist">
|
49
|
+
<li role="presentation">
|
50
|
+
<a class="editor-tab nav-link active" data-bs-target="#solution" aria-controls="solution" role="tab" data-bs-toggle="tab">
|
51
|
+
<%= t :solution %>
|
52
|
+
</a>
|
53
|
+
</li>
|
54
|
+
<li role="presentation">
|
55
|
+
<a class="editor-tab nav-link" data-bs-target="#results" aria-controls="results" role="tab" data-bs-toggle="tab">
|
56
|
+
<%= t :results %>
|
57
|
+
</a>
|
58
|
+
</li>
|
59
|
+
<li role="presentation">
|
60
|
+
<a class="editor-tab nav-link" data-bs-target="#content" aria-controls="content" role="tab" data-bs-toggle="tab">
|
61
|
+
<%= t :description %>
|
62
|
+
</a>
|
63
|
+
</li>
|
65
64
|
|
66
|
-
|
67
|
-
|
68
|
-
|
65
|
+
<% if exercise.extra_visible? %>
|
66
|
+
<%= extra_code_tab %>
|
67
|
+
<% end %>
|
69
68
|
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
69
|
+
<% if exercise.queriable? %>
|
70
|
+
<%= console_tab %>
|
71
|
+
<% end %>
|
72
|
+
</ul>
|
74
73
|
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
</div>
|
74
|
+
<div class="tab-content">
|
75
|
+
<div role="tabpanel" class="tab-pane mu-input-panel fade show active" id="solution">
|
76
|
+
<div class="mu-tab-body">
|
77
|
+
<div class="mu-read-only-editor">
|
78
|
+
<%= render_exercise_read_only_editor exercise, @discussion.solution %>
|
81
79
|
</div>
|
82
80
|
</div>
|
81
|
+
</div>
|
83
82
|
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
</div>
|
83
|
+
<div role="tabpanel" class="tab-pane fade" id="results">
|
84
|
+
<div class="mu-tab-body">
|
85
|
+
<%= render layout: 'exercise_solutions/contextualization_results_container', locals: { contextualization: @discussion } do %>
|
86
|
+
<div class="row">
|
87
|
+
<div class="col-md-12 submission-results">
|
88
|
+
<%= render partial: 'exercise_solutions/contextualization_results_body',
|
89
|
+
locals: { contextualization: @discussion, guide_finished_by_solution: false } %>
|
92
90
|
</div>
|
93
|
-
<% end %>
|
94
|
-
</div>
|
95
|
-
</div>
|
96
|
-
|
97
|
-
<div role="tabpanel" class="tab-pane fade" id="content">
|
98
|
-
<div class="mu-tab-body">
|
99
|
-
<div class="exercise-assignment">
|
100
|
-
<%= render partial: 'exercises/exercise_assignment', locals: { exercise: exercise } %>
|
101
91
|
</div>
|
102
|
-
|
92
|
+
<% end %>
|
103
93
|
</div>
|
94
|
+
</div>
|
104
95
|
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
<div class="mu-overlapped">
|
110
|
-
<%= restart_icon %>
|
111
|
-
</div>
|
96
|
+
<div role="tabpanel" class="tab-pane fade" id="content">
|
97
|
+
<div class="mu-tab-body">
|
98
|
+
<div class="exercise-assignment">
|
99
|
+
<%= render partial: 'exercises/exercise_assignment', locals: { exercise: exercise } %>
|
112
100
|
</div>
|
113
101
|
</div>
|
102
|
+
</div>
|
114
103
|
|
115
|
-
|
116
|
-
|
104
|
+
<div role="tabpanel" class="tab-pane mu-input-panel fade" id="console">
|
105
|
+
<div class="mu-overlapped-container">
|
106
|
+
<div class="console">
|
107
|
+
</div>
|
108
|
+
<div class="mu-overlapped">
|
109
|
+
<%= restart_icon %>
|
110
|
+
</div>
|
117
111
|
</div>
|
118
112
|
</div>
|
119
|
-
|
120
|
-
<div class="
|
121
|
-
<%=
|
113
|
+
|
114
|
+
<div role="tabpanel" class="tab-pane mu-input-panel fade mu-elipsis" id="visible-extra">
|
115
|
+
<%= @discussion.extra_preview_html %>
|
122
116
|
</div>
|
123
|
-
|
117
|
+
</div>
|
124
118
|
</div>
|
125
119
|
</div>
|
126
120
|
</div>
|
@@ -45,6 +45,7 @@
|
|
45
45
|
<%= hidden_field_tag "mu-exercise-id", @exercise.id %>
|
46
46
|
<%= hidden_field_tag "mu-exercise-layout", @exercise.layout %>
|
47
47
|
<%= hidden_field_tag "mu-exercise-settings", @exercise.settings.to_json %>
|
48
|
+
<%= hidden_field_tag "mu-exercise-read-only", current_access_mode.read_only? %>
|
48
49
|
|
49
50
|
<div class="d-none" id="processing-template">
|
50
51
|
<div class="bs-callout bs-callout-info">
|
@@ -30,6 +30,7 @@ en:
|
|
30
30
|
authoring: Authoring
|
31
31
|
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>
|
32
32
|
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>
|
33
|
+
available_time: Available time
|
33
34
|
back_to_mumuki: Back to Mumuki!
|
34
35
|
bibliotheca_ui: Bibliotheca
|
35
36
|
birthdate: Birthdate
|
@@ -67,9 +68,11 @@ en:
|
|
67
68
|
continue_practicing: Continue practicing!
|
68
69
|
corollary: To think about
|
69
70
|
correct_answer: The answer is correct!
|
71
|
+
course: Course
|
70
72
|
create_submission: Submit
|
71
73
|
created_at: Created at
|
72
74
|
date: Date
|
75
|
+
date_and_time: Date and time
|
73
76
|
deleted_by: Deleted by %{deleter}
|
74
77
|
deleted_message_warning: If you repeateadly violate these or other rules, you may be prohibited from accessing the forum or you may suffer more severe consequences, such as being expulsed from the course.
|
75
78
|
deletion_motive:
|
@@ -272,6 +275,7 @@ en:
|
|
272
275
|
notifications_will_be_here: Notifications will be here
|
273
276
|
notify_problem_with_exercise: Report a bug
|
274
277
|
office: Office
|
278
|
+
only_forum_questions_on_forum: Remember that only exercise-related questions are answered on the forum. For any other kind of inquiries, please check the %{link}.
|
275
279
|
only_landscape_support: Please, rotate your tablet or cellphone to continue practicing
|
276
280
|
opened: Open
|
277
281
|
opened_count: '%{count} opened'
|
@@ -360,6 +364,7 @@ en:
|
|
360
364
|
terms_and_conditions_continue_disclaimer: By continuing you agree to %{terms_link}
|
361
365
|
terms_and_conditions_must_be_accepted: You must accept the terms and conditions
|
362
366
|
test_results: Test results
|
367
|
+
time_in_minutes: "%{time} minutes"
|
363
368
|
time_since: "%{time} ago"
|
364
369
|
time_left: You have
|
365
370
|
title: Title
|
@@ -29,6 +29,7 @@ es-CL:
|
|
29
29
|
authoring: Autores
|
30
30
|
authoring_note_html: Esta guía fue desarrollada por %{authors} bajo los términos de la <a href="https://creativecommons.org/licenses/by-sa/4.0/" target="_blank">Licencia Creative Commons Compartir-Igual, 4.0</a>.
|
31
31
|
authoring_note_with_collaborators_html: Esta guía fue desarrollada por %{authors} y <a href="%{collaborators}" target="_blank">muchas personas más</a>, bajo los términos de la <a href="https://creativecommons.org/licenses/by-sa/4.0/" target="_blank">Licencia Creative Commons Compartir-Igual, 4.0</a>.
|
32
|
+
available_time: Tiempo disponible
|
32
33
|
back_to_mumuki: ¡Vuelve a Mumuki!
|
33
34
|
bibliotheca_ui: Biblioteca
|
34
35
|
birthdate: Fecha de nacimiento
|
@@ -65,11 +66,13 @@ es-CL:
|
|
65
66
|
continue_lesson: ¡Continúa esta lección!
|
66
67
|
continue_practicing: ¡Sigue aprendiendo!
|
67
68
|
correct_answer: ¡La respuesta es correcta!
|
69
|
+
course: Curso
|
68
70
|
create_submission: Enviar
|
69
71
|
created_at: Creado
|
70
72
|
created_exercises: Ejercicios Creados
|
71
73
|
created_guides: Lecciones Creadas
|
72
74
|
date: Fecha
|
75
|
+
date_and_time: Fecha y hora
|
73
76
|
deleted_by: Eliminado por %{deleter}
|
74
77
|
deleted_message_warning: Si infringes reiteradamente estas u otras reglas del Espacio de Consultas, se te puede prohibir el acceso al mismo o podrás sufrir consecuencias más severas, como la expulsión del curso.
|
75
78
|
deletion_motive:
|
@@ -280,6 +283,7 @@ es-CL:
|
|
280
283
|
notifications_will_be_here: Tus notificaciones aparecerán aquí
|
281
284
|
notify_problem_with_exercise: Reporta un bug
|
282
285
|
office: Secretaría
|
286
|
+
only_forum_questions_on_forum: Recuerda que en el espacio de consultas se responden únicamente dudas relacionadas a los ejercicios. Para cualquier otro tipo de consulta, revisa la %{link}.
|
283
287
|
only_landscape_support: Por favor, rota tu tablet o celular para realizar ejercicios
|
284
288
|
opened: Abierta
|
285
289
|
opened_count:
|
@@ -374,6 +378,7 @@ es-CL:
|
|
374
378
|
terms_and_conditions_continue_disclaimer: Al continuar aceptas los %{terms_link}
|
375
379
|
terms_and_conditions_must_be_accepted: Tienes que aceptar los términos y condiciones
|
376
380
|
test_results: Resultados de las pruebas
|
381
|
+
time_in_minutes: "%{time} minutos"
|
377
382
|
time_since: "hace %{time}"
|
378
383
|
time_left: Te quedan
|
379
384
|
title: Título
|
@@ -32,6 +32,7 @@ es:
|
|
32
32
|
authoring: Autores
|
33
33
|
authoring_note_html: Esta guía fue desarrollada por %{authors} bajo los términos de la <a href="https://creativecommons.org/licenses/by-sa/4.0/" target="_blank">Licencia Creative Commons Compartir-Igual, 4.0</a>.
|
34
34
|
authoring_note_with_collaborators_html: Esta guía fue desarrollada por %{authors} y <a href="%{collaborators}" target="_blank">muchas personas más</a>, bajo los términos de la <a href="https://creativecommons.org/licenses/by-sa/4.0/" target="_blank">Licencia Creative Commons Compartir-Igual, 4.0</a>.
|
35
|
+
available_time: Tiempo disponible
|
35
36
|
back_to_mumuki: ¡Volvé a Mumuki!
|
36
37
|
bibliotheca_ui: Biblioteca
|
37
38
|
birthdate: Fecha de nacimiento
|
@@ -68,6 +69,7 @@ es:
|
|
68
69
|
continue_lesson: ¡Continuá esta lección!
|
69
70
|
continue_practicing: ¡Seguí aprendiendo!
|
70
71
|
correct_answer: ¡La respuesta es correcta!
|
72
|
+
course: Curso
|
71
73
|
create_submission: Enviar
|
72
74
|
created_at: Creado
|
73
75
|
created_at_asc: Antiguas
|
@@ -75,6 +77,7 @@ es:
|
|
75
77
|
created_exercises: Ejercicios Creados
|
76
78
|
created_guides: Lecciones Creadas
|
77
79
|
date: Fecha
|
80
|
+
date_and_time: Fecha y hora
|
78
81
|
deleted_by: Eliminado por %{deleter}
|
79
82
|
deleted_message_warning: Si infringís reiteradamente estas u otras reglas del Espacio de Consultas, se te puede prohibir el acceso al mismo o podrás sufrir consecuencias más severas, como la expulsión del curso.
|
80
83
|
deletion_motive:
|
@@ -289,6 +292,7 @@ es:
|
|
289
292
|
notifications_will_be_here: Tus notificaciones aparecerán aquí
|
290
293
|
notify_problem_with_exercise: Reportá un bug
|
291
294
|
office: Secretaría
|
295
|
+
only_forum_questions_on_forum: Recordá que en el espacio de consultas se responden únicamente dudas relacionadas a los ejercicios. Para cualquier otro tipo de consulta, revisá la %{link}.
|
292
296
|
only_landscape_support: Por favor, rotá tu tablet o celular para realizar ejercicios
|
293
297
|
opened: Abierta
|
294
298
|
opened_count:
|
@@ -388,6 +392,7 @@ es:
|
|
388
392
|
terms_and_conditions_continue_disclaimer: Al continuar estás aceptando los %{terms_link}
|
389
393
|
terms_and_conditions_must_be_accepted: Tenés que aceptar los términos y condiciones
|
390
394
|
test_results: Resultados de las pruebas
|
395
|
+
time_in_minutes: "%{time} minutos"
|
391
396
|
time_since: "hace %{time}"
|
392
397
|
time_left: Te quedan
|
393
398
|
title: Título
|
@@ -31,6 +31,7 @@ pt:
|
|
31
31
|
authoring: Autores
|
32
32
|
authoring_note_html: 'Este guia foi desenvolvido por %{authors} nos termos do <a href = "https://creativecommons.org/licenses/by-sa/4.0/" target="_blank"> Creative Commons License Share-Equal, 4.0 </a>.'
|
33
33
|
authoring_note_with_collaborators_html: 'Este guia foi desenvolvido por %{authors} e <a href="%{collaborators}" target="_blank">muitas outras pessoas </a>, nos termos do <a href = "https://creativecommons.org/licenses/by-sa/4.0/" target="_blank"> Creative Commons License Share-Equal, 4.0 </a>.'
|
34
|
+
available_time: Tempo disponível
|
34
35
|
back_to_mumuki: Voltei para Mumuki!
|
35
36
|
bibliotheca_ui: Biblioteca
|
36
37
|
birthdate: Fecha de nacimiento
|
@@ -64,6 +65,7 @@ pt:
|
|
64
65
|
continue_lesson: Continue esta lição!
|
65
66
|
continue_practicing: Continue aprendendo!
|
66
67
|
correct_answer: A resposta está correta!
|
68
|
+
course: Curso
|
67
69
|
create_submission: Enviar
|
68
70
|
created_at: Criado
|
69
71
|
created_at_asc: Antigo
|
@@ -71,6 +73,7 @@ pt:
|
|
71
73
|
created_exercises: Exercícios criados
|
72
74
|
created_guides: Lições criadas
|
73
75
|
date: Data
|
76
|
+
date_and_time: Data e hora
|
74
77
|
deleted_by: Removido pelo
|
75
78
|
deleted_message_warning: Se você violar repetidamente essas ou outras regras da Área de Consulta, seu acesso a ela pode ser proibido ou você pode sofrer consequências mais graves, como a expulsão do curso.
|
76
79
|
deletion_motive:
|
@@ -280,6 +283,7 @@ pt:
|
|
280
283
|
notifications_will_be_here: Suas notificações aparecerão aqui
|
281
284
|
notify_problem_with_exercise: Relatar um erro
|
282
285
|
office: Secretariado
|
286
|
+
only_forum_questions_on_forum: Lembre-se que apenas as dúvidas relacionadas aos exercícios são respondidas no espaço de consulta. Para qualquer outro tipo de consulta, reveja a %{link}.
|
283
287
|
only_landscape_support: Por favor, gire seu tablet ou celular para realizar exercícios
|
284
288
|
opened: Aberto
|
285
289
|
opened_count: '%{count} aberto'
|
@@ -373,6 +377,7 @@ pt:
|
|
373
377
|
terms_and_conditions_continue_disclaimer: Ao continuar, você concorda %{terms_link}
|
374
378
|
terms_and_conditions_must_be_accepted: Você deve aceitar os Termos e Condições
|
375
379
|
test_results: Resultados do teste
|
380
|
+
time_in_minutes: "%{time} minutos"
|
376
381
|
time_since: "há %{time}"
|
377
382
|
time_left: Te deixam
|
378
383
|
title: Título
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mumuki-laboratory
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 9.
|
4
|
+
version: 9.17.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Franco Bulgarelli
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-09-
|
11
|
+
date: 2021-09-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 9.
|
33
|
+
version: 9.17.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 9.
|
40
|
+
version: 9.17.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: mumukit-bridge
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -548,6 +548,7 @@ files:
|
|
548
548
|
- app/helpers/editor_tabs_helper.rb
|
549
549
|
- app/helpers/email_helper.rb
|
550
550
|
- app/helpers/exam_registration_helper.rb
|
551
|
+
- app/helpers/exams_helper.rb
|
551
552
|
- app/helpers/exercise_input_helper.rb
|
552
553
|
- app/helpers/gamification_helper.rb
|
553
554
|
- app/helpers/globals_helper.rb
|
@@ -584,6 +585,8 @@ files:
|
|
584
585
|
- app/views/certificates/verify.html.erb
|
585
586
|
- app/views/chapters/show.html.erb
|
586
587
|
- app/views/complements/show.html.erb
|
588
|
+
- app/views/discussions/_actions.html.erb
|
589
|
+
- app/views/discussions/_basic_actions.html.erb
|
587
590
|
- app/views/discussions/_description_message.html.erb
|
588
591
|
- app/views/discussions/_message.html.erb
|
589
592
|
- app/views/discussions/_message_container.html.erb
|