mumuki-laboratory 8.0.0 → 8.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/mumuki_laboratory/application/gamification.js +89 -11
  3. data/app/assets/javascripts/mumuki_laboratory/application/kids.js +16 -4
  4. data/app/assets/javascripts/mumuki_laboratory/application/kindergarten.js +9 -50
  5. data/app/assets/javascripts/mumuki_laboratory/application/mu-modal-carrousel.js +63 -0
  6. data/app/assets/javascripts/mumuki_laboratory/application/number-counter.js +18 -0
  7. data/app/assets/javascripts/mumuki_laboratory/application/primary.js +2 -1
  8. data/app/assets/javascripts/mumuki_laboratory/application/submission.js +1 -1
  9. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_kids_results.scss +117 -0
  10. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_kindergarten.scss +45 -131
  11. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_terms.scss +9 -12
  12. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_user_profile.scss +31 -3
  13. data/app/controllers/application_controller.rb +40 -8
  14. data/app/controllers/assets_controller.rb +1 -0
  15. data/app/controllers/book_discussions_controller.rb +1 -1
  16. data/app/controllers/chapters_controller.rb +1 -0
  17. data/app/controllers/discussions_controller.rb +4 -0
  18. data/app/controllers/exercises_controller.rb +1 -0
  19. data/app/controllers/guides_controller.rb +2 -0
  20. data/app/controllers/invitations_controller.rb +1 -0
  21. data/app/controllers/lessons_controller.rb +1 -0
  22. data/app/controllers/login_controller.rb +1 -0
  23. data/app/controllers/users_controller.rb +8 -1
  24. data/app/helpers/assistance_box_helper.rb +7 -5
  25. data/app/helpers/gamification_helper.rb +5 -0
  26. data/app/helpers/links_helper.rb +1 -1
  27. data/app/views/exercise_solutions/_assistant_rules_box.html.erb +13 -0
  28. data/app/views/exercise_solutions/_contextualization_results_container.html.erb +9 -0
  29. data/app/views/exercise_solutions/_kids_level_up.html.erb +11 -0
  30. data/app/views/exercise_solutions/_results.html.erb +19 -19
  31. data/app/views/exercise_solutions/_results_title.html.erb +5 -0
  32. data/app/views/exercises/show.html.erb +4 -1
  33. data/app/views/layouts/_kindergarten.html.erb +1 -1
  34. data/app/views/layouts/_organizations_listing.html.erb +8 -12
  35. data/app/views/layouts/application.html.erb +8 -2
  36. data/app/views/layouts/modals/_guide_corollary.html.erb +1 -1
  37. data/app/views/layouts/modals/_kids_context.html.erb +1 -1
  38. data/app/views/layouts/modals/_kids_results.html.erb +16 -6
  39. data/app/views/layouts/modals/_kindergarten_context.html.erb +15 -15
  40. data/app/views/layouts/modals/_kindergarten_results.html.erb +20 -7
  41. data/app/views/layouts/modals/_kindergarten_results_aborted.html.erb +4 -4
  42. data/app/views/layouts/modals/_level_up.html.erb +27 -0
  43. data/app/views/users/_edit_user_form.html.erb +1 -1
  44. data/app/views/users/_user_form.html.erb +12 -2
  45. data/app/views/users/terms.html.erb +12 -0
  46. data/config/routes.rb +8 -8
  47. data/lib/mumuki/laboratory.rb +18 -5
  48. data/lib/mumuki/laboratory/controllers.rb +2 -0
  49. data/lib/mumuki/laboratory/controllers/action_redirector.rb +21 -0
  50. data/lib/mumuki/laboratory/controllers/immersive_navigation.rb +7 -0
  51. data/lib/mumuki/laboratory/controllers/results_rendering.rb +1 -0
  52. data/lib/mumuki/laboratory/events/events.rb +0 -9
  53. data/lib/mumuki/laboratory/locales/en.yml +5 -0
  54. data/lib/mumuki/laboratory/locales/es-CL.yml +5 -0
  55. data/lib/mumuki/laboratory/locales/es.yml +5 -0
  56. data/lib/mumuki/laboratory/locales/pt.yml +5 -0
  57. data/lib/mumuki/laboratory/version.rb +1 -1
  58. data/spec/capybara_helper.rb +5 -1
  59. data/spec/controllers/exercise_solutions_controller_spec.rb +1 -1
  60. data/spec/features/immersive_redirection_spec.rb +181 -0
  61. data/spec/features/profile_flow_spec.rb +35 -3
  62. data/spec/features/terms_flow_spec.rb +151 -0
  63. metadata +110 -101
  64. data/app/helpers/organization_list_helper.rb +0 -5
  65. data/spec/features/choose_organization_spec.rb +0 -74
@@ -1,5 +0,0 @@
1
- module OrganizationListHelper
2
- def organizations_for(user)
3
- user.immersive_organizations_at(nil)
4
- end
5
- end
@@ -1,74 +0,0 @@
1
- require 'spec_helper'
2
-
3
- feature 'Choose organization Flow' do
4
-
5
- let(:user) { create(:user, permissions: {student: ''}) }
6
- let(:user2) { create(:user, permissions: {student: 'pdep/*'}) }
7
- let(:user3) { create(:user, permissions: {student: 'pdep/*:foo/*'}) }
8
- let(:user4) { create(:user, permissions: {student: 'immersive-orga/*'}) }
9
-
10
- before do
11
- %w(pdep central foo immersive-orga base).each do |it|
12
- create(:organization,
13
- name: it,
14
- book: create(:book,
15
- chapters: [create(:chapter, lessons: [create(:lesson)])],
16
- name: it,
17
- slug: "mumuki/mumuki-the-#{it}-book"))
18
- end
19
- end
20
-
21
- before { Organization.locate!('immersive-orga').update!(immersive: true) }
22
- before { Organization.locate!('central').update!(immersible: true) }
23
- before { set_current_user! user }
24
-
25
- context 'when organization exists' do
26
- before { Organization.central.switch! }
27
-
28
- scenario 'when visiting with implicit subdomain and no permissions' do
29
- set_subdomain_host! 'central'
30
-
31
- visit '/'
32
-
33
- expect(page).to have_text('Sign Out')
34
- expect(page).not_to have_text('Do you want to go there?')
35
- end
36
-
37
- scenario 'when visiting immersible orga with permissions to only one non-immersive organization' do
38
- set_current_user! user2
39
- set_subdomain_host! 'central'
40
-
41
- visit '/'
42
-
43
- expect(page).to have_text('Sign Out')
44
- expect(page).not_to have_text('Do you want to go there?')
45
- end
46
-
47
- scenario 'when visiting immersible orga with permissions to only one immersive organization', :navigation_error do
48
- set_current_user! user4
49
- set_subdomain_host! 'central'
50
-
51
- visit '/'
52
-
53
- expect(page).to have_text('Sign Out')
54
- expect(page).not_to have_text('Do you want to go there?')
55
- expect(page).to have_text('immersive-orga')
56
- end
57
-
58
- scenario 'when visiting immersible orga with permissions to many non-immersive organizations' do
59
- set_current_user! user3
60
- set_subdomain_host! 'central'
61
-
62
- visit '/'
63
-
64
- expect(page).to have_text('Sign Out')
65
- expect(page).not_to have_text('Do you want to go there?')
66
- end
67
- end
68
-
69
- scenario 'when organization does not exist', :http_response_headers do
70
- visit '/'
71
-
72
- expect(page).to have_http_status(404)
73
- end
74
- end