mumuki-laboratory 8.2.1 → 8.6.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +19 -8
- data/app/assets/javascripts/mumuki_laboratory/application/bridge.js +2 -1
- data/app/assets/javascripts/mumuki_laboratory/application/button.js +0 -2
- data/app/assets/javascripts/mumuki_laboratory/application/codemirror.js +1 -1
- data/app/assets/javascripts/mumuki_laboratory/application/i18n.js +73 -0
- data/app/assets/javascripts/mumuki_laboratory/application/kids.js +22 -1
- data/app/assets/javascripts/mumuki_laboratory/application/kindergarten.js +6 -1
- data/app/assets/javascripts/mumuki_laboratory/application/primary.js +5 -3
- data/app/assets/javascripts/mumuki_laboratory/application/results-renderer.js +28 -1
- data/app/assets/javascripts/mumuki_laboratory/application/submission.js +72 -48
- data/app/assets/javascripts/mumuki_laboratory/application/upload.js +69 -14
- data/app/assets/stylesheets/mumuki_laboratory/application.scss +1 -0
- data/app/assets/stylesheets/mumuki_laboratory/application/_codemirror-themes.scss +1 -0
- data/app/assets/stylesheets/mumuki_laboratory/application/codemirror-themes/_mu-light.scss +3 -0
- data/app/assets/stylesheets/mumuki_laboratory/application/modules/_content_show.scss +1 -1
- data/app/assets/stylesheets/mumuki_laboratory/application/modules/_discussion.scss +31 -8
- data/app/assets/stylesheets/mumuki_laboratory/application/modules/_kids.scss +4 -0
- data/app/assets/stylesheets/mumuki_laboratory/application/modules/_kids_results.scss +1 -0
- data/app/assets/stylesheets/mumuki_laboratory/application/modules/_terms.scss +4 -0
- data/app/controllers/application_controller.rb +1 -1
- data/app/controllers/chapters_controller.rb +9 -5
- data/app/controllers/exam_authorization_requests_controller.rb +26 -0
- data/app/controllers/exam_registrations_controller.rb +6 -0
- data/app/controllers/guide_container_controller.rb +2 -7
- data/app/helpers/application_helper.rb +4 -0
- data/app/helpers/contextualization_result_helper.rb +0 -8
- data/app/helpers/discussions_helper.rb +8 -0
- data/app/helpers/exercise_input_helper.rb +8 -17
- data/app/helpers/icons_helper.rb +3 -11
- data/app/helpers/menu_bar_helper.rb +6 -2
- data/app/helpers/overlapped_buttons_helper.rb +10 -6
- data/app/helpers/progress_bar_helper.rb +2 -2
- data/app/views/book_discussions/index.html.erb +3 -1
- data/app/views/chapters/show.html.erb +21 -9
- data/app/views/complements/show.html.erb +1 -1
- data/app/views/discussions/_message.html.erb +7 -7
- data/app/views/discussions/index.html.erb +11 -4
- data/app/views/exam_authorization_requests/show.html.erb +17 -0
- data/app/views/exam_registrations/show.html.erb +37 -0
- data/app/views/exams/show.html.erb +1 -1
- data/app/views/exercises/show.html.erb +2 -2
- data/app/views/layouts/_discussions.html.erb +0 -4
- data/app/views/layouts/_guide.html.erb +4 -33
- data/app/views/layouts/_guide_container.html.erb +28 -0
- data/app/views/layouts/_guide_title_icons.html.erb +9 -0
- data/app/views/layouts/_progress_bar.html.erb +9 -7
- data/app/views/layouts/_progress_listing.html.erb +5 -5
- data/app/views/layouts/_social_media.html.erb +2 -2
- data/app/views/layouts/application.html.erb +4 -7
- data/app/views/layouts/exercise_inputs/editors/_upload.html.erb +11 -2
- data/app/views/layouts/exercise_inputs/layouts/_input_kindergarten.html.erb +1 -1
- data/app/views/layouts/modals/_kindergarten_results_aborted.html.erb +1 -1
- data/app/views/lessons/show.html.erb +1 -1
- data/app/views/notifications/_discussion.html.erb +1 -0
- data/app/views/notifications/_dropdown.html.erb +13 -0
- data/app/views/notifications/_exam_authorization_request.html.erb +1 -0
- data/app/views/notifications/_exam_registration.html.erb +1 -0
- data/app/views/notifications/_message.html.erb +1 -0
- data/app/views/users/_term.html.erb +1 -1
- data/app/views/users/terms.html.erb +1 -1
- data/config/routes.rb +3 -0
- data/lib/mumuki/laboratory/controllers/notifications.rb +3 -22
- data/lib/mumuki/laboratory/controllers/results_rendering.rb +2 -1
- data/lib/mumuki/laboratory/locales/en.yml +34 -24
- data/lib/mumuki/laboratory/locales/es-CL.yml +25 -10
- data/lib/mumuki/laboratory/locales/es.yml +32 -23
- data/lib/mumuki/laboratory/locales/pt.yml +27 -17
- data/lib/mumuki/laboratory/version.rb +1 -1
- data/spec/controllers/exam_authorization_requests_controller_spec.rb +40 -0
- data/spec/controllers/exam_registrations_controller_spec.rb +19 -0
- data/spec/controllers/exercise_solutions_controller_spec.rb +3 -2
- data/spec/dummy/db/schema.rb +50 -1
- data/spec/dummy/public/character/animations.json +1 -0
- data/{public → spec/dummy/public}/character/kibi/context.svg +0 -0
- data/{public → spec/dummy/public}/character/kibi/failure.svg +0 -0
- data/{public → spec/dummy/public}/character/kibi/jump.svg +0 -0
- data/spec/dummy/public/character/kibi/passed_with_warnings.svg +4 -0
- data/{public → spec/dummy/public}/character/kibi/success2_l.svg +0 -0
- data/{public → spec/dummy/public}/character/kibi/success_l.svg +0 -0
- data/{public → spec/dummy/public}/character/magnifying_glass/apparition.svg +0 -0
- data/{public → spec/dummy/public}/character/magnifying_glass/loop.svg +0 -0
- data/spec/features/chapters_flow_spec.rb +112 -0
- data/spec/features/login_flow_spec.rb +1 -1
- data/spec/features/notifications_flow_spec.rb +46 -0
- data/spec/features/profile_flow_spec.rb +1 -2
- data/spec/features/terms_flow_spec.rb +30 -0
- data/spec/features/topic_flow_spec.rb +0 -1
- data/spec/javascripts/bridge-spec.js +2 -2
- data/spec/javascripts/csrf-token-spec.js +2 -2
- data/spec/javascripts/editors-spec.js +7 -9
- data/spec/javascripts/elipsis-spec.js +4 -4
- data/spec/javascripts/events-spec.js +7 -7
- data/spec/javascripts/exercise-spec.js +7 -8
- data/spec/javascripts/global-spec.js +3 -3
- data/spec/javascripts/i18n-spec.js +82 -0
- data/spec/javascripts/kids-button-spec.js +34 -0
- data/spec/javascripts/results-renderers-spec.js +5 -5
- data/spec/javascripts/speech-bubble-renderer-spec.js +2 -3
- data/spec/javascripts/submissions-store-spec.js +14 -14
- data/spec/javascripts/sync-mode-spec.js +3 -3
- data/spec/javascripts/timeout-spec.js +2 -2
- data/spec/javascripts/timer-spec.js +2 -2
- data/spec/javascripts/upload-spec.js +80 -0
- metadata +131 -96
- data/spec/features/chapter_spec.rb +0 -70
@@ -12,7 +12,7 @@ es:
|
|
12
12
|
age: Edad
|
13
13
|
all: Todos
|
14
14
|
and: y
|
15
|
-
appendix:
|
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:
|
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:
|
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
|
@@ -107,13 +117,15 @@ es:
|
|
107
117
|
failed: Tu solución no pasó las pruebas
|
108
118
|
feedback: Problemas que encontramos
|
109
119
|
female: Mujer
|
120
|
+
file_exceeds_max_size: "El tamaño de archivo no debe exceder %{size_kb}kb. Por favor seleccioná otro archivo."
|
110
121
|
finish: Terminar
|
111
122
|
first_name: Nombre
|
112
123
|
forbidden_explanation: ¿Puede que hayas ingresado con una cuenta incorrecta?
|
113
124
|
format: Dar formato
|
114
|
-
|
115
|
-
|
116
|
-
|
125
|
+
forum: Espacio de Consultas
|
126
|
+
forum_terms: Reglas del Espacio de Consultas
|
127
|
+
forum_terms_link: No olvides que al participar debés cumplir las %{terms_link}
|
128
|
+
fullscreen: "Pantalla completa (F11)"
|
117
129
|
gender: Género
|
118
130
|
get_messages: "Ver mensajes"
|
119
131
|
go_to: 'Ir a %{organization}'
|
@@ -129,21 +141,16 @@ es:
|
|
129
141
|
home: Inicio
|
130
142
|
hour: hora
|
131
143
|
hours: horas
|
144
|
+
important_info: Información importante
|
132
145
|
initial_state: Tablero inicial
|
133
146
|
insert_file_name: Ingresa un nombre de archivo
|
134
147
|
invitation: Invitación a curso
|
135
148
|
invitation_for: 'Unirse a %{course}'
|
136
|
-
item_not_accessible:
|
149
|
+
item_not_accessible: No tenés permisos para acceder a este contenido
|
137
150
|
its_been_a_while: Hace un tiempo que no usás Mumuki.
|
138
151
|
joining_html: '¡Te damos la bienvenida al curso <strong>%{course}</strong>!'
|
139
152
|
keep_learning: ¡Seguí aprendiendo!
|
140
|
-
kids_default_success:
|
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"
|
153
|
+
kids_default_success: ¡Lo hiciste muy bien!
|
147
154
|
language: Lenguaje
|
148
155
|
languages: Lenguajes
|
149
156
|
last_name: Apellido
|
@@ -172,8 +179,9 @@ es:
|
|
172
179
|
messages_error: Los mensajes anteriores no están disponibles en este momento. ¡Volvé a intentar mas tarde!
|
173
180
|
minute: minuto
|
174
181
|
minutes: minutos
|
175
|
-
|
182
|
+
moderation: Mentoría
|
176
183
|
moderator: Mentor
|
184
|
+
more_messages: Ver mensajes anteriores
|
177
185
|
my_doubts: Mis consultas
|
178
186
|
name: Nombre
|
179
187
|
navigation_continue: 'Siguiente %{kind}: %{sibling}'
|
@@ -183,9 +191,10 @@ es:
|
|
183
191
|
need_help: No entiendo, ¡necesito ayuda!
|
184
192
|
never: nunca
|
185
193
|
new: Nuevo
|
186
|
-
new_message: ¿Tenés dudas? ¡Levantá la mano!
|
187
194
|
new_discussion: Nueva consulta
|
195
|
+
new_message: ¿Tenés dudas? ¡Levantá la mano!
|
188
196
|
new_message_placeholder: Escribí el mensaje para tu docente acá...
|
197
|
+
new_message_received: Tenés un nuevo mensaje de %{sender}
|
189
198
|
next_exercise: Siguiente
|
190
199
|
next_guide: 'Siguiente Lección: %{name}'
|
191
200
|
no_discussions: No encontramos consultas que coincidan con tu búsqueda.
|
@@ -199,6 +208,7 @@ es:
|
|
199
208
|
not_found: ¡La página que buscaste no existe!
|
200
209
|
not_found_explanation: Fijate si escribiste bien la dirección.
|
201
210
|
not_in_any_organizations: ¡Parece que no estás en ninguna organización todavía!
|
211
|
+
notifications: Notificaciones
|
202
212
|
notify_problem_with_exercise: Reportá un bug
|
203
213
|
office: Secretaría
|
204
214
|
only_landscape_support: Por favor, rotá tu tablet o celular para realizar ejercicios
|
@@ -242,6 +252,7 @@ es:
|
|
242
252
|
running: procesando
|
243
253
|
save: Guardar
|
244
254
|
see_context: Mirá la animación del principio
|
255
|
+
select_file: Seleccionar archivo
|
245
256
|
send: Enviar
|
246
257
|
sending_solution: Enviando solución
|
247
258
|
show: Mostrar
|
@@ -271,20 +282,20 @@ es:
|
|
271
282
|
start_using_mumuki: ¡Empezá a usar Mumuki!
|
272
283
|
status: Estado
|
273
284
|
stop_emails?: ¿Querés dejar de recibir estos mails?
|
274
|
-
subscribe: Recibir notificaciones
|
275
285
|
submission: solución
|
276
286
|
submission_date: Fecha de envío
|
277
287
|
submission_for_exercise: Solucion para ejercicio
|
278
288
|
submissions: Soluciones
|
279
289
|
submissions_count: Soluciones
|
280
290
|
submissions_for: Soluciones para %{exercise}
|
291
|
+
subscribe: Recibir notificaciones
|
281
292
|
tag: Etiquetas
|
282
293
|
task: Consigna
|
283
294
|
teacher_info: Información para docentes
|
284
295
|
tell_us_how: ¡Contanos cómo te pasó esto!
|
285
296
|
tell_us_if_our_error: Si pensás que es un error nuestro, %{issues}
|
286
297
|
terms_accepted: Los términos y condiciones fueron aceptados
|
287
|
-
terms_and_conditions: Términos y
|
298
|
+
terms_and_conditions: Términos y Condiciones
|
288
299
|
terms_and_conditions_continue_disclaimer: Al continuar estás aceptando los %{terms_link}
|
289
300
|
terms_and_conditions_must_be_accepted: Tenés que aceptar los términos y condiciones
|
290
301
|
test_results: Resultados de las pruebas
|
@@ -304,7 +315,6 @@ es:
|
|
304
315
|
unprepared_organization_explanation: Este recorrido aún no ha comenzado
|
305
316
|
unsubscribe: Dejar de recibir notificaciones
|
306
317
|
unsubscribed_successfully: Te desuscribiste exitosamente de los recordatorios.
|
307
|
-
upload_solution: "Subir solución"
|
308
318
|
uploading_solution: "Subiendo solución"
|
309
319
|
upvote: Es útil
|
310
320
|
upvotes_count_desc: Más útiles
|
@@ -327,4 +337,3 @@ es:
|
|
327
337
|
you_must_sign_in_before_submitting: Tenés que iniciar sesión antes de empezar a enviar tus soluciones
|
328
338
|
you_never_submitted_solutions: Parece que nunca enviaste soluciones desde que creaste tu cuenta.
|
329
339
|
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
|
@@ -103,13 +113,15 @@ pt:
|
|
103
113
|
failed: Sua solução não passou as provas
|
104
114
|
feedback: Problemas que encontramos
|
105
115
|
female: Feminino
|
116
|
+
file_exceeds_max_size: "O tamanho do arquivo não deve exceder %{size_kb}kb. Selecione outro arquivo."
|
106
117
|
finish: Terminar
|
107
118
|
first_name: Nome
|
108
119
|
forbidden_explanation: Você poderia ter entrado com uma conta incorreta?
|
109
120
|
format: Formato
|
110
|
-
|
121
|
+
forum: Espaço de Consulta
|
122
|
+
forum_terms: Regras do Espaço de Consulta
|
111
123
|
forum_terms_link: Se você tiver alguma dúvida, consulte as %{terms_link}
|
112
|
-
fullscreen: Tela
|
124
|
+
fullscreen: Tela cheia (F11)
|
113
125
|
gender: Gênero
|
114
126
|
get_messages: Ver mensagens
|
115
127
|
go_to: Vá para %{organization}
|
@@ -125,6 +137,7 @@ pt:
|
|
125
137
|
home: Home
|
126
138
|
hour: hora
|
127
139
|
hours: horas
|
140
|
+
important_info: Informação importante
|
128
141
|
initial_state: Tabuleiro inicial
|
129
142
|
insert_file_name: Insira um nome de arquivo
|
130
143
|
invitation: Convite para o curso
|
@@ -132,12 +145,6 @@ pt:
|
|
132
145
|
item_not_accessible: Você não tem permissões para acessar este conteúdo
|
133
146
|
joining_html: Bem-vindo ao curso <strong> %{curso} </strong>!
|
134
147
|
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
148
|
language: Linguagem
|
142
149
|
languages: Linguagens
|
143
150
|
last_name: Sobrenome
|
@@ -166,8 +173,9 @@ pt:
|
|
166
173
|
messages_error: As mensagens acima não estão disponíveis no momento. Eu tentei novamente mais tarde!
|
167
174
|
minute: minuto
|
168
175
|
minutes: minutos
|
169
|
-
|
176
|
+
moderation: Mentoria
|
170
177
|
moderator: Mentor
|
178
|
+
more_messages: Ver as mensagens anteriores
|
171
179
|
my_doubts: Minhas duvidas
|
172
180
|
name: Nome
|
173
181
|
navigation_continue: "Próximo %{kind}: %{sibling}"
|
@@ -179,6 +187,7 @@ pt:
|
|
179
187
|
new: Novo
|
180
188
|
new_message: Você tem dúvidas? Levante a mão!
|
181
189
|
new_message_placeholder: Escreva sua mensagem para o seu professor aqui ...
|
190
|
+
new_message_received: Você tem uma nova mensagem de %{sender}
|
182
191
|
next_exercise: Em seguida
|
183
192
|
next_guide: Próxima Lição %{nome}
|
184
193
|
no_discussions: Não encontramos consultas que correspondam à sua pesquisa.
|
@@ -192,6 +201,7 @@ pt:
|
|
192
201
|
not_found: A página que você pesquisou não existe!
|
193
202
|
not_found_explanation: Olhe se você escreveu o endereço corretamente.
|
194
203
|
not_in_any_organizations: Parece que você ainda não está em nenhuma organização!
|
204
|
+
notifications: Notificações
|
195
205
|
notify_problem_with_exercise: Relatar um erro
|
196
206
|
office: Secretariado
|
197
207
|
only_landscape_support: Por favor, gire seu tablet ou celular para realizar exercícios
|
@@ -231,6 +241,7 @@ pt:
|
|
231
241
|
running: processamento
|
232
242
|
save: Salvar
|
233
243
|
see_context: Veja a animação desde o início
|
244
|
+
select_file: Selecione o arquivo
|
234
245
|
send: Enviar
|
235
246
|
sending_solution: Solução de envio
|
236
247
|
show: Mostrar
|
@@ -287,7 +298,6 @@ pt:
|
|
287
298
|
unmeet_expectations: Objetivos que não foram atendidos
|
288
299
|
unprepared_organization_explanation: Este curso ainda não começou
|
289
300
|
unsubscribe: Cancelar subscrição
|
290
|
-
upload_solution: Carregar solução
|
291
301
|
uploading_solution: Uploading solution
|
292
302
|
user: Usuário
|
293
303
|
user_data_updated: Os seus dados foram atualizados corretamente
|
@@ -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
|
@@ -62,7 +62,7 @@ describe ExerciseSolutionsController, organization_workspace: :test do
|
|
62
62
|
it { expect(assignment.solution).to eq('the content')}
|
63
63
|
|
64
64
|
it { expect(response.body).to json_eq({ status: :failed, guide_finished_by_solution: false },
|
65
|
-
except: [:html, :remaining_attempts_html, :current_exp]) }
|
65
|
+
except: [:html, :remaining_attempts_html, :current_exp, :in_gamified_context]) }
|
66
66
|
|
67
67
|
it 'does not include kids specific renders' do
|
68
68
|
body = JSON.parse(response.body)
|
@@ -89,7 +89,8 @@ describe ExerciseSolutionsController, organization_workspace: :test do
|
|
89
89
|
|
90
90
|
it { expect(response.body).to json_eq({ status: :failed, guide_finished_by_solution: false },
|
91
91
|
except: [:html, :remaining_attempts_html, :title_html, :button_html,
|
92
|
-
:expectations, :test_results, :tips, :current_exp,
|
92
|
+
:expectations, :test_results, :tips, :current_exp,
|
93
|
+
:level_up_html, :in_gamified_context]) }
|
93
94
|
|
94
95
|
it 'includes kids specific renders' do
|
95
96
|
body = JSON.parse(response.body)
|
data/spec/dummy/db/schema.rb
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
#
|
11
11
|
# It's strongly recommended that you check this file into your version control system.
|
12
12
|
|
13
|
-
ActiveRecord::Schema.define(version:
|
13
|
+
ActiveRecord::Schema.define(version: 20210119190204) do
|
14
14
|
|
15
15
|
# These are extensions that must be enabled in order to support this database
|
16
16
|
enable_extension "plpgsql"
|
@@ -134,6 +134,20 @@ ActiveRecord::Schema.define(version: 20201130163114) do
|
|
134
134
|
t.index ["status_updated_by_id"], name: "index_discussions_on_status_updated_by_id"
|
135
135
|
end
|
136
136
|
|
137
|
+
create_table "exam_authorization_requests", force: :cascade do |t|
|
138
|
+
t.integer "status", default: 0
|
139
|
+
t.bigint "exam_id"
|
140
|
+
t.bigint "exam_registration_id"
|
141
|
+
t.bigint "user_id"
|
142
|
+
t.bigint "organization_id"
|
143
|
+
t.datetime "created_at", null: false
|
144
|
+
t.datetime "updated_at", null: false
|
145
|
+
t.index ["exam_id"], name: "index_exam_authorization_requests_on_exam_id"
|
146
|
+
t.index ["exam_registration_id"], name: "index_exam_authorization_requests_on_exam_registration_id"
|
147
|
+
t.index ["organization_id"], name: "index_exam_authorization_requests_on_organization_id"
|
148
|
+
t.index ["user_id"], name: "index_exam_authorization_requests_on_user_id"
|
149
|
+
end
|
150
|
+
|
137
151
|
create_table "exam_authorizations", force: :cascade do |t|
|
138
152
|
t.integer "exam_id"
|
139
153
|
t.integer "user_id"
|
@@ -143,6 +157,25 @@ ActiveRecord::Schema.define(version: 20201130163114) do
|
|
143
157
|
t.index ["user_id"], name: "index_exam_authorizations_on_user_id"
|
144
158
|
end
|
145
159
|
|
160
|
+
create_table "exam_registrations", force: :cascade do |t|
|
161
|
+
t.string "description"
|
162
|
+
t.datetime "start_time", null: false
|
163
|
+
t.datetime "end_time", null: false
|
164
|
+
t.integer "authorization_criterion_type", default: 0
|
165
|
+
t.integer "authorization_criterion_value"
|
166
|
+
t.bigint "organization_id"
|
167
|
+
t.datetime "created_at", null: false
|
168
|
+
t.datetime "updated_at", null: false
|
169
|
+
t.index ["organization_id"], name: "index_exam_registrations_on_organization_id"
|
170
|
+
end
|
171
|
+
|
172
|
+
create_table "exam_registrations_exams", id: false, force: :cascade do |t|
|
173
|
+
t.bigint "exam_id", null: false
|
174
|
+
t.bigint "exam_registration_id", null: false
|
175
|
+
t.index ["exam_id"], name: "index_exam_registrations_exams_on_exam_id"
|
176
|
+
t.index ["exam_registration_id"], name: "index_exam_registrations_exams_on_exam_registration_id"
|
177
|
+
end
|
178
|
+
|
146
179
|
create_table "exams", id: :serial, force: :cascade do |t|
|
147
180
|
t.integer "organization_id"
|
148
181
|
t.integer "guide_id"
|
@@ -314,6 +347,20 @@ ActiveRecord::Schema.define(version: 20201130163114) do
|
|
314
347
|
t.boolean "not_actually_a_question", default: false
|
315
348
|
end
|
316
349
|
|
350
|
+
create_table "notifications", force: :cascade do |t|
|
351
|
+
t.integer "priority", default: 100
|
352
|
+
t.boolean "read", default: false
|
353
|
+
t.string "target_type"
|
354
|
+
t.bigint "target_id"
|
355
|
+
t.bigint "user_id"
|
356
|
+
t.bigint "organization_id"
|
357
|
+
t.datetime "created_at", null: false
|
358
|
+
t.datetime "updated_at", null: false
|
359
|
+
t.index ["organization_id"], name: "index_notifications_on_organization_id"
|
360
|
+
t.index ["target_type", "target_id"], name: "index_notifications_on_target_type_and_target_id"
|
361
|
+
t.index ["user_id"], name: "index_notifications_on_user_id"
|
362
|
+
end
|
363
|
+
|
317
364
|
create_table "organizations", id: :serial, force: :cascade do |t|
|
318
365
|
t.string "name"
|
319
366
|
t.integer "book_id"
|
@@ -329,6 +376,7 @@ ActiveRecord::Schema.define(version: 20201130163114) do
|
|
329
376
|
t.text "display_description"
|
330
377
|
t.boolean "wins_page"
|
331
378
|
t.boolean "immersible"
|
379
|
+
t.boolean "prevent_manual_evaluation_content"
|
332
380
|
t.index ["book_id"], name: "index_organizations_on_book_id"
|
333
381
|
t.index ["name"], name: "index_organizations_on_name", unique: true
|
334
382
|
end
|
@@ -434,6 +482,7 @@ ActiveRecord::Schema.define(version: 20201130163114) do
|
|
434
482
|
t.datetime "legal_terms_accepted_at"
|
435
483
|
t.datetime "forum_terms_accepted_at"
|
436
484
|
t.boolean "banned_from_forum"
|
485
|
+
t.boolean "uppercase_mode"
|
437
486
|
t.index ["avatar_type", "avatar_id"], name: "index_users_on_avatar_type_and_avatar_id"
|
438
487
|
t.index ["disabled_at"], name: "index_users_on_disabled_at"
|
439
488
|
t.index ["last_organization_id"], name: "index_users_on_last_organization_id"
|