mumuki-laboratory 8.4.0 → 9.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (95) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/mumuki_laboratory/application/upload.js +69 -14
  3. data/app/assets/stylesheets/mumuki_laboratory/application/_layout.scss +3 -0
  4. data/app/assets/stylesheets/mumuki_laboratory/application/_modules.scss +1 -0
  5. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_content_show.scss +15 -2
  6. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_discussion.scss +31 -8
  7. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_medal.scss +1 -1
  8. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_user_menu.scss +35 -0
  9. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_user_profile.scss +11 -0
  10. data/app/controllers/api/base_controller.rb +0 -1
  11. data/app/controllers/api/courses_controller.rb +1 -1
  12. data/app/controllers/api/organizations_controller.rb +5 -2
  13. data/app/controllers/api/roles_controller.rb +4 -0
  14. data/app/controllers/api/users_controller.rb +6 -1
  15. data/app/controllers/application_controller.rb +1 -1
  16. data/app/controllers/concerns/with_authorization.rb +1 -16
  17. data/app/controllers/concerns/with_user_params.rb +4 -0
  18. data/app/controllers/discussions_messages_controller.rb +0 -1
  19. data/app/controllers/exam_authorization_requests_controller.rb +26 -0
  20. data/app/controllers/exam_registrations_controller.rb +6 -0
  21. data/app/controllers/users_controller.rb +8 -5
  22. data/app/helpers/application_helper.rb +4 -0
  23. data/app/helpers/breadcrumbs_helper.rb +4 -0
  24. data/app/helpers/content_view_helper.rb +19 -0
  25. data/app/helpers/exercise_input_helper.rb +8 -17
  26. data/app/helpers/icons_helper.rb +3 -11
  27. data/app/helpers/links_helper.rb +3 -3
  28. data/app/helpers/menu_bar_helper.rb +3 -3
  29. data/app/helpers/progress_bar_helper.rb +2 -2
  30. data/app/helpers/user_menu_helper.rb +18 -0
  31. data/app/views/chapters/show.html.erb +17 -16
  32. data/app/views/complements/show.html.erb +1 -1
  33. data/app/views/discussions/_message.html.erb +7 -7
  34. data/app/views/exam_authorization_requests/show.html.erb +17 -0
  35. data/app/views/exam_registrations/show.html.erb +37 -0
  36. data/app/views/exams/show.html.erb +1 -1
  37. data/app/views/{layouts → exercises}/_exercise_skipped.html.erb +0 -0
  38. data/app/views/exercises/_exercise_title_icons.html.erb +4 -0
  39. data/app/views/exercises/show.html.erb +5 -8
  40. data/app/views/{layouts → guides}/_guide.html.erb +3 -3
  41. data/app/views/guides/_guide_container.html.erb +24 -0
  42. data/app/views/{layouts → guides}/_guide_title_icons.html.erb +1 -3
  43. data/app/views/layouts/_progress_bar.html.erb +9 -7
  44. data/app/views/layouts/_progress_listing.html.erb +5 -5
  45. data/app/views/layouts/_user_menu.html.erb +21 -0
  46. data/app/views/layouts/application.html.erb +1 -6
  47. data/app/views/layouts/exercise_inputs/editors/_upload.html.erb +11 -2
  48. data/app/views/lessons/show.html.erb +1 -1
  49. data/app/views/notifications/_discussion.html.erb +1 -0
  50. data/app/views/notifications/_dropdown.html.erb +13 -0
  51. data/app/views/notifications/_exam_authorization_request.html.erb +1 -0
  52. data/app/views/notifications/_exam_registration.html.erb +1 -0
  53. data/app/views/notifications/_message.html.erb +1 -0
  54. data/app/views/users/_user_form.html.erb +10 -8
  55. data/app/views/users/discussions.html.erb +28 -0
  56. data/app/views/users/edit.html.erb +1 -1
  57. data/app/views/users/messages.html.erb +27 -0
  58. data/app/views/users/show.html.erb +4 -51
  59. data/app/views/users/terms.html.erb +2 -2
  60. data/config/routes.rb +6 -0
  61. data/lib/mumuki/laboratory/controllers/notifications.rb +3 -22
  62. data/lib/mumuki/laboratory/locales/en.yml +34 -17
  63. data/lib/mumuki/laboratory/locales/es-CL.yml +25 -8
  64. data/lib/mumuki/laboratory/locales/es.yml +30 -14
  65. data/lib/mumuki/laboratory/locales/pt.yml +27 -10
  66. data/lib/mumuki/laboratory/version.rb +1 -1
  67. data/spec/controllers/exam_authorization_requests_controller_spec.rb +40 -0
  68. data/spec/controllers/exam_registrations_controller_spec.rb +19 -0
  69. data/spec/controllers/organizations_api_controller_spec.rb +16 -9
  70. data/spec/dummy/db/schema.rb +23 -0
  71. data/spec/features/exercise_flow_spec.rb +3 -3
  72. data/spec/features/login_flow_spec.rb +1 -1
  73. data/spec/features/menu_bar_spec.rb +24 -24
  74. data/spec/features/notifications_flow_spec.rb +46 -0
  75. data/spec/features/profile_flow_spec.rb +6 -9
  76. data/spec/features/terms_flow_spec.rb +30 -0
  77. data/spec/helpers/application_helper_spec.rb +10 -0
  78. data/spec/javascripts/bridge-spec.js +2 -2
  79. data/spec/javascripts/csrf-token-spec.js +2 -2
  80. data/spec/javascripts/editors-spec.js +7 -9
  81. data/spec/javascripts/elipsis-spec.js +4 -4
  82. data/spec/javascripts/events-spec.js +7 -7
  83. data/spec/javascripts/exercise-spec.js +7 -8
  84. data/spec/javascripts/global-spec.js +3 -3
  85. data/spec/javascripts/i18n-spec.js +23 -20
  86. data/spec/javascripts/kids-button-spec.js +6 -8
  87. data/spec/javascripts/results-renderers-spec.js +5 -5
  88. data/spec/javascripts/speech-bubble-renderer-spec.js +2 -3
  89. data/spec/javascripts/submissions-store-spec.js +14 -14
  90. data/spec/javascripts/sync-mode-spec.js +3 -3
  91. data/spec/javascripts/timeout-spec.js +2 -2
  92. data/spec/javascripts/timer-spec.js +2 -2
  93. data/spec/javascripts/upload-spec.js +80 -0
  94. metadata +132 -108
  95. data/app/views/layouts/_guide_container.html.erb +0 -28
