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.
Files changed (98) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +19 -8
  3. data/app/assets/javascripts/mumuki_laboratory/application/bridge.js +2 -1
  4. data/app/assets/javascripts/mumuki_laboratory/application/button.js +0 -2
  5. data/app/assets/javascripts/mumuki_laboratory/application/codemirror.js +1 -1
  6. data/app/assets/javascripts/mumuki_laboratory/application/i18n.js +73 -0
  7. data/app/assets/javascripts/mumuki_laboratory/application/kids.js +22 -1
  8. data/app/assets/javascripts/mumuki_laboratory/application/kindergarten.js +6 -1
  9. data/app/assets/javascripts/mumuki_laboratory/application/primary.js +5 -3
  10. data/app/assets/javascripts/mumuki_laboratory/application/results-renderer.js +28 -1
  11. data/app/assets/javascripts/mumuki_laboratory/application/submission.js +72 -48
  12. data/app/assets/stylesheets/mumuki_laboratory/application.scss +1 -0
  13. data/app/assets/stylesheets/mumuki_laboratory/application/_codemirror-themes.scss +1 -0
  14. data/app/assets/stylesheets/mumuki_laboratory/application/codemirror-themes/_mu-light.scss +3 -0
  15. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_discussion.scss +31 -8
  16. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_kids.scss +2 -3
  17. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_kids_results.scss +1 -0
  18. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_terms.scss +4 -0
  19. data/app/controllers/application_controller.rb +1 -1
  20. data/app/controllers/chapters_controller.rb +9 -5
  21. data/app/controllers/exam_authorization_requests_controller.rb +26 -0
  22. data/app/controllers/exam_registrations_controller.rb +6 -0
  23. data/app/controllers/guide_container_controller.rb +2 -7
  24. data/app/helpers/application_helper.rb +4 -0
  25. data/app/helpers/contextualization_result_helper.rb +0 -8
  26. data/app/helpers/discussions_helper.rb +8 -0
  27. data/app/helpers/icons_helper.rb +3 -11
  28. data/app/helpers/menu_bar_helper.rb +6 -2
  29. data/app/helpers/overlapped_buttons_helper.rb +10 -6
  30. data/app/helpers/progress_bar_helper.rb +2 -2
  31. data/app/views/book_discussions/index.html.erb +3 -1
  32. data/app/views/chapters/show.html.erb +21 -9
  33. data/app/views/complements/show.html.erb +1 -1
  34. data/app/views/discussions/_message.html.erb +7 -7
  35. data/app/views/discussions/index.html.erb +11 -4
  36. data/app/views/exam_authorization_requests/show.html.erb +17 -0
  37. data/app/views/exam_registrations/show.html.erb +37 -0
  38. data/app/views/exams/show.html.erb +1 -1
  39. data/app/views/exercises/show.html.erb +2 -2
  40. data/app/views/layouts/_discussions.html.erb +0 -4
  41. data/app/views/layouts/_guide.html.erb +4 -33
  42. data/app/views/layouts/_guide_container.html.erb +28 -0
  43. data/app/views/layouts/_guide_title_icons.html.erb +9 -0
  44. data/app/views/layouts/_progress_bar.html.erb +9 -7
  45. data/app/views/layouts/_progress_listing.html.erb +5 -5
  46. data/app/views/layouts/_social_media.html.erb +2 -2
  47. data/app/views/layouts/application.html.erb +4 -7
  48. data/app/views/layouts/exercise_inputs/layouts/_input_kindergarten.html.erb +1 -1
  49. data/app/views/layouts/modals/_kindergarten_results_aborted.html.erb +1 -1
  50. data/app/views/lessons/show.html.erb +1 -1
  51. data/app/views/notifications/_discussion.html.erb +1 -0
  52. data/app/views/notifications/_dropdown.html.erb +13 -0
  53. data/app/views/notifications/_exam_authorization_request.html.erb +1 -0
  54. data/app/views/notifications/_exam_registration.html.erb +1 -0
  55. data/app/views/notifications/_message.html.erb +1 -0
  56. data/app/views/users/_term.html.erb +1 -1
  57. data/config/routes.rb +3 -0
  58. data/lib/mumuki/laboratory/controllers/notifications.rb +3 -22
  59. data/lib/mumuki/laboratory/controllers/results_rendering.rb +2 -1
  60. data/lib/mumuki/laboratory/locales/en.yml +31 -22
  61. data/lib/mumuki/laboratory/locales/es-CL.yml +23 -9
  62. data/lib/mumuki/laboratory/locales/es.yml +30 -22
  63. data/lib/mumuki/laboratory/locales/pt.yml +25 -16
  64. data/lib/mumuki/laboratory/version.rb +1 -1
  65. data/spec/controllers/exam_authorization_requests_controller_spec.rb +40 -0
  66. data/spec/controllers/exam_registrations_controller_spec.rb +19 -0
  67. data/spec/controllers/exercise_solutions_controller_spec.rb +3 -2
  68. data/spec/dummy/db/schema.rb +50 -1
  69. data/spec/dummy/public/character/animations.json +1 -0
  70. data/{public → spec/dummy/public}/character/kibi/context.svg +0 -0
  71. data/{public → spec/dummy/public}/character/kibi/failure.svg +0 -0
  72. data/{public → spec/dummy/public}/character/kibi/jump.svg +0 -0
  73. data/spec/dummy/public/character/kibi/passed_with_warnings.svg +4 -0
  74. data/{public → spec/dummy/public}/character/kibi/success2_l.svg +0 -0
  75. data/{public → spec/dummy/public}/character/kibi/success_l.svg +0 -0
  76. data/{public → spec/dummy/public}/character/magnifying_glass/apparition.svg +0 -0
  77. data/{public → spec/dummy/public}/character/magnifying_glass/loop.svg +0 -0
  78. data/spec/features/chapters_flow_spec.rb +112 -0
  79. data/spec/features/login_flow_spec.rb +1 -1
  80. data/spec/features/notifications_flow_spec.rb +46 -0
  81. data/spec/features/topic_flow_spec.rb +0 -1
  82. data/spec/javascripts/bridge-spec.js +2 -2
  83. data/spec/javascripts/csrf-token-spec.js +2 -2
  84. data/spec/javascripts/editors-spec.js +7 -9
  85. data/spec/javascripts/elipsis-spec.js +4 -4
  86. data/spec/javascripts/events-spec.js +7 -7
  87. data/spec/javascripts/exercise-spec.js +7 -8
  88. data/spec/javascripts/global-spec.js +3 -3
  89. data/spec/javascripts/i18n-spec.js +82 -0
  90. data/spec/javascripts/kids-button-spec.js +34 -0
  91. data/spec/javascripts/results-renderers-spec.js +5 -5
  92. data/spec/javascripts/speech-bubble-renderer-spec.js +2 -3
  93. data/spec/javascripts/submissions-store-spec.js +14 -14
  94. data/spec/javascripts/sync-mode-spec.js +3 -3
  95. data/spec/javascripts/timeout-spec.js +2 -2
  96. data/spec/javascripts/timer-spec.js +2 -2
  97. metadata +125 -92
  98. data/spec/features/chapter_spec.rb +0 -70
