mumuki-laboratory 9.9.0 → 9.10.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 49d2ca01f9b5f0c006b68ae6a0587ee4231db269c9d6bb4dd3a5a77833757c7f
4
- data.tar.gz: '0093396f29a33c579c63d5f227df36772f9aaee6867603f77a6d878f7eeb277d'
3
+ metadata.gz: fb8cf028976b13658a28a48a6bf235276d1732ce1256a463cd348b8d915fcba7
4
+ data.tar.gz: 990a6400b5f4fa76f7f17cd5dc97575c9cb475bc7588a15d4ae8102d434583b7
5
5
  SHA512:
6
- metadata.gz: 4e03ec14d6309220ef8bac5fc19691a4659f6612936831c17601338ce10a309b896c2c352424e8f063514cf95f7c7edde0de225b0d387b8cf1452c2dc6b46986
7
- data.tar.gz: 4fe91de131798c91a7db006e4e89f6601c46c7bf61490c211f3090921ccdf08243695980c24a6ac720487d8d627a668c072ee051d5dfeb4c55815410f0badc70
6
+ metadata.gz: 371681f22a60126bad63d241eee30f52f5a8c674077648a2bad413f15375fb704276af6149fc04046f0fc6d72d1562f76ccfcb1ec4d013a7bdcd4480dd817766
7
+ data.tar.gz: 40875a8558cb07951d09ca67bfe2c10405b9fb75d225ff1afd9f4ede4803ba87b9a1460a8aae18268027c3e4380b9a00d20eb9d03d8c2d5561d4ee023453d4a6
@@ -50,36 +50,28 @@ $moderator-badge-color: #dd9900;
50
50
  }
51
51
  }
52
52
 
53
- .discussion-pagination {
54
- display: flex;
55
- flex-direction: row;
56
- align-items: center;
57
- justify-content: center;
58
- }
59
-
60
53
  .discussion-language-icon {
61
- float: right;
62
- margin-right: 10px;
63
- margin-top: 6px;
64
- -ms-transform: scale(1.4, 1.4);
65
- -webkit-transform: scale(1.4, 1.4);
66
- transform: scale(1.4, 1.4);
54
+ display: inline;
55
+ padding-right: 5px;
67
56
  }
68
57
 