@@ -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,8 +65,10 @@ 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
71
+ discussions_will_be_here: Las preguntas que realices en el espacio de consultas aparecerán aquí.
70
72
  dont_leave_us: ¡No nos abandones! Aprender a programar es divertido. Sólo tienes que seguir practicando.
71
73
  download: "Descarga lo que hiciste"
72
74
  edit: Editar
@@ -78,13 +80,22 @@ es-CL:
78
80
  error_404: error 404
79
81
  error_410: error 410
80
82
  error_500: error 500
81
- errored: ¡Ups! Tu solución no se puede ejecutar
82
83
  error:
83
84
  title:
84
85
  forbidden: No tienes autorización para ver este contenido
85
86
  gone: ¡Ups! El contenido expiró
86
87
  internal_server_error: ¡Ups! Algo no anduvo bien
87
88
  not_found: ¡Ups! La página no existe
89
+ errored: ¡Ups! Tu solución no se puede ejecutar
90
+ exam_authorization_request_approved_html: Tu solicitud fue aprobada, no olvides conectarte el <strong>%{date}</strong>. ¡Buena suerte!
91
+ exam_authorization_request_created: ¡Tu inscripción al exámen se registró exitosamente!
92
+ exam_authorization_request_rejected: Tu solicitud fue rechazada.
93
+ exam_authorization_request_saved: ¡Tu inscripción al exámen se modificó exitosamente!
94
+ exam_authorization_request_updated: Hay novedades sobre tu inscripción a %{description}
95
+ exam_registration_choose_exam: Seleccioná día y horario en el que te gustaría rendir el exámen
96
+ 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!
97
+ exam_registration_open: ¡Ya puedes inscribirte a %{description}!
98
+ exam_registration_to: Inscripción a %{description}
88
99
  exams: Exámenes
89
100
  exercise: Ejercicio
90
101
  exercise_count: ejercicios
@@ -99,6 +110,7 @@ es-CL:
99
110
  failed: Tu solución no pasó las pruebas
100
111
  feedback: Problemas que encontramos
101
112
  female: Mujer
113
+ file_exceeds_max_size: "El tamaño de archivo no debe exceder %{size_kb}kb. Por favor selecciona otro archivo."
102
114
  finish: Terminar