@@ -9,7 +9,7 @@ es-CL:
9
9
  actual_state: Tablero obtenido
10
10
  all: Todos
11
11
  and: y
12
- appendix: "Apéndice"
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
14
  are_you_sure: '¿Estás seguro que quieres %{action}?'
15
15
  ask_a_question: ¡Haz una pregunta!
@@ -21,7 +21,7 @@ es-CL:
21
21
  one: '1 intento restante'
22
22
  other: '%{count} intentos restantes'
23
23
  author: Autor
24
- authoring: "Autores"
24
+ authoring: Autores
25
25
  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>.
26
26
  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>.
27
27
  back_to_mumuki: ¡Vuelve a Mumuki!
@@ -65,6 +65,7 @@ es-CL:
65
65
  details: Detalles
66
66
  disabled_explanation: Estás intentando acceder a un recurso que fue deshabilitado o eliminado de forma permanente
67
67
  disabled_organization_explanation: ¡Este recorrido ha finalizado!
68
+ new_discussion_message: Mensaje nuevo en %{title}
68
69
  discussion_updated: Consulta actualizada
69
70
  discussions: Consultas
70
71
  dont_leave_us: ¡No nos abandones! Aprender a programar es divertido. Sólo tienes que seguir practicando.
@@ -78,13 +79,22 @@ es-CL:
78
79
  error_404: error 404