69
- .discussion-icon {
70
- -ms-transform: scale(0.8, 0.8);
71
- -webkit-transform: scale(0.8, 0.8);
72
- transform: scale(0.8, 0.8);
73
- margin-left: 5px;
74
- float: right;
75
- .fa-stack-1x {
76
- -ms-transform: scale(0.9, 0.9);
77
- -webkit-transform: scale(0.9, 0.9);
78
- transform: scale(0.9, 0.9);
58
+ .discussion-validated-messages-count {
59
+ .fa-check {
60
+ font-size: calc(#{$font-size-base} * 0.5);
61
+ position: absolute;
62
+ margin-left: -13px;
63
+ margin-top: 10px;
79
64
  }
80
65
  }
81
66
  }
82
67
 
68
+ .discussion-pagination {
69
+ display: flex;
70
+ flex-direction: row;
71
+ align-items: center;
72
+ justify-content: center;
73
+ }
74
+
83
75
  .discussions-no-filtered-results {
84
76
  padding: 20px;
85
77
  border: 1px solid $discussion-toolbar-border-color;
@@ -96,7 +88,7 @@ $moderator-badge-color: #dd9900;
96
88
  }
97
89
 
98
90
  .discussion-status-icon {
99
- padding-right: 10px;
91
+ padding-left: 2px;
100
92
  }
101
93
 
102
94
  .discussion-row {
@@ -106,11 +98,26 @@ $moderator-badge-color: #dd9900;
106
98
  font-size: 18px;
107
99
  font-weight: bold;
108
100
  }
101
+ .discussion-title-icons {
102
+ display: flex;
103
+ flex-shrink: 0;
104
+ align-items: center;
105
+ font-size: calc(#{$font-size-base} * 0.95);
106
+
107
+ > * {
108
+ padding-left: 20px;
109
+ }
110
+ }
109
111
  .discussion-description {
110
112
  overflow: hidden;
111
113
  display: block;
112
114
  text-overflow: ellipsis;
113
115
  white-space: nowrap;
116
+ margin-bottom: 20px;
117
+ font-size: calc(#{$font-size-base} * 0.95);
118
+ }
119
+ .discussion-initiator {
120
+ font-size: calc(#{$font-size-base} * 0.85);
114
121
  }
115
122
  }
116
123
 
@@ -308,6 +315,7 @@ $moderator-badge-color: #dd9900;
308
315
  border: 1px solid $discussion-message-border-color;
309
316
  border-radius: 3px;
310
317
  position: relative;
318
+ margin-bottom: 20px;
311
319
  .discussion-message-bubble-header {
312
320
  background-color: $mu-color-highlight-background;
313
321
  height: 40px;
@@ -400,13 +408,3 @@ $moderator-badge-color: #dd9900;
400
408
  font-weight: normal;
401
409
  }
402
410
  }
403
-
404
- .discussion-moderator-access {
405
- margin-right: 20px;
406
- display: flex;
407
- flex-direction: column;
408
- align-items: center;
409
- .moderator-initials {
410
- font-size: 14px;
411
- }
412
- }
@@ -27,7 +27,7 @@ class UsersController < ApplicationController
27
27
  end
28
28
 
29
29
  def discussions
30
- @watched_discussions = current_user.watched_discussions_in_organization
30
+ @watched_discussions = current_user.watched_discussions_in_organization.scoped_query_by(discussion_filter_params).unread_first
31
31
  end
32
32
 
33
33
  def activity
@@ -71,4 +71,8 @@ class UsersController < ApplicationController
71
71
  nil
72
72
  end
73
73
  end
74
+
75
+ def discussion_filter_params
76
+ @filter_params ||= params.permit([:page])
77
+ end
74
78
  end
@@ -60,11 +60,18 @@ module DiscussionsHelper
60
60
  }.html_safe
61
61
  end
62
62
 
63
- def discussion_messages_icon(discussion)
63
+ def discussion_messages_count(discussion)
64
64
  %Q{
65
- <span class="discussion-icon fa-stack fa-xs">
66
- <i class="far fa-comment fa-stack-2x"></i>
67
- <i class="fas fa-stack-1x">#{discussion.validated_messages_count}</i>
65
+ <span class="discussion-messages-count">
66
+ #{fa_icon :comments, type: :regular, text: discussion.messages_count}
67
+ </span>
68
+ }.html_safe
69
+ end
70
+
71
+ def discussion_validated_messages_count(discussion)
72
+ %Q{
73
+ <span class="discussion-validated-messages-count">
74
+ #{fa_icon :comment, type: :regular}#{fa_icon :check, text: discussion.validated_messages_count}
68
75
  </span>
69
76
  }.html_safe
70
77
  end
@@ -50,6 +50,6 @@ module IconsHelper
50
50
  end
51
51
 
52
52
  def icon_for_read(read)
53
- tag('i', class: "fa#{read ? 'r' : 's'} fa-envelope")
53
+ tag('i', class: "fa#{read ? 'r' : 's'} fa-envelope#{read ? '-open' : ''}")
54
54
  end
55
55
  end
@@ -48,6 +48,6 @@ module MenuBarHelper
48
48
  end
49
49
 
50
50
  def menu_link_to_faqs
51
- li_tag menu_item('question', :faqs, faqs_path)
51
+ li_tag menu_item(:info, :faqs_abbreviated, faqs_path)
52
52
  end
53
53
  end
@@ -0,0 +1,38 @@
1
+ module UserDiscussionsHelper
2
+ def user_discussions_table_title(discussion, user, last_read)
3
+ %Q{
4
+ <tr></tr>
5
+ <thead>
6
+ <tr>
7
+ <td class="#{last_read.nil? ? '' : 'pt-5'}" colspan="4">
8
+ <strong>#{discussion.read_by?(user) ? t(:discussions_read) : t(:discussions_unread)}</strong>
9
+ </td>
10
+ </tr>
11
+ </thead>
12
+ }.html_safe
13
+ end
14
+
15
+ def user_discussions_table_header
16
+ %Q{
17
+ <tr class="fw-bold">
18
+ <td></td>
19
+ <td>#{t(:exercise)}</td>
20
+ <td>#{t(:discussion_created_by)}</td>
21
+ <td>#{t(:last_message)}</td>
22
+ </tr>
23
+ }.html_safe
24
+ end
25
+
26
+ def user_discussions_table_item(discussion, user)
27
+ %Q{
28
+ <tr>
29
+ <td class="text-center">
30
+ #{icon_for_read(discussion.read_by?(user))}
31
+ </td>
32
+ <td>#{link_to discussion.item.name, item_discussion_path(discussion)}</td>
33
+ <td>#{discussion_user_name discussion.initiator}</td>
34
+ <td>#{t(:time_since, time: time_ago_in_words(discussion.last_message_date))}</td>
35
+ </tr>
36
+ }.html_safe
37
+ end
38
+ end
@@ -28,6 +28,6 @@
28
28
  </div>
29
29
  </div>
30
30
  </div>
31
- <%= f.submit t(:save), class: 'btn btn-complementary w-100 discussion-new-message-button' %>
31
+ <%= f.submit t(:publish_discussion), class: 'btn btn-complementary w-100 discussion-new-message-button' %>
32
32
  <% end %>
33
33
  <% end %>
@@ -40,43 +40,7 @@
40
40
  </span>
41
41
  </div>
42
42
  <% else %>
43
- <div class="discussions">
44
- <% @filtered_discussions.each do |discussion| %>
45
- <%= link_to exercise_discussion_path(discussion.exercise.id, discussion) do %>
46
- <div class="discussion">
47
- <div class="discussion-row">
48
- <%= discussion_messages_icon(discussion) %>
49
- <% unless @debatable.respond_to? :language %>
50
- <div class="discussion-language-icon">
51
- <%= language_icon(discussion.exercise.language) %>
52
- </div>
53
- <% end %>
54
- <div>
55
- <div class="discussion-title">
56
- <span class="discussion-status-icon">
57
- <%= discussion_status_fa_icon(discussion) %>
58
- </span>
59
- <span class="d-none d-lg-inline"><%= discussion.exercise.guide.name %> -</span>
60
- <span><%= discussion.exercise.name %></span>
61
- <% if discussion.current_responsible_visible_for?(current_user) %>
62
- <div class="float-end discussion-moderator-access" >
63
- <%= profile_picture_for(discussion.responsible_moderator_by, height: 32) %>
64
- <span class="moderator-initials">
65
- <%= discussion.responsible_moderator_by.name_initials %>
66
- </span>
67
- </div>
68
- <% end %>
69
-
70
- </div>
71
- <span class="discussion-description">
72
- <%= discussion.description %>
73
- </span>
74
- </div>
75
- </div>
76
- </div>
77
- <% end %>
78
- <% end %>
79
- </div>
43
+ <%= render partial: 'layouts/discussions_list' %>
80
44
 
81
45
  <div class="discussion-pagination">
82
46
  <%= paginate @filtered_discussions, nav_class: 'pagination' %>
@@ -0,0 +1,38 @@
1
+ <div class="discussions">
2
+ <% @filtered_discussions.each do |discussion| %>
3
+ <%= link_to exercise_discussion_path(discussion.exercise.id, discussion), class: 'discussion-link' do %>
4
+ <div class="discussion">
5
+ <div class="discussion-row">
6
+ <div class="d-flex justify-content-between">
7
+ <div class="discussion-title">
8
+ <div class="discussion-language-icon">
9
+ <%= language_icon(discussion.exercise.language) %>
10
+ </div>
11
+ <span class="d-none d-lg-inline"><%= discussion.exercise.guide.name %> -</span>
12
+ <span><%= discussion.exercise.name %></span>
13
+ <% if discussion.current_responsible_visible_for?(current_user) %>
14
+ <span class="badge ms-1 bg-dark">
15
+ <%= responsible_moderator_text_for(discussion, current_user)%>
16
+ </span>
17
+ <% end %>
18
+ </div>
19
+ <div class="discussion-title-icons">
20
+ <%= discussion_messages_count(discussion) %>
21
+ <%= discussion_validated_messages_count(discussion) %>
22
+ </div>
23
+ </div>
24
+ <span class="discussion-description">
25
+ <%= discussion.description %>
26
+ </span>
27
+ <span class="discussion-initiator">
28
+ <strong><%= discussion_user_name discussion.initiator %></strong>
29
+ <%= t(:asked_time_since, time: time_ago_in_words(discussion.created_at)) %>
30
+ <span class="discussion-status-icon">
31
+ <%= discussion_status_fa_icon(discussion) %>
32
+ </span>
33
+ </span>
34
+ </div>
35
+ </div>
36
+ <% end %>
37
+ <% end %>
38
+ </div>
@@ -14,17 +14,25 @@
14
14
  <%= t :discussions_will_be_here %>
15
15
  </div>
16
16
  <% else %>
17
- <table class="table table-striped">
18
- <% @watched_discussions.each do |discussion| %>
19
- <tr>
20
- <td>
21
- <%= icon_for_read(discussion.read_by?(@user)) %>
22
- </td>
23
- <td><%= link_to discussion.item.name, item_discussion_path(discussion) %></td>
24
- <td><%= time_ago_in_words discussion.last_message_date %></td>
25
- </tr>
26
- <% end %>
27
- </table>
17
+ <div class="table-responsive mb-3">
18
+ <table class="table">
19
+ <% @watched_discussions.each do |discussion| %>
20
+ <% if discussion.read_by?(@user) != @last_read %>
21
+ <%= user_discussions_table_title(discussion, @user, @last_read) %>
22
+ <% @last_read = discussion.read_by?(@user) %>
23
+
24
+ <%= user_discussions_table_header %>
25
+ <% end %>
26
+
27
+ <%= user_discussions_table_item(discussion, @user) %>
28
+ <% end %>
29
+ </table>
30
+ </div>
31
+
32
+ <div class="discussion-pagination">
33
+ <%= paginate @watched_discussions, nav_class: 'pagination' %>
34
+ </div>
35
+
28
36
  <% end %>
29
37
  </div>
30
38
  </div>
@@ -21,6 +21,7 @@ en:
21
21
  ask_community: Ask community for help
22
22
  ask_redirect: Do you want to go there?
23
23
  ask_the_first_question: Be the first one to ask!
24
+ asked_time_since: asked %{time} ago
24
25
  attempts_left:
25
26
  zero: "You've run out of attempts"
26
27
  one: "1 attempt remaining"
@@ -83,10 +84,13 @@ en:
83
84
  destroy_message: delete the message
84
85
  disabled_explanation: You are trying to visit a permamently disabled or deleted resource
85
86
  disabled_organization_explanation: This path has already finished.
87
+ discussion_created_by: Created by
86
88
  discussion_description_placeholder: You can add more information regarding your doubt.
87
89
  new_discussion_message: New message on %{title}
88
90
  discussion_updated: Discussion updated
89
91
  discussions: Discussions
92
+ discussions_read: Read
93
+ discussions_unread: Unread
90
94
  discussions_will_be_here: Your posts in the forum will appear here.
91
95
  dont_leave_us: Don't leave us! Learning is fun. You just have to keep at it.
92
96
  download: Download your solution
@@ -133,7 +137,8 @@ en:
133
137
  expected_state: Expected board
134
138
  explain_redirect: You have registered in another organization
135
139
  failed: Oops, something went wrong
136
- faqs: FAQs
140
+ faqs: Frequently Asked Questions
141
+ faqs_abbreviated: FAQs
137
142
  feedback: Feedback
138
143
  female: Female
139
144
  file_exceeds_max_size: "File size should not exceed %{size_kb}kb. Please select another file."
@@ -168,6 +173,7 @@ en:
168
173
  keep_learning: Keep learning!
169
174
  kids_default_success: You did it great!
170
175
  language: Language
176
+ last_message: Last message
171
177
  last_name: Last Name
172
178
  last_submission_date: Last submission
173
179
  latest_exercises: Latest exercises
@@ -259,8 +265,8 @@ en:
259
265
  processing_your_solution: We are processing you solution
260
266
  profile_of: Profile of %{username}
261
267
  programming_since: Started programming
262
- progress: Progresss
263
- read: Read
268
+ progress: Progress
269
+ publish_discussion: Publish discussion
264
270
  refresh_or_wait: Please press F5 if results are not displayed after a few seconds
265
271
  reply_count:
266
272
  one: 1 reply
@@ -321,7 +327,7 @@ en:
321
327
  terms_and_conditions_continue_disclaimer: By continuing you agree to %{terms_link}
322
328
  terms_and_conditions_must_be_accepted: You must accept the terms and conditions
323
329
  test_results: Test results
324
- time_ago: "%{time} ago"
330
+ time_since: "%{time} ago"
325
331
  time_left: You have
326
332
  title: Title
327
333
  to_closed: Close
@@ -11,14 +11,16 @@ es-CL:
11
11
  and: y
12
12
  appendix: Apéndice
13
13
  appendix_teaser: ¿Quieres saber más? <a href="%{link}">Consulta el apéndice de este capítulo</a>
14
- are_you_sure: '¿Estás seguro que quieres %{action}?'
15
- ask_a_question: ¡Haz una pregunta!
14
+ approved_message: Validado por mentorías
16
15
  approved_messages:
17
16
  one: validado
18
17
  other: validados
18
+ are_you_sure: '¿Confirmas que quieres %{action}?'
19
+ ask_a_question: ¡Haz una pregunta!
19
20
  ask_community: Pregunta a la comunidad
20
21
  ask_redirect: ¿Quieres que te llevemos ahí?
21
22
  ask_the_first_question: ¡Haz la primera pregunta!
23
+ asked_time_since: "consultó hace %{time}"
22
24
  attempts_left:
23
25
  zero: 'Te quedaste sin intentos'
24
26
  one: '1 intento restante'
@@ -86,8 +88,11 @@ es-CL:
86
88
  disabled_explanation: Estás intentando acceder a un recurso que fue deshabilitado o eliminado de forma permanente
87
89
  disabled_organization_explanation: ¡Este recorrido ha finalizado!
88
90
  new_discussion_message: Mensaje nuevo en %{title}
91
+ discussion_created_by: Creada por
89
92
  discussion_updated: Consulta actualizada
90
93
  discussions: Consultas
94
+ discussions_read: Leídas
95
+ discussions_unread: No leídas
91
96
  discussions_will_be_here: Las preguntas que realices en el espacio de consultas aparecerán aquí.
92
97
  dont_leave_us: ¡No nos abandones! Aprender a programar es divertido. Sólo tienes que seguir practicando.
93
98
  download: "Descarga lo que hiciste"
@@ -132,7 +137,8 @@ es-CL:
132
137
  expected_state: Tablero esperado
133
138
  explain_redirect: Notamos que te registraste en otra organización.
134
139
  failed: Tu solución no pasó las pruebas
135
- faqs: Preguntas Frecuentes
140
+ faqs: Información importante
141
+ faqs_abbreviated: Información
136
142
  feedback: Problemas que encontramos
137
143
  female: Mujer
138
144
  file_exceeds_max_size: "El tamaño de archivo no debe exceder %{size_kb}kb. Por favor selecciona otro archivo."
@@ -169,6 +175,7 @@ es-CL:
169
175
  kids_default_success: ¡Lo hiciste muy bien!
170
176
  language: Lenguaje
171
177
  languages: Lenguajes
178
+ last_message: Último mensaje
172
179
  last_name: Apellido
173
180
  last_submission_date: Última solución
174
181
  latest_exercises: Últimos ejercicios
@@ -267,7 +274,7 @@ es-CL:
267
274
  processing_your_solution: Estamos procesando tu solución
268
275
  profile_of: Perfil de %{username}
269
276
  progress: Progreso
270
- read: Leído
277
+ publish_discussion: Publicar consulta
271
278
  read_messages: Ver mensajes
272
279
  refresh_or_wait: Si no se muestra automáticamente en unos segundos, presiona F5
273
280
  reply_count:
@@ -14,15 +14,16 @@ es:
14
14
  and: y
15
15
  appendix: Apéndice
16
16
  appendix_teaser: ¿Querés saber más? <a href="%{link}">Consultá el apéndice de este capítulo</a>
17
- approved_message: Validado por mentor
18
- are_you_sure: '¿Estás seguro que querés %{action}?'
19
- ask_a_question: ¡Hacé una pregunta!
17
+ approved_message: Validado por mentorías
20
18
  approved_messages:
21
19
  one: validado
22
20
  other: validados
21
+ are_you_sure: '¿Confirmás que querés %{action}?'
22
+ ask_a_question: ¡Hacé una pregunta!
23
23
  ask_community: Preguntá a la comunidad
24
24
  ask_redirect: ¿Querés que te llevemos ahí?
25
25
  ask_the_first_question: ¡Hacé la primera pregunta!
26
+ asked_time_since: "consultó hace %{time}"
26
27
  attempts_left:
27
28
  zero: 'Te quedaste sin intentos'
28
29
  one: '1 intento restante'
@@ -91,10 +92,13 @@ es:
91
92
  details: Detalles
92
93
  disabled_explanation: Estás intentando acceder a un recurso que fue deshabilitado o eliminado de forma permamente
93
94
  disabled_organization_explanation: Este recorrido ha finalizado
95
+ discussion_created_by: Creada por
94
96
  discussion_description_placeholder: Podés agregar información para detallar más tu consulta
95
97
  discussion_updated: Consulta actualizada
96
98
  new_discussion_message: Mensaje nuevo en %{title}
97
99
  discussions: Consultas
100
+ discussions_read: Leídas
101
+ discussions_unread: No leídas
98
102
  discussions_will_be_here: Las preguntas que realices en el espacio de consultas aparecerán aquí.
99
103
  dont_leave_us: ¡No nos abandones! Aprender a programar es divertido. Sólo tenés que seguir practicando.
100
104
  download: "Descargá lo que hiciste"
@@ -140,7 +144,8 @@ es:
140
144
  expected_state: Tablero esperado
141
145
  explain_redirect: Notamos que te registraste en otra organización.
142
146
  failed: Tu solución no pasó las pruebas
143
- faqs: Preguntas Frecuentes
147
+ faqs: Información importante
148
+ faqs_abbreviated: Información
144
149
  feedback: Problemas que encontramos
145
150
  female: Mujer
146
151
  file_exceeds_max_size: "El tamaño de archivo no debe exceder %{size_kb}kb. Por favor seleccioná otro archivo."
@@ -179,6 +184,7 @@ es:
179
184
  kids_default_success: ¡Lo hiciste muy bien!
180
185
  language: Lenguaje
181
186
  languages: Lenguajes
187
+ last_message: Último mensaje
182
188
  last_name: Apellido
183
189
  last_submission_date: Última solución
184
190
  latest_exercises: Últimos ejercicios
@@ -278,7 +284,7 @@ es:
278
284
  profile_of: Perfil de %{username}
279
285
  programming_since: Programando desde
280
286
  progress: Progreso
281
- read: Leido
287
+ publish_discussion: Publicar consulta
282
288
  read_messages: Ver mensajes
283
289
  refresh_or_wait: Si no se muestra automáticamente en unos segundos, presioná F5
284
290
  reply_count:
@@ -14,14 +14,15 @@ pt:
14
14
  appendix: Apêndice
15
15
  appendix_teaser: Você quer saber mais? <a href="%{link}"> Consulte o apêndice deste capítulo </a>
16
16
  approved_message: Validado pelo mentor
17
- are_you_sure: 'Tem certeza de que deseja %{action}?'
18
17
  approved_messages:
19
18
  one: validado
20
19
  other: validados
20
+ are_you_sure: 'Tem certeza de que deseja %{action}?'
21
21
  ask_a_question: Faça uma pergunta!
22
22
  ask_community: Pergunte à comunidade
23
23
  ask_redirect: Você quer que nós o levemos para lá?
24
24
  ask_the_first_question: Faça a primeira pergunta!
25
+ asked_time_since: "consultou há %{time}"
25
26
  attempts_left:
26
27
  zero: 'Você ficou sem tentativas'
27
28
  one: '1 tentativa restante'
@@ -89,8 +90,11 @@ pt:
89
90
  disabled_organization_explanation: Este curso terminou
90
91
  discussion_description_placeholder: Você pode adicionar mais informações sobre sua dúvida
91
92
  new_discussion_message: Nova mensagem em %{title}
93
+ discussion_created_by: Criada por
92
94
  discussion_updated: Consulta actualizada
93
95
  discussions: Consultas
96
+ discussions_read: Não lidas
97
+ discussions_unread: Não lidos
94
98
  discussions_will_be_here: As perguntas que você fizer no espaço de consulta aparecerão aqui.
95
99
  download: Faça o download do que você fez
96
100
  edit: Editar
@@ -135,7 +139,8 @@ pt:
135
139
  expected_state: Tabuleiro esperado
136
140
  explain_redirect: Percebemos que você se registrou em outra organização.
137
141
  failed: Sua solução não passou as provas
138
- faqs: Perguntas frequentes
142
+ faqs: Informação importante
143
+ faqs_abbreviated: Informação
139
144
  feedback: Problemas que encontramos
140
145
  female: Feminino
141
146
  file_exceeds_max_size: "O tamanho do arquivo não deve exceder %{size_kb}kb. Selecione outro arquivo."
@@ -172,6 +177,7 @@ pt:
172
177
  kids_default_success: Você fez muito bem!
173
178
  language: Linguagem
174
179
  languages: Linguagens
180
+ last_message: Última mensagem
175
181
  last_name: Sobrenome
176
182
  last_submission_date: Última solução
177
183
  latest_exercises: Últimos exercícios
@@ -269,7 +275,7 @@ pt:
269
275
  profile_of: Perfil de %{username}
270
276
  programming_since: Sou programador
271
277
  progress: Progresso
272
- read: Ler
278
+ publish_discussion: Postar consulta
273
279
  read_messages: Ver mensagens
274
280
  refresh_or_wait: Se não mostrar automaticamente em alguns segundos, pressione F5
275
281
  reply_count:
@@ -1,5 +1,5 @@
1
1
  module Mumuki
2
2
  module Laboratory
3
- VERSION = '9.9.0'
3
+ VERSION = '9.10.0'
4
4
  end
5
5
  end
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.9.0
4
+ version: 9.10.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-07-15 00:00:00.000000000 Z
11
+ date: 2021-07-29 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.9.0
33
+ version: 9.10.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.9.0
40
+ version: 9.10.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: mumukit-bridge
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -574,6 +574,7 @@ files:
574
574
  - app/helpers/runner_assets_helper.rb
575
575
  - app/helpers/toast_helper.rb
576
576
  - app/helpers/user_activity_helper.rb
577
+ - app/helpers/user_discussions_helper.rb
577
578
  - app/helpers/user_menu_helper.rb
578
579
  - app/mailers/application_mailer.rb
579
580
  - app/mailers/user_mailer.rb
@@ -630,6 +631,7 @@ files:
630
631
  - app/views/layouts/_authoring.html.erb
631
632
  - app/views/layouts/_copyright.html.erb
632
633
  - app/views/layouts/_discussions.html.erb
634
+ - app/views/layouts/_discussions_list.html.erb
633
635
  - app/views/layouts/_error.html.erb
634
636
  - app/views/layouts/_kids.html.erb
635
637
  - app/views/layouts/_kindergarten.html.erb
@@ -963,134 +965,134 @@ signing_key:
963
965
  specification_version: 4
964
966
  summary: Code assement web application for the Mumuki Platform.
965
967
  test_files:
966
- - spec/javascripts/kids-button-spec.js
967
- - spec/javascripts/elipsis-spec.js
968
- - spec/javascripts/sync-mode-spec.js
969
- - spec/javascripts/i18n-spec.js
970
- - spec/javascripts/timer-spec.js
971
- - spec/javascripts/editors-spec.js
972
- - spec/javascripts/results-renderers-spec.js
973
- - spec/javascripts/csrf-token-spec.js
974
- - spec/javascripts/gamification-spec.js
975
- - spec/javascripts/submissions-store-spec.js
976
- - spec/javascripts/bridge-spec.js
977
- - spec/javascripts/upload-spec.js
978
- - spec/javascripts/exercise-spec.js
979
- - spec/javascripts/global-spec.js
980
- - spec/javascripts/events-spec.js
981
- - spec/javascripts/speech-bubble-renderer-spec.js
982
- - spec/javascripts/spec-helper.js
983
- - spec/javascripts/timeout-spec.js
984
- - spec/teaspoon_env.rb
985
- - spec/helpers/certificate_helper_spec.rb
986
- - spec/helpers/application_helper_spec.rb
987
- - spec/helpers/breadcrumbs_helper_spec.rb
988
- - spec/helpers/authors_helper_spec.rb
989
- - spec/helpers/icons_helper_spec.rb
990
- - spec/helpers/email_helper_spec.rb
991
- - spec/helpers/exercise_input_helper_spec.rb
992
- - spec/helpers/with_navigation_spec.rb
993
- - spec/helpers/user_activity_helper_spec.rb
994
- - spec/helpers/page_title_helper_spec.rb
995
- - spec/helpers/test_results_rendering_spec.rb
996
- - spec/helpers/with_choices_spec.rb
997
- - spec/helpers/avatar_helper_spec.rb
998
- - spec/login_helper.rb
999
- - spec/features/not_found_public_flow_spec.rb
968
+ - spec/capybara_helper.rb
969
+ - spec/api_helper.rb
970
+ - spec/features/lessons_flow_spec.rb
971
+ - spec/features/login_flow_spec.rb
972
+ - spec/features/exercise_flow_spec.rb
973
+ - spec/features/immersive_redirection_spec.rb
1000
974
  - spec/features/disabled_organization_flow_spec.rb
1001
- - spec/features/complements_flow_spec.rb
1002
- - spec/features/links_flow_spec.rb
1003
- - spec/features/terms_flow_spec.rb
1004
- - spec/features/home_private_flow_spec.rb
1005
- - spec/features/notifications_flow_spec.rb
1006
- - spec/features/runner_assets_spec.rb
1007
- - spec/features/exams_flow_spec.rb
975
+ - spec/features/discussion_flow_spec.rb
1008
976
  - spec/features/menu_bar_spec.rb
1009
- - spec/features/not_found_private_flow_spec.rb
1010
- - spec/features/progressive_tips_spec.rb
1011
- - spec/features/guides_flow_spec.rb
1012
- - spec/features/exercise_flow_spec.rb
1013
977
  - spec/features/invitations_flow_spec.rb
1014
- - spec/features/dynamic_exam_spec.rb
1015
- - spec/features/topic_flow_spec.rb
1016
- - spec/features/login_flow_spec.rb
1017
- - spec/features/lessons_flow_spec.rb
978
+ - spec/features/standard_flow_spec.rb
979
+ - spec/features/not_found_public_flow_spec.rb
980
+ - spec/features/home_public_flow_spec.rb
981
+ - spec/features/chapters_flow_spec.rb
982
+ - spec/features/disable_user_flow_spec.rb
983
+ - spec/features/links_flow_spec.rb
1018
984
  - spec/features/certificate_programs_flow_spec.rb
985
+ - spec/features/exams_flow_spec.rb
1019
986
  - spec/features/user_activity_flow_spec.rb
1020
- - spec/features/disable_user_flow_spec.rb
1021
987
  - spec/features/guide_reset_spec.rb
988
+ - spec/features/dynamic_exam_spec.rb
989
+ - spec/features/not_found_private_flow_spec.rb
990
+ - spec/features/guides_flow_spec.rb
1022
991
  - spec/features/profile_flow_spec.rb
1023
- - spec/features/discussion_flow_spec.rb
1024
- - spec/features/immersive_redirection_spec.rb
1025
- - spec/features/home_public_flow_spec.rb
1026
- - spec/features/chapters_flow_spec.rb
1027
- - spec/features/standard_flow_spec.rb
1028
- - spec/api_helper.rb
1029
- - spec/spec_helper.rb
1030
- - spec/capybara_helper.rb
992
+ - spec/features/notifications_flow_spec.rb
993
+ - spec/features/terms_flow_spec.rb
994
+ - spec/features/home_private_flow_spec.rb
995
+ - spec/features/runner_assets_spec.rb
996
+ - spec/features/topic_flow_spec.rb
997
+ - spec/features/complements_flow_spec.rb
998
+ - spec/features/progressive_tips_spec.rb
999
+ - spec/helpers/breadcrumbs_helper_spec.rb
1000
+ - spec/helpers/certificate_helper_spec.rb
1001
+ - spec/helpers/avatar_helper_spec.rb
1002
+ - spec/helpers/with_navigation_spec.rb
1003
+ - spec/helpers/authors_helper_spec.rb
1004
+ - spec/helpers/with_choices_spec.rb
1005
+ - spec/helpers/icons_helper_spec.rb
1006
+ - spec/helpers/email_helper_spec.rb
1007
+ - spec/helpers/exercise_input_helper_spec.rb
1008
+ - spec/helpers/user_activity_helper_spec.rb
1009
+ - spec/helpers/test_results_rendering_spec.rb
1010
+ - spec/helpers/application_helper_spec.rb
1011
+ - spec/helpers/page_title_helper_spec.rb
1031
1012
  - spec/evaluation_helper.rb
1032
- - spec/dummy/config.ru
1033
1013
  - spec/dummy/Rakefile
1014
+ - spec/dummy/package.json
1015
+ - spec/dummy/bin/setup
1016
+ - spec/dummy/bin/bundle
1017
+ - spec/dummy/bin/yarn
1018
+ - spec/dummy/bin/rake
1019
+ - spec/dummy/bin/rails
1020
+ - spec/dummy/bin/update
1021
+ - spec/dummy/public/error/timeout_2.svg
1022
+ - spec/dummy/public/error/timeout_3.svg
1023
+ - spec/dummy/public/error/timeout_1.svg
1024
+ - spec/dummy/public/error/500.svg
1025
+ - spec/dummy/public/error/403.svg
1026
+ - spec/dummy/public/error/401.svg
1027
+ - spec/dummy/public/error/410.svg
1028
+ - spec/dummy/public/error/404.svg
1029
+ - spec/dummy/public/character/magnifying_glass/loop.svg
1030
+ - spec/dummy/public/character/magnifying_glass/apparition.svg
1031
+ - spec/dummy/public/character/kibi/success_l.svg
1032
+ - spec/dummy/public/character/kibi/failure.svg
1033
+ - spec/dummy/public/character/kibi/jump.svg
1034
+ - spec/dummy/public/character/kibi/passed_with_warnings.svg
1035
+ - spec/dummy/public/character/kibi/success2_l.svg
1036
+ - spec/dummy/public/character/kibi/context.svg
1037
+ - spec/dummy/public/character/animations.json
1038
+ - spec/dummy/public/medal/outline.svg
1034
1039
  - spec/dummy/db/schema.rb
1035
1040
  - spec/dummy/db/seeds.rb
1036
- - spec/dummy/config/environment.rb
1041
+ - spec/dummy/config.ru
1037
1042
  - spec/dummy/config/secrets.yml
1038
- - spec/dummy/config/spring.rb
1039
- - spec/dummy/config/rabbit.yml
1040
- - spec/dummy/config/application.rb
1041
1043
  - spec/dummy/config/puma.rb
1042
- - spec/dummy/config/environments/test.rb
1043
- - spec/dummy/config/environments/development.rb
1044
1044
  - spec/dummy/config/boot.rb
1045
1045
  - spec/dummy/config/locales/en.yml
1046
- - spec/dummy/config/cable.yml
1047
- - spec/dummy/config/database.yml
1048
- - spec/dummy/config/initializers/cookies_serializer.rb
1046
+ - spec/dummy/config/environment.rb
1049
1047
  - spec/dummy/config/initializers/assets.rb
1050
1048
  - spec/dummy/config/initializers/wrap_parameters.rb
1049
+ - spec/dummy/config/initializers/cookies_serializer.rb
1051
1050
  - spec/dummy/config/initializers/filter_parameter_logging.rb
1051
+ - spec/dummy/config/database.yml
1052
1052
  - spec/dummy/config/routes.rb
1053
- - spec/dummy/public/medal/outline.svg
1054
- - spec/dummy/public/character/animations.json
1055
- - spec/dummy/public/character/magnifying_glass/apparition.svg
1056
- - spec/dummy/public/character/magnifying_glass/loop.svg
1057
- - spec/dummy/public/character/kibi/jump.svg
1058
- - spec/dummy/public/character/kibi/context.svg
1059
- - spec/dummy/public/character/kibi/passed_with_warnings.svg
1060
- - spec/dummy/public/character/kibi/failure.svg
1061
- - spec/dummy/public/character/kibi/success2_l.svg
1062
- - spec/dummy/public/character/kibi/success_l.svg
1063
- - spec/dummy/public/error/404.svg
1064
- - spec/dummy/public/error/410.svg
1065
- - spec/dummy/public/error/timeout_1.svg
1066
- - spec/dummy/public/error/401.svg
1067
- - spec/dummy/public/error/timeout_2.svg
1068
- - spec/dummy/public/error/timeout_3.svg
1069
- - spec/dummy/public/error/500.svg
1070
- - spec/dummy/public/error/403.svg
1071
- - spec/dummy/package.json
1072
- - spec/dummy/bin/yarn
1073
- - spec/dummy/bin/setup
1074
- - spec/dummy/bin/bundle
1075
- - spec/dummy/bin/update
1076
- - spec/dummy/bin/rake
1077
- - spec/dummy/bin/rails
1078
- - spec/mailers/previews/user_mailer_preview.rb
1079
- - spec/mailers/user_mailer_spec.rb
1080
- - spec/controllers/courses_api_controller_spec.rb
1081
- - spec/controllers/invitations_controller_spec.rb
1082
- - spec/controllers/discussions_messages_controller_spec.rb
1083
- - spec/controllers/guide_progress_controller_spec.rb
1084
- - spec/controllers/confirmations_controller_spec.rb
1085
- - spec/controllers/certificates_controller_spec.rb
1086
- - spec/controllers/organizations_api_controller_spec.rb
1053
+ - spec/dummy/config/spring.rb
1054
+ - spec/dummy/config/rabbit.yml
1055
+ - spec/dummy/config/environments/development.rb
1056
+ - spec/dummy/config/environments/test.rb
1057
+ - spec/dummy/config/application.rb
1058
+ - spec/dummy/config/cable.yml
1059
+ - spec/teaspoon_env.rb
1087
1060
  - spec/controllers/exercise_solutions_controller_spec.rb
1061
+ - spec/controllers/exam_authorization_requests_controller_spec.rb
1062
+ - spec/controllers/discussions_controller_spec.rb
1063
+ - spec/controllers/guide_progress_controller_spec.rb
1088
1064
  - spec/controllers/users_controller_spec.rb
1065
+ - spec/controllers/courses_api_controller_spec.rb
1089
1066
  - spec/controllers/chapters_controller_spec.rb
1090
- - spec/controllers/api_clients_controller.rb
1091
- - spec/controllers/exam_authorization_requests_controller_spec.rb
1092
- - spec/controllers/exam_registrations_controller_spec.rb
1093
1067
  - spec/controllers/users_api_controller_spec.rb
1094
- - spec/controllers/messages_controller_spec.rb
1068
+ - spec/controllers/exam_registrations_controller_spec.rb
1095
1069
  - spec/controllers/students_api_controller_spec.rb
1096
- - spec/controllers/discussions_controller_spec.rb
1070
+ - spec/controllers/confirmations_controller_spec.rb
1071
+ - spec/controllers/api_clients_controller.rb
1072
+ - spec/controllers/certificates_controller_spec.rb
1073
+ - spec/controllers/invitations_controller_spec.rb
1074
+ - spec/controllers/discussions_messages_controller_spec.rb
1075
+ - spec/controllers/messages_controller_spec.rb
1076
+ - spec/controllers/organizations_api_controller_spec.rb
1077
+ - spec/javascripts/elipsis-spec.js
1078
+ - spec/javascripts/bridge-spec.js
1079
+ - spec/javascripts/timeout-spec.js
1080
+ - spec/javascripts/results-renderers-spec.js
1081
+ - spec/javascripts/submissions-store-spec.js
1082
+ - spec/javascripts/kids-button-spec.js
1083
+ - spec/javascripts/speech-bubble-renderer-spec.js
1084
+ - spec/javascripts/sync-mode-spec.js
1085
+ - spec/javascripts/events-spec.js
1086
+ - spec/javascripts/editors-spec.js
1087
+ - spec/javascripts/spec-helper.js
1088
+ - spec/javascripts/gamification-spec.js
1089
+ - spec/javascripts/i18n-spec.js
1090
+ - spec/javascripts/upload-spec.js
1091
+ - spec/javascripts/timer-spec.js
1092
+ - spec/javascripts/global-spec.js
1093
+ - spec/javascripts/exercise-spec.js
1094
+ - spec/javascripts/csrf-token-spec.js
1095
+ - spec/login_helper.rb
1096
+ - spec/spec_helper.rb
1097
+ - spec/mailers/previews/user_mailer_preview.rb
1098
+ - spec/mailers/user_mailer_spec.rb