103
115
  first_name: Nombre
104
116
  forbidden_explanation: ¿Puede que hayas ingresado con una cuenta incorrecta?
@@ -120,6 +132,7 @@ es-CL:
120
132
  home: Inicio
121
133
  hour: hora
122
134
  hours: horas
135
+ important_info: Información importante
123
136
  initial_state: Tablero inicial
124
137
  insert_file_name: Ingresa un nombre de archivo
125
138
  invitation: Invitación a curso
@@ -156,9 +169,12 @@ es-CL:
156
169
  messages_error: Los mensajes anteriores no están disponibles en este momento. ¡Vuelve a intentar más tarde!
157
170
  minute: minuto
158
171
  minutes: minutos
172
+ moderation: Mentoría
173
+ moderator: Mentor
159
174
  more_messages: Ver mensajes anteriores
160
- moderator: Moderador
175
+ my_account: Mi cuenta
161
176
  my_doubts: Mis consultas
177
+ my_profile: Mi perfil
162
178
  name: Nombre
163
179
  navigation_continue: 'Siguiente %{kind}: %{sibling}'
164
180
  navigation_next: Siguiente %{kind}
@@ -167,22 +183,24 @@ es-CL:
167
183
  need_help: No entiendo, ¡necesito ayuda!
168
184
  never: nunca
169
185
  new: Nuevo
170
- new_message: ¿Tienes dudas? ¡Levanta la mano!
171
186
  new_discussion: Nueva consulta
187
+ new_message: ¿Tienes dudas? ¡Levanta la mano!
172
188
  new_message_placeholder: Escribe el mensaje para tu docente acá...
189
+ new_message_received: Tienes un nuevo mensaje de %{sender}
173
190
  next_exercise: Siguiente
174
191
  next_guide: 'Siguiente Lección: %{name}'
175
192
  no_discussions: No encontramos consultas que coincidan con tu búsqueda.
176
193
  no_exercises: No encontramos ejercicios que coincidan con tu búsqueda.
177
194
  no_guides: No encontramos lecciones que coincidan con tu búsqueda.
178
195
  no_messages: ¡Parece que no tienes ningún mensaje todavía!
179
- no_need_hint: 'Este ejercicio no tiene pista'
196
+ no_need_hint: Este ejercicio no tiene pista
180
197
  no_questions: Parece que aún no hay ninguna consulta.
181
198
  no_submissions: ¡Parece que aún no intentaste resolver este ejercicio!
182
199
  no_useful_result: ¿No encontraste lo que estabas buscando?
183
200
  not_found: ¡La página que buscaste no existe!
184
201
  not_found_explanation: Fíjate si escribiste bien la dirección.
185
202
  not_in_any_organizations: ¡Parece que no estás en ninguna organización todavía!
203
+ notifications: Notificaciones
186
204
  notify_problem_with_exercise: Reporta un bug
187
205
  office: Secretaría
188
206
  only_landscape_support: Por favor, rota tu tablet o celular para realizar ejercicios
@@ -208,7 +226,6 @@ es-CL:
208
226
  previous_exercise: Anterior
209
227
  problem_with_exercise: '[Mumuki] Error con el ejercicio: %{title}'
210
228
  processing_your_solution: Estamos procesando tu solución
211
- profile: Perfil
212
229
  profile_of: Perfil de %{username}
213
230
  progress: Progreso
214
231
  read: Leído
@@ -222,6 +239,7 @@ es-CL:
222
239
  running: procesando
223
240
  save: Guardar
224
241
  see_context: Mira la animación del principio
242
+ select_file: Seleccionar archivo
225
243
  send: Enviar
226
244
  sending_solution: Enviando solución
227
245
  show: Mostrar
@@ -283,7 +301,6 @@ es-CL:
283
301
  unprepared_organization_explanation: ¡Este recorrido aún no ha comenzado!
284
302
  unsubscribe: Dejar de recibir notificaciones
285
303
  unsubscribed_successfully: Te desuscribiste exitosamente de los recordatorios.
286
- upload_solution: "Subir solución"
287
304
  uploading_solution: "Subiendo solución"
288
305
  upvote: Es útil
289
306
  upvotes_count_desc: Más útiles