79
80
  error_410: error 410
80
81
  error_500: error 500
81
- errored: ¡Ups! Tu solución no se puede ejecutar
82
82
  error:
83
83
  title:
84
84
  forbidden: No tienes autorización para ver este contenido
85
85
  gone: ¡Ups! El contenido expiró
86
86
  internal_server_error: ¡Ups! Algo no anduvo bien
87
87
  not_found: ¡Ups! La página no existe
88
+ errored: ¡Ups! Tu solución no se puede ejecutar
89
+ exam_authorization_request_approved_html: Tu solicitud fue aprobada, no olvides conectarte el <strong>%{date}</strong>. ¡Buena suerte!
90
+ exam_authorization_request_created: ¡Tu inscripción al exámen se registró exitosamente!
91
+ exam_authorization_request_rejected: Tu solicitud fue rechazada.
92
+ exam_authorization_request_saved: ¡Tu inscripción al exámen se modificó exitosamente!
93
+ exam_authorization_request_updated: Hay novedades sobre tu inscripción a %{description}
94
+ exam_registration_choose_exam: Seleccioná día y horario en el que te gustaría rendir el exámen
95
+ exam_registration_explanation_html: Tienes tiempo hasta el <strong>%{date}</strong> para inscribirte. Pasada esa fecha, tu solicitud será evaluada y recibirás una confirmación. <br> ¡No olvides revisar las notificaciones!
96
+ exam_registration_open: ¡Ya puedes inscribirte a %{description}!
97
+ exam_registration_to: Inscripción a %{description}
88
98
  exams: Exámenes
89
99
  exercise: Ejercicio
90
100
  exercise_count: ejercicios
@@ -103,8 +113,8 @@ es-CL:
103
113
  first_name: Nombre
104
114
  forbidden_explanation: ¿Puede que hayas ingresado con una cuenta incorrecta?
105
115
  format: Dar formato
106
- forum_terms_link: Si tienes alguna duda, accede a las %{terms_link}
107
- fullscreen: "Pantalla completa"
116
+ forum_terms_link: No olvides que al participar debes cumplir las %{terms_link}
117
+ fullscreen: "Pantalla completa (F11)"
108
118
  gender: Género
109
119
  get_messages: "Ver mensajes"
110
120
  go_to: 'Ir a %{organization}'
@@ -120,6 +130,7 @@ es-CL:
120
130
  home: Inicio
121
131
  hour: hora
122
132
  hours: horas
133
+ important_info: Información importante
123
134
  initial_state: Tablero inicial
124
135
  insert_file_name: Ingresa un nombre de archivo
125
136
  invitation: Invitación a curso
@@ -156,8 +167,9 @@ es-CL:
156
167
  messages_error: Los mensajes anteriores no están disponibles en este momento. ¡Vuelve a intentar más tarde!
157
168
  minute: minuto
158
169
  minutes: minutos
170
+ moderation: Moderación
171
+ moderator: Mentor
159
172
  more_messages: Ver mensajes anteriores
160
- moderator: Moderador
161
173
  my_doubts: Mis consultas
162
174
  name: Nombre
163
175
  navigation_continue: 'Siguiente %{kind}: %{sibling}'
@@ -167,22 +179,24 @@ es-CL:
167
179
  need_help: No entiendo, ¡necesito ayuda!
168
180
  never: nunca
169
181
  new: Nuevo
170
- new_message: ¿Tienes dudas? ¡Levanta la mano!
171
182
  new_discussion: Nueva consulta
183
+ new_message: ¿Tienes dudas? ¡Levanta la mano!
172
184
  new_message_placeholder: Escribe el mensaje para tu docente acá...
185
+ new_message_received: Tienes un nuevo mensaje de %{sender}
173
186
  next_exercise: Siguiente
174
187
  next_guide: 'Siguiente Lección: %{name}'
175
188
  no_discussions: No encontramos consultas que coincidan con tu búsqueda.
176
189
  no_exercises: No encontramos ejercicios que coincidan con tu búsqueda.
177
190
  no_guides: No encontramos lecciones que coincidan con tu búsqueda.
178
191
  no_messages: ¡Parece que no tienes ningún mensaje todavía!
179
- no_need_hint: 'Este ejercicio no tiene pista'
192
+ no_need_hint: Este ejercicio no tiene pista
180
193
  no_questions: Parece que aún no hay ninguna consulta.
181
194
  no_submissions: ¡Parece que aún no intentaste resolver este ejercicio!
182
195
  no_useful_result: ¿No encontraste lo que estabas buscando?
183
196
  not_found: ¡La página que buscaste no existe!
184
197
  not_found_explanation: Fíjate si escribiste bien la dirección.
185
198
  not_in_any_organizations: ¡Parece que no estás en ninguna organización todavía!
199
+ notifications: Notificaciones
186
200
  notify_problem_with_exercise: Reporta un bug
187
201
  office: Secretaría
188
202
  only_landscape_support: Por favor, rota tu tablet o celular para realizar ejercicios
@@ -263,7 +277,7 @@ es-CL:
263
277
  teacher_info: Información para docentes
264
278
  tell_us_how: ¡Cuéntanos cómo te pasó esto!
265
279
  tell_us_if_our_error: Si piensas que es un error nuestro, %{issues}
266
- terms_and_conditions: Términos y condiciones
280
+ terms_and_conditions: Términos y Condiciones
267
281
  terms_and_conditions_continue_disclaimer: Al continuar aceptas los %{terms_link}
268
282
  terms_and_conditions_must_be_accepted: Tienes que aceptar los términos y condiciones
269
283
  test_results: Resultados de las pruebas
@@ -12,7 +12,7 @@ es:
12
12
  age: Edad
13
13
  all: Todos
14
14
  and: y
15
- appendix: "Apéndice"
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
17
  approved_message: Validado por mentor
18
18
  are_you_sure: '¿Estás seguro que querés %{action}?'
@@ -25,7 +25,7 @@ es:
25
25
  one: '1 intento restante'
26
26
  other: '%{count} intentos restantes'
27
27
  author: Autor
28
- authoring: "Autores"
28
+ authoring: Autores
29
29
  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>.
30
30
  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>.
31
31
  back_to_mumuki: ¡Volvé a Mumuki!
@@ -45,8 +45,6 @@ es:
45
45
  closed_count:
46
46
  one: 1 cerrada
47
47
  other: '%{count} cerradas'
48
- created_at_asc: Antiguas
49
- created_at_desc: Nuevas
50
48
  comment: Comentar
51
49
  confirm: Confirmar
52
50
  confirm_reset: Estás por reiniciar tu ejercicio. ¿Querés continuar?
@@ -54,12 +52,14 @@ es:
54
52
  console: Consola
55
53
  contact_administrator: 'Si pensás que es un error, comunicate con %{link}'
56
54
  content: Contenido
57
- continue_exercise: "Continuar"
55
+ continue_exercise: Continuar
58
56
  continue_lesson: ¡Continuá esta lección!
59
57
  continue_practicing: ¡Seguí aprendiendo!
60
58
  correct_answer: ¡La respuesta es correcta!
61
59
  create_submission: Enviar
62
60
  created_at: Creado
61
+ created_at_asc: Antiguas
62
+ created_at_desc: Nuevas
63
63
  created_exercises: Ejercicios Creados
64
64
  created_guides: Lecciones Creadas
65
65
  date: Fecha
@@ -73,6 +73,7 @@ es:
73
73
  disabled_organization_explanation: Este recorrido ha finalizado
74
74
  discussion_description_placeholder: Podés agregar información para detallar más tu consulta
75
75
  discussion_updated: Consulta actualizada
76
+ new_discussion_message: Mensaje nuevo en %{title}
76
77
  discussions: Consultas