@@ -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,7 +73,9 @@ 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
78
+ discussions_will_be_here: Las preguntas que realices en el espacio de consultas aparecerán aquí.
77
79
  dont_leave_us: ¡No nos abandones! Aprender a programar es divertido. Sólo tenés que seguir practicando.
78
80
  download: "Descargá lo que hiciste"
79
81
  edit: Editar
@@ -86,13 +88,22 @@ es:
86
88
  error_404: error 404
87
89
  error_410: error 410
88
90
  error_500: error 500
89
- errored: ¡Ups! Tu solución no se puede ejecutar
90
91
  error:
91
92
  title:
92
93
  forbidden: No tenés autorización para ver este contenido
93
94
  gone: ¡Ups! El contenido expiró
94
95
  internal_server_error: ¡Ups! Algo no anduvo bien
95
96
  not_found: ¡Ups! La página no existe
97
+ errored: ¡Ups! Tu solución no se puede ejecutar
98
+ exam_authorization_request_approved_html: Tu solicitud fue aprobada, no olvides conectarte el <strong>%{date}</strong>. ¡Buena suerte!
99
+ exam_authorization_request_created: ¡Tu inscripción al exámen se registró exitosamente!
100
+ exam_authorization_request_rejected: Tu solicitud fue rechazada.
101
+ exam_authorization_request_saved: ¡Tu inscripción al exámen se modificó exitosamente!
102
+ exam_authorization_request_updated: Hay novedades sobre tu inscripción a %{description}
103
+ exam_registration_choose_exam: Seleccioná día y horario en el que te gustaría rendir el exámen
104
+ 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!
105
+ exam_registration_open: ¡Ya podés inscribirte a %{description}!
106
+ exam_registration_to: Inscripción a %{description}
96
107
  exams: Exámenes
97
108
  exercise: Ejercicio
98
109
  exercise_count: ejercicios
@@ -107,6 +118,7 @@ es:
107
118
  failed: Tu solución no pasó las pruebas
108
119
  feedback: Problemas que encontramos
109
120
  female: Mujer
121
+ file_exceeds_max_size: "El tamaño de archivo no debe exceder %{size_kb}kb. Por favor seleccioná otro archivo."
110
122
  finish: Terminar
111
123
  first_name: Nombre
112
124
  forbidden_explanation: ¿Puede que hayas ingresado con una cuenta incorrecta?
@@ -130,15 +142,16 @@ es:
130
142
  home: Inicio
131
143
  hour: hora
132
144
  hours: horas
145
+ important_info: Información importante
133
146
  initial_state: Tablero inicial
134
147
  insert_file_name: Ingresa un nombre de archivo
135
148
  invitation: Invitación a curso
136
149
  invitation_for: 'Unirse a %{course}'
137
- item_not_accessible: "No tenés permisos para acceder a este contenido"
150
+ item_not_accessible: No tenés permisos para acceder a este contenido
138
151
  its_been_a_while: Hace un tiempo que no usás Mumuki.
139
152
  joining_html: '¡Te damos la bienvenida al curso <strong>%{course}</strong>!'
140
153
  keep_learning: ¡Seguí aprendiendo!
141
- kids_default_success: "¡Lo hiciste muy bien!"
154
+ kids_default_success: ¡Lo hiciste muy bien!
142
155
  language: Lenguaje
143
156
  languages: Lenguajes
144
157
  last_name: Apellido
@@ -167,9 +180,12 @@ es:
167
180
  messages_error: Los mensajes anteriores no están disponibles en este momento. ¡Volvé a intentar mas tarde!
168
181
  minute: minuto
169
182
  minutes: minutos
170
- more_messages: Ver mensajes anteriores
183
+ moderation: Mentoría
171
184
  moderator: Mentor
185
+ more_messages: Ver mensajes anteriores
186
+ my_account: Mi cuenta
172
187
  my_doubts: Mis consultas
188
+ my_profile: Mi perfil
173
189
  name: Nombre
174
190
  navigation_continue: 'Siguiente %{kind}: %{sibling}'
175
191
  navigation_next: Siguiente %{kind}
@@ -178,9 +194,10 @@ es:
178
194
  need_help: No entiendo, ¡necesito ayuda!
179
195
  never: nunca
180
196
  new: Nuevo
181
- new_message: ¿Tenés dudas? ¡Levantá la mano!
182
197
  new_discussion: Nueva consulta
198
+ new_message: ¿Tenés dudas? ¡Levantá la mano!
183
199
  new_message_placeholder: Escribí el mensaje para tu docente acá...