77
78
  dont_leave_us: ¡No nos abandones! Aprender a programar es divertido. Sólo tenés que seguir practicando.
78
79
  download: "Descargá lo que hiciste"
@@ -86,13 +87,22 @@ es:
86
87
  error_404: error 404
87
88
  error_410: error 410
88
89
  error_500: error 500
89
- errored: ¡Ups! Tu solución no se puede ejecutar
90
90
  error:
91
91
  title:
92
92
  forbidden: No tenés autorización para ver este contenido
93
93
  gone: ¡Ups! El contenido expiró
94
94
  internal_server_error: ¡Ups! Algo no anduvo bien
95
95
  not_found: ¡Ups! La página no existe
96
+ errored: ¡Ups! Tu solución no se puede ejecutar
97
+ exam_authorization_request_approved_html: Tu solicitud fue aprobada, no olvides conectarte el <strong>%{date}</strong>. ¡Buena suerte!
98
+ exam_authorization_request_created: ¡Tu inscripción al exámen se registró exitosamente!
99
+ exam_authorization_request_rejected: Tu solicitud fue rechazada.
100
+ exam_authorization_request_saved: ¡Tu inscripción al exámen se modificó exitosamente!
101
+ exam_authorization_request_updated: Hay novedades sobre tu inscripción a %{description}
102
+ exam_registration_choose_exam: Seleccioná día y horario en el que te gustaría rendir el exámen
103
+ exam_registration_explanation_html: Tenés tiempo hasta el <strong>%{date}</strong> para inscribirte. Pasada esa fecha, tu solicitud será evaluada y recibirás una confirmación. <br> ¡No te olvides de revisar las notificaciones!
104
+ exam_registration_open: ¡Ya podés inscribirte a %{description}!
105
+ exam_registration_to: Inscripción a %{description}
96
106
  exams: Exámenes
97
107
  exercise: Ejercicio
98
108
  exercise_count: ejercicios
@@ -111,9 +121,10 @@ es:
111
121
  first_name: Nombre
112
122
  forbidden_explanation: ¿Puede que hayas ingresado con una cuenta incorrecta?
113
123
  format: Dar formato
114
- forum_terms: Reglas del espacio de consultas
115
- forum_terms_link: Si tenés alguna duda, accedé a las %{terms_link}
116
- fullscreen: "Pantalla completa"
124
+ forum: Espacio de Consultas
125
+ forum_terms: Reglas del Espacio de Consultas
126
+ forum_terms_link: No olvides que al participar debés cumplir las %{terms_link}
127
+ fullscreen: "Pantalla completa (F11)"
117
128
  gender: Género
118
129
  get_messages: "Ver mensajes"
119
130
  go_to: 'Ir a %{organization}'
@@ -129,21 +140,16 @@ es:
129
140
  home: Inicio
130
141
  hour: hora
131
142
  hours: horas
143
+ important_info: Información importante
132
144
  initial_state: Tablero inicial
133
145
  insert_file_name: Ingresa un nombre de archivo
134
146
  invitation: Invitación a curso
135
147
  invitation_for: 'Unirse a %{course}'
136
- item_not_accessible: "No tenés permisos para acceder a este contenido"
148
+ item_not_accessible: No tenés permisos para acceder a este contenido
137
149
  its_been_a_while: Hace un tiempo que no usás Mumuki.
138
150
  joining_html: '¡Te damos la bienvenida al curso <strong>%{course}</strong>!'
139
151
  keep_learning: ¡Seguí aprendiendo!
140
- kids_default_success: "¡Lo hiciste muy bien!"
141
- kindergarten_passed: "¡Tu programa está muy bien!"
142
- kindergarten_passed_with_warnings: "¡Tu programa está muy bien!"
143
- kindergarten_pending: "Hay un error en tu programa. ¡Intentá de nuevo!"
144
- kindergarten_failed: "Hay un error en tu programa. ¡Intentá de nuevo!"
145
- kindergarten_errored: "Hay un error en tu programa. ¡Intentá de nuevo!"
146
- kindergarten_aborted: "¡Ups! Hubo un problema técnico"
152
+ kids_default_success: ¡Lo hiciste muy bien!
147
153
  language: Lenguaje