200
+ new_message_received: Tenés un nuevo mensaje de %{sender}
184
201
  next_exercise: Siguiente
185
202
  next_guide: 'Siguiente Lección: %{name}'
186
203
  no_discussions: No encontramos consultas que coincidan con tu búsqueda.
@@ -194,6 +211,7 @@ es:
194
211
  not_found: ¡La página que buscaste no existe!
195
212
  not_found_explanation: Fijate si escribiste bien la dirección.
196
213
  not_in_any_organizations: ¡Parece que no estás en ninguna organización todavía!
214
+ notifications: Notificaciones
197
215
  notify_problem_with_exercise: Reportá un bug
198
216
  office: Secretaría
199
217
  only_landscape_support: Por favor, rotá tu tablet o celular para realizar ejercicios
@@ -219,7 +237,6 @@ es:
219
237
  previous_exercise: Anterior
220
238
  problem_with_exercise: '[Mumuki] Error con el ejercicio: %{title}'
221
239
  processing_your_solution: Estamos procesando tu solución
222
- profile: Perfil
223
240
  profile_of: Perfil de %{username}
224
241
  programming_since: Programando desde
225
242
  progress: Progreso
@@ -237,6 +254,7 @@ es:
237
254
  running: procesando
238
255
  save: Guardar
239
256
  see_context: Mirá la animación del principio
257
+ select_file: Seleccionar archivo
240
258
  send: Enviar
241
259
  sending_solution: Enviando solución
242
260
  show: Mostrar
@@ -266,13 +284,13 @@ es:
266
284
  start_using_mumuki: ¡Empezá a usar Mumuki!
267
285
  status: Estado
268
286
  stop_emails?: ¿Querés dejar de recibir estos mails?
269
- subscribe: Recibir notificaciones
270
287
  submission: solución
271
288
  submission_date: Fecha de envío
272
289
  submission_for_exercise: Solucion para ejercicio
273
290
  submissions: Soluciones
274
291
  submissions_count: Soluciones
275
292
  submissions_for: Soluciones para %{exercise}
293
+ subscribe: Recibir notificaciones
276
294
  tag: Etiquetas
277
295
  task: Consigna
278
296
  teacher_info: Información para docentes
@@ -299,7 +317,6 @@ es:
299
317
  unprepared_organization_explanation: Este recorrido aún no ha comenzado
300
318
  unsubscribe: Dejar de recibir notificaciones
301
319
  unsubscribed_successfully: Te desuscribiste exitosamente de los recordatorios.
302
- upload_solution: "Subir solución"
303
320
  uploading_solution: "Subiendo solución"
304
321
  upvote: Es útil
305
322
  upvotes_count_desc: Más útiles
@@ -322,4 +339,3 @@ es:
322
339
  you_must_sign_in_before_submitting: Tenés que iniciar sesión antes de empezar a enviar tus soluciones
323
340
  you_never_submitted_solutions: Parece que nunca enviaste soluciones desde que creaste tu cuenta.
324
341
  your_new_organization: tu nueva organización
325
-
@@ -69,26 +69,37 @@ 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
75
+ discussions_will_be_here: As perguntas que você fizer no espaço de consulta aparecerão aqui.
74
76
  download: Faça o download do que você fez
75
77
  edit: Editar
76
78
  edit_profile: Editar perfil
77
79
  editor_placeholder: ... Escreva sua solução aqui ...
78
80
  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
81
  error:
87
82
  title:
88
83
  forbidden: Você não tem autorização para ver esse conteúdo
89
84
  gone: Opa! O conteúdo expirou
90
85
  internal_server_error: Opa! Algo não estava certo
91
86
  not_found: Opa! A página que você pesquisou não existe
87
+ error_401: erro 401
88
+ error_403: erro 403
89
+ error_404: erro 404
90
+ error_410: erro 410
91
+ error_500: erro 500
92
+ error_description: Isto é o que é conhecido como <span class = "error-link"> %{error} </ span>.
93
+ errored: Opa! Sua solução não pode ser executada
94
+ exam_authorization_request_approved_html: Sua solicitação foi aprovada, não se esqueça de conectar em <strong>%{date}</strong>. Boa sorte!
95
+ exam_authorization_request_created: Seu registro de exame foi salvo com sucesso!
96
+ exam_authorization_request_rejected: Seu pedido foi rejeitado.
97
+ exam_authorization_request_saved: Seu registro de exame foi modificado com sucesso!
98
+ exam_authorization_request_updated: Há notícias sobre seu registro para %{description}
99
+ exam_registration_choose_exam: Selecione o dia e a hora em que gostaria de fazer o exame
100
+ 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!
101
+ exam_registration_open: "¡Inscrições abertas para %{description}!"
102
+ exam_registration_to: Inscrição a %{description}
92
103
  exams: Examesca
93
104
  exercise: Exercício
94
105
  exercise_count: exercícios
@@ -103,6 +114,7 @@ pt:
103
114
  failed: Sua solução não passou as provas
104
115
  feedback: Problemas que encontramos
105
116
  female: Feminino
117
+ file_exceeds_max_size: "O tamanho do arquivo não deve exceder %{size_kb}kb. Selecione outro arquivo."
106
118
  finish: Terminar
107
119
  first_name: Nome
108
120
  forbidden_explanation: Você poderia ter entrado com uma conta incorreta?
@@ -126,6 +138,7 @@ pt:
126
138
  home: Home
127
139
  hour: hora
128
140
  hours: horas
141
+ important_info: Informação importante
129
142
  initial_state: Tabuleiro inicial
130
143
  insert_file_name: Insira um nome de arquivo
131
144
  invitation: Convite para o curso
@@ -161,9 +174,12 @@ pt:
161
174
  messages_error: As mensagens acima não estão disponíveis no momento. Eu tentei novamente mais tarde!
162
175
  minute: minuto
163
176
  minutes: minutos
164
- more_messages: Ver as mensagens anteriores
177
+ moderation: Mentoria
165
178
  moderator: Mentor
179
+ more_messages: Ver as mensagens anteriores
180
+ my_account: Minha conta
166
181
  my_doubts: Minhas duvidas
182
+ my_profile: Meu perfil
167
183
  name: Nome
168
184
  navigation_continue: "Próximo %{kind}: %{sibling}"
169
185
  navigation_next: Próximo %{kind}
@@ -174,6 +190,7 @@ pt:
174
190
  new: Novo
175
191
  new_message: Você tem dúvidas? Levante a mão!
176
192
  new_message_placeholder: Escreva sua mensagem para o seu professor aqui ...
193
+ new_message_received: Você tem uma nova mensagem de %{sender}
177
194
  next_exercise: Em seguida
178
195
  next_guide: Próxima Lição %{nome}
179
196
  no_discussions: Não encontramos consultas que correspondam à sua pesquisa.
@@ -187,6 +204,7 @@ pt:
187
204
  not_found: A página que você pesquisou não existe!
188
205
  not_found_explanation: Olhe se você escreveu o endereço corretamente.
189
206
  not_in_any_organizations: Parece que você ainda não está em nenhuma organização!
207
+ notifications: Notificações
190
208
  notify_problem_with_exercise: Relatar um erro
191
209
  office: Secretariado
192
210
  only_landscape_support: Por favor, gire seu tablet ou celular para realizar exercícios
@@ -210,7 +228,6 @@ pt:
210
228
  previous_exercise: Anterior
211
229
  problem_with_exercise: '[Mumuki] Erro com exercício %{title}'
212
230
  processing_your_solution: Estamos processando sua solução
213
- profile: Perfil
214
231
  profile_of: Perfil de %{username}
215
232
  programming_since: Sou programador
216
233
  progress: Progresso
@@ -226,6 +243,7 @@ pt:
226
243
  running: processamento
227
244
  save: Salvar
228
245
  see_context: Veja a animação desde o início
246
+ select_file: Selecione o arquivo
229
247
  send: Enviar
230
248
  sending_solution: Solução de envio
231
249
  show: Mostrar
@@ -282,7 +300,6 @@ pt:
282
300
  unmeet_expectations: Objetivos que não foram atendidos
283
301
  unprepared_organization_explanation: Este curso ainda não começou
284
302
  unsubscribe: Cancelar subscrição
285
- upload_solution: Carregar solução
286
303
  uploading_solution: Uploading solution
287
304
  user: Usuário
288
305
  user_data_updated: Os seus dados foram atualizados corretamente
@@ -1,5 +1,5 @@
1
1
  module Mumuki
2
2
  module Laboratory
3
- VERSION = '8.4.0'
3
+ VERSION = '9.0.1'
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