148
154
  languages: Lenguajes
149
155
  last_name: Apellido
@@ -172,8 +178,9 @@ es:
172
178
  messages_error: Los mensajes anteriores no están disponibles en este momento. ¡Volvé a intentar mas tarde!
173
179
  minute: minuto
174
180
  minutes: minutos
175
- more_messages: Ver mensajes anteriores
181
+ moderation: Mentoría
176
182
  moderator: Mentor
183
+ more_messages: Ver mensajes anteriores
177
184
  my_doubts: Mis consultas
178
185
  name: Nombre
179
186
  navigation_continue: 'Siguiente %{kind}: %{sibling}'
@@ -183,9 +190,10 @@ es:
183
190
  need_help: No entiendo, ¡necesito ayuda!
184
191
  never: nunca
185
192
  new: Nuevo
186
- new_message: ¿Tenés dudas? ¡Levantá la mano!
187
193
  new_discussion: Nueva consulta
194
+ new_message: ¿Tenés dudas? ¡Levantá la mano!
188
195
  new_message_placeholder: Escribí el mensaje para tu docente acá...
196
+ new_message_received: Tenés un nuevo mensaje de %{sender}
189
197
  next_exercise: Siguiente
190
198
  next_guide: 'Siguiente Lección: %{name}'
191
199
  no_discussions: No encontramos consultas que coincidan con tu búsqueda.
@@ -199,6 +207,7 @@ es:
199
207
  not_found: ¡La página que buscaste no existe!
200
208
  not_found_explanation: Fijate si escribiste bien la dirección.
201
209
  not_in_any_organizations: ¡Parece que no estás en ninguna organización todavía!
210
+ notifications: Notificaciones
202
211
  notify_problem_with_exercise: Reportá un bug
203
212
  office: Secretaría
204
213
  only_landscape_support: Por favor, rotá tu tablet o celular para realizar ejercicios
@@ -271,20 +280,20 @@ es:
271
280
  start_using_mumuki: ¡Empezá a usar Mumuki!
272
281
  status: Estado
273
282
  stop_emails?: ¿Querés dejar de recibir estos mails?
274
- subscribe: Recibir notificaciones
275
283
  submission: solución
276
284
  submission_date: Fecha de envío
277
285
  submission_for_exercise: Solucion para ejercicio
278
286
  submissions: Soluciones
279
287
  submissions_count: Soluciones
280
288
  submissions_for: Soluciones para %{exercise}
289
+ subscribe: Recibir notificaciones
281
290
  tag: Etiquetas
282
291
  task: Consigna
283
292
  teacher_info: Información para docentes
284
293
  tell_us_how: ¡Contanos cómo te pasó esto!
285
294
  tell_us_if_our_error: Si pensás que es un error nuestro, %{issues}
286
295
  terms_accepted: Los términos y condiciones fueron aceptados
287
- terms_and_conditions: Términos y condiciones
296
+ terms_and_conditions: Términos y Condiciones
288
297
  terms_and_conditions_continue_disclaimer: Al continuar estás aceptando los %{terms_link}
289
298
  terms_and_conditions_must_be_accepted: Tenés que aceptar los términos y condiciones
290
299
  test_results: Resultados de las pruebas
@@ -327,4 +336,3 @@ es:
327
336
  you_must_sign_in_before_submitting: Tenés que iniciar sesión antes de empezar a enviar tus soluciones
328
337
  you_never_submitted_solutions: Parece que nunca enviaste soluciones desde que creaste tu cuenta.
329
338
  your_new_organization: tu nueva organización
330
-
@@ -69,6 +69,7 @@ pt:
69
69
  disabled_explanation: Você está tentando acessar um recurso que foi desativado ou removido permanentemente
70
70
  disabled_organization_explanation: Este curso terminou
71
71
  discussion_description_placeholder: Você pode adicionar mais informações sobre sua dúvida
72
+ new_discussion_message: Nova mensagem em %{title}
72
73
  discussion_updated: Consulta actualizada
73
74
  discussions: Consultas
74
75
  download: Faça o download do que você fez
@@ -76,19 +77,28 @@ pt:
76
77
  edit_profile: Editar perfil
77
78
  editor_placeholder: ... Escreva sua solução aqui ...
78
79
  email: E-mail
79
- error_description: Isto é o que é conhecido como <span class = "error-link"> %{error} </ span>.
80
- error_401: erro 401
81
- error_403: erro 403
82
- error_404: erro 404
83
- error_410: erro 410
84
- error_500: erro 500
85
- errored: Opa! Sua solução não pode ser executada
86
80
  error:
87
81
  title:
88
82
  forbidden: Você não tem autorização para ver esse conteúdo
89
83
  gone: Opa! O conteúdo expirou
90
84
  internal_server_error: Opa! Algo não estava certo
91
85
  not_found: Opa! A página que você pesquisou não existe
86
+ error_401: erro 401
87
+ error_403: erro 403
88
+ error_404: erro 404
89
+ error_410: erro 410
90
+ error_500: erro 500
91
+ error_description: Isto é o que é conhecido como <span class = "error-link"> %{error} </ span>.
92
+ errored: Opa! Sua solução não pode ser executada
93
+ exam_authorization_request_approved_html: Sua solicitação foi aprovada, não se esqueça de conectar em <strong>%{date}</strong>. Boa sorte!
94
+ exam_authorization_request_created: Seu registro de exame foi salvo com sucesso!
95
+ exam_authorization_request_rejected: Seu pedido foi rejeitado.
96
+ exam_authorization_request_saved: Seu registro de exame foi modificado com sucesso!
97
+ exam_authorization_request_updated: Há notícias sobre seu registro para %{description}
98
+ exam_registration_choose_exam: Selecione o dia e a hora em que gostaria de fazer o exame
99
+ exam_registration_explanation_html: Você tem tempo até <strong>%{date}</strong> para se inscrever. Após essa data, sua inscrição será avaliada e você receberá uma confirmação. <br> Não se esqueça de verificar as notificações!
100
+ exam_registration_open: "¡Inscrições abertas para %{description}!"
101
+ exam_registration_to: Inscrição a %{description}
92
102
  exams: Examesca
93
103
  exercise: Exercício
94
104
  exercise_count: exercícios
@@ -107,9 +117,10 @@ pt:
107
117
  first_name: Nome
108
118
  forbidden_explanation: Você poderia ter entrado com uma conta incorreta?
109
119
  format: Formato
110
- forum_terms: Regras do espaço de consulta
120
+ forum: Espaço de Consulta
121
+ forum_terms: Regras do Espaço de Consulta
111
122
  forum_terms_link: Se você tiver alguma dúvida, consulte as %{terms_link}
112
- fullscreen: Tela completa
123
+ fullscreen: Tela cheia (F11)
113
124
  gender: Gênero
114
125
  get_messages: Ver mensagens
115
126
  go_to: Vá para %{organization}
@@ -125,6 +136,7 @@ pt:
125
136
  home: Home
126
137
  hour: hora
127
138
  hours: horas
139
+ important_info: Informação importante
128
140
  initial_state: Tabuleiro inicial
129
141
  insert_file_name: Insira um nome de arquivo
130
142
  invitation: Convite para o curso
@@ -132,12 +144,6 @@ pt:
132
144
  item_not_accessible: Você não tem permissões para acessar este conteúdo
133
145
  joining_html: Bem-vindo ao curso <strong> %{curso} </strong>!
134
146
  kids_default_success: Você fez muito bem!
135
- kindergarten_passed: "O seu programa é muito bom!"
136
- kindergarten_passed_with_warnings: "O seu programa é muito bom!"
137
- kindergarten_pending: "Houve um erro no seu programa. Tenta novamente!"
138
- kindergarten_failed: "Houve um erro no seu programa. Tenta novamente!"
139
- kindergarten_errored: "Houve um erro no seu programa. Tenta novamente!"
140
- kindergarten_aborted: "Opa! Houve um problema técnico"
141
147
  language: Linguagem
142
148
  languages: Linguagens
143
149
  last_name: Sobrenome
@@ -166,8 +172,9 @@ pt:
166
172
  messages_error: As mensagens acima não estão disponíveis no momento. Eu tentei novamente mais tarde!
167
173
  minute: minuto
168
174
  minutes: minutos
169
- more_messages: Ver as mensagens anteriores
175
+ moderation: Mentoria
170
176
  moderator: Mentor
177
+ more_messages: Ver as mensagens anteriores
171
178
  my_doubts: Minhas duvidas
172
179
  name: Nome
173
180
  navigation_continue: "Próximo %{kind}: %{sibling}"
@@ -179,6 +186,7 @@ pt:
179
186
  new: Novo
180
187
  new_message: Você tem dúvidas? Levante a mão!
181
188
  new_message_placeholder: Escreva sua mensagem para o seu professor aqui ...
189
+ new_message_received: Você tem uma nova mensagem de %{sender}
182
190
  next_exercise: Em seguida
183
191
  next_guide: Próxima Lição %{nome}
184
192
  no_discussions: Não encontramos consultas que correspondam à sua pesquisa.
@@ -192,6 +200,7 @@ pt:
192
200
  not_found: A página que você pesquisou não existe!
193
201
  not_found_explanation: Olhe se você escreveu o endereço corretamente.
194
202
  not_in_any_organizations: Parece que você ainda não está em nenhuma organização!
203
+ notifications: Notificações
195
204
  notify_problem_with_exercise: Relatar um erro
196
205
  office: Secretariado
197
206
  only_landscape_support: Por favor, gire seu tablet ou celular para realizar exercícios
@@ -1,5 +1,5 @@
1
1
  module Mumuki
2
2
  module Laboratory
3
- VERSION = '8.2.0'
3
+ VERSION = '8.6.0'
4
4
  end
5
5
  end
@@ -0,0 +1,40 @@
1
+ require 'spec_helper'
2
+
3
+ describe ExamAuthorizationRequestsController, type: :controller, organization_workspace: :test do
4
+ let(:user) { create(:user) }
5
+ let(:exam) { create(:exam) }
6
+ let(:exam_registration) { create(:exam_registration, exams: [exam]) }
7
+
8
+ before { set_current_user! user }
9
+
10
+ describe 'show' do
11
+ context 'when authorization does not exist' do
12
+ before { get :show, params: {id: 0} }
13
+ it { expect(response.status).to eq 404 }
14
+ end
15
+
16
+ context 'when authorization exists' do
17
+ let(:exam_authorization_request) { create(:exam_authorization_request, user: user, exam_registration: exam_registration) }
18
+ let!(:notification) { create(:notification, target: exam_authorization_request, user: user) }
19
+
20
+ before { get :show, params: {id: exam_authorization_request.id} }
21
+
22
+ it { expect(response.status).to eq 200 }
23
+ it { expect(notification.reload.read).to be_truthy }
24
+ end
25
+ end
26
+
27
+ describe 'create' do
28
+ let!(:notification) { create(:notification, target: exam_registration, user: user) }
29
+
30
+ before do
31
+ post :create, params: {
32
+ exam_authorization_request: { exam_id: exam.id, exam_registration_id: exam_registration.id }
33
+ }
34
+ end
35
+
36
+ it { expect(response.status).to eq 204 }
37
+ it { expect(exam_registration.authorization_requests.length).to be 1 }
38
+ it { expect(notification.reload.read).to be_truthy }
39
+ end
40
+ end
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+
3
+ describe ExamRegistrationsController, type: :controller, organization_workspace: :test do
4
+ describe 'show' do
5
+ context 'when registration does not exist' do
6
+ before { get :show, params: {id: 0} }
7
+
8
+ it { expect(response.status).to eq 404 }
9
+ end
10
+
11
+ context 'when registration exists' do
12
+ let!(:registration) { create(:exam_registration) }
13
+
14
+ before { get :show, params: {id: registration.id} }
15
+
16
+ it { expect(response.status).to eq 200 }
17
+ end
18
+ end
19
+ end