mumuki-laboratory 9.15.0 → 9.16.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 67dd086ce64c96505cea38bf9fdf857f304acd8322d91e4c139e0a847e89ce46
4
- data.tar.gz: 48b771a27f10a159b4b10e38e88cee08f4f032969fbe7a533d188dd4f50cc0b5
3
+ metadata.gz: '0973e0c9ab8333b9b2f4207d9cc40e3c88199c67fcee8f35415b802d0494a85a'
4
+ data.tar.gz: 7a7c28856ecb1751c25a053fe0db0eaf0607a8c1dbaa22c70071eeb26617d2ba
5
5
  SHA512:
6
- metadata.gz: a28dd46787bfb3b9fb50ab7ae7b6d1421e8abb5ec9b0f4f9c20bc4af62da0a5343c6a0973ebad6073af95f66178c49d0f4cccac36f11e1ce6245a23e4527143c
7
- data.tar.gz: 3ba41f5eee2cdd908ecedbe5694de3738715f99a2c3e6c6e17d0049d2224f74be08fbbcf72b4910a4e4a7c440e05e2b87130466055919ba1b0b704d15ed29688
6
+ metadata.gz: 9db401ba5aa815447c273ab82597ee16c98cd0d13ca5f68720f3190114fa69f40f9195ac479d5f4fc234ef3cdfcc7fe7c2e11c8b6d2cd59a9be9194b596d2096
7
+ data.tar.gz: b06e42055b04fa8116ce5053e842d63a6c56e8a38c1c38d8b3ed2c23688ae0f0925f8208ece9c765d8987d0f3e6963cb8dcc8faa5ab11dc4e544c95af444d4a3
@@ -9,6 +9,6 @@ class AjaxController < ApplicationController
9
9
  end
10
10
 
11
11
  def validate_organization_enabled!
12
- Organization.current.validate_enabled!
12
+ Organization.current.validate_enabled! unless current_user&.teacher_here?
13
13
  end
14
14
  end
@@ -19,11 +19,11 @@ class ApplicationController < ActionController::Base
19
19
  before_action :set_time_zone!
20
20
 
21
21
  before_action :ensure_user_enabled!, if: :current_user?
22
-
23
22
  before_action :redirect_to_proper_context!, if: :immersive_context_wrong?
24
- before_action :validate_active_organization!
25
23
 
26
24
  before_action :authorize_if_private!
25
+ before_action :validate_active_organization!
26
+
27
27
  before_action :validate_user_profile!, if: :current_user?
28
28
  before_action :validate_accepted_role_terms!, if: :current_user?
29
29
  before_action :ensure_restore_progress!, if: :current_user?
@@ -184,7 +184,10 @@ module DiscussionsHelper
184
184
  end
185
185
 
186
186
  def discussion_info(discussion)
187
- "#{t(:time_since, time: time_ago_in_words(discussion.created_at))} · #{t(:reply_count, count: discussion.visible_messages.size)}"
187
+ <<~HTML.html_safe
188
+ <span>#{friendly_time(discussion.created_at, :time_since)}</span>
189
+ <span> · #{t(:reply_count, count: discussion.visible_messages.size)}</span>
190
+ HTML
188
191
  end
189
192
 
190
193
  def discussion_filter_params_without_page
@@ -8,7 +8,7 @@ module EditorHelper
8
8
 
9
9
  def read_only_editor(content, language, options = {})
10
10
  editor_options = editor_defaults(language, options.deep_merge(data: { readonly: true }), 'editor')
11
- text_area_tag :solution_content, content, editor_options
11
+ text_area_tag 'solution[content]', content, editor_options
12
12
  end
13
13
 
14
14
  def spell_checked_editor(name, options = {})
@@ -0,0 +1,12 @@
1
+ module TimeHelper
2
+ def friendly_time(time, t_key = nil)
3
+ friendly_time = time_ago_in_words time
4
+ friendly_time_t = t_key ? t(t_key, time: friendly_time) : friendly_time
5
+
6
+ <<~HTML.html_safe
7
+ <time title="#{time}">
8
+ #{friendly_time_t}
9
+ </time>
10
+ HTML
11
+ end
12
+ end
@@ -1,6 +1,6 @@
1
1
  module UserDiscussionsHelper
2
2
  def user_discussions_table_title(discussion, user, last_read)
3
- %Q{
3
+ <<~HTML.html_safe
4
4
  <tr></tr>
5
5
  <thead>
6
6
  <tr>
@@ -9,30 +9,30 @@ module UserDiscussionsHelper
9
9
  </td>
10
10
  </tr>
11
11
  </thead>
12
- }.html_safe
12
+ HTML
13
13
  end
14
14
 
15
15
  def user_discussions_table_header
16
- %Q{
16
+ <<~HTML.html_safe
17
17
  <tr class="fw-bold">
18
18
  <td></td>
19
19
  <td>#{t(:exercise)}</td>
20
20
  <td>#{t(:discussion_created_by)}</td>
21
21
  <td>#{t(:last_message)}</td>
22
22
  </tr>
23
- }.html_safe
23
+ HTML
24
24
  end
25
25
 
26
26
  def user_discussions_table_item(discussion, user)
27
- %Q{
27
+ <<~HTML.html_safe
28
28
  <tr>
29
29
  <td class="text-center">
30
30
  #{icon_for_read(discussion.read_by?(user))}
31
31
  </td>
32
32
  <td>#{link_to discussion.item.name, item_discussion_path(discussion)}</td>
33
33
  <td>#{discussion_user_name discussion.initiator}</td>
34
- <td>#{t(:time_since, time: time_ago_in_words(discussion.last_message_date))}</td>
34
+ <td>#{friendly_time(discussion.last_message_date, :time_since)}</td>
35
35
  </tr>
36
- }.html_safe
36
+ HTML
37
37
  end
38
38
  end
@@ -4,7 +4,7 @@
4
4
  <div class="discussion-message-bubble-title">
5
5
  <%= linked_discussion_user_name(discussion.initiator) %>
6
6
  <span class="message-date">
7
- <%= t(:time_since, time: time_ago_in_words(discussion.created_at)) %>
7
+ <%= friendly_time(discussion.created_at, :time_since) %>
8
8
  </span>
9
9
  </div>
10
10
  </div>
@@ -7,7 +7,7 @@
7
7
  <span class="moderator-badge"><%= t(:moderation) %></span>
8
8
  <% end %>
9
9
  <span class="message-date">
10
- <%= t(:time_since, time: time_ago_in_words(message.created_at)) %>
10
+ <%= friendly_time(message.created_at, :time_since) %>
11
11
  </span>
12
12
  <span class="actions">
13
13
  <% if message.authorized?(current_user) && !message.deleted? %>
@@ -47,7 +47,7 @@
47
47
  <% if current_user&.moderator_here? %>
48
48
  <hr>
49
49
  <%= t :deleted_by, deleter: message.deleted_by.name %>
50
- <%= t(:time_since, time: time_ago_in_words(message.deleted_at)) %>.
50
+ <%= friendly_time(message.deleted_at, :time_since) %>
51
51
  <a href='<%= "#deletedMessage#{message.id}" %>' data-bs-toggle="collapse">
52
52
  <%= t :show_message %>
53
53
  </a>
@@ -26,7 +26,7 @@
26
26
  </span>
27
27
  <span class="discussion-initiator">
28
28
  <strong><%= discussion_user_name discussion.initiator %></strong>
29
- <%= t(:asked_time_since, time: time_ago_in_words(discussion.created_at)) %>
29
+ <%= friendly_time(discussion.created_at, :asked_time_since) %>
30
30
  <span class="discussion-status-icon">
31
31
  <%= discussion_status_fa_icon(discussion) %>
32
32
  </span>
@@ -6,7 +6,7 @@
6
6
  <div class="message">
7
7
  <p> <%= message.content_html %></p>
8
8
  <div class="sender"><%= message.sender unless message.sender == current_user_uid %></div>
9
- <time><%= time_ago_in_words message.created_at %></time>
9
+ <%= friendly_time(message.created_at) %>
10
10
  </div>
11
11
  </li>
12
12
  <% end %>
@@ -31,7 +31,7 @@
31
31
  <span> <strong><%= t :email %>:</strong> <%= @user.email %> </span>
32
32
  </div>
33
33
  <div>
34
- <span> <strong><%= t :programming_since %>:</strong> <%= t(:time_since, time: time_ago_in_words(@user.created_at)) %> </span>
34
+ <span> <strong><%= t :programming_since %>:</strong> <%= friendly_time(@user.created_at, :time_since) %> </span>
35
35
  </div>
36
36
  </div>
37
37
  </div>
@@ -20,7 +20,7 @@
20
20
  <td><%= icon_for_read(message.read?) %></td>
21
21
  <td><%= link_to message.exercise.name, exercise_path(message.exercise.id) %></td>
22
22
  <td><%= mail_to message.sender %></td>
23
- <td><%= time_ago_in_words message.created_at %></td>
23
+ <td><%= friendly_time(message.created_at) %></td>
24
24
  </tr>
25
25
  <% end %>
26
26
  </table>
@@ -38,7 +38,7 @@
38
38
  <%= render partial: "notifications/#{notification.subject}", locals: { notification: notification } %>
39
39
  </td>
40
40
  <td class="col-md-3">
41
- <%= t(:time_since, time: time_ago_in_words(notification.created_at)) %>
41
+ <%= friendly_time(notification.created_at, :time_since) %>
42
42
  </td>
43
43
  </tr>
44
44
  <% end %>
@@ -1,5 +1,5 @@
1
1
  module Mumuki
2
2
  module Laboratory
3
- VERSION = '9.15.0'
3
+ VERSION = '9.16.0'
4
4
  end
5
5
  end
@@ -30,7 +30,7 @@ feature 'not found private on app', organization_workspace: :base do
30
30
  expect(page.text).to json_eq errors: [
31
31
  'The operation on organization base' +
32
32
  ' was forbidden to user foo+1@bar.com' +
33
- ' with permissions !student:central/*;teacher:;headmaster:;janitor:;admin:;owner:;ex_student:']
33
+ ' with permissions !student:central/*;teacher:;headmaster:;janitor:;admin:;owner:']
34
34
  end
35
35
 
36
36
  scenario 'api with authentication', :json_eq_error do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mumuki-laboratory
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.15.0
4
+ version: 9.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Franco Bulgarelli
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-09 00:00:00.000000000 Z
11
+ date: 2021-09-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 9.15.0
33
+ version: 9.16.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 9.15.0
40
+ version: 9.16.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: mumukit-bridge
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -567,6 +567,7 @@ files:
567
567
  - app/helpers/progress_bar_helper.rb
568
568
  - app/helpers/progress_helper.rb
569
569
  - app/helpers/runner_assets_helper.rb
570
+ - app/helpers/time_helper.rb
570
571
  - app/helpers/time_zone_helper.rb
571
572
  - app/helpers/toast_helper.rb
572
573
  - app/helpers/user_activity_helper.rb
@@ -980,135 +981,135 @@ signing_key:
980
981
  specification_version: 4
981
982
  summary: Code assement web application for the Mumuki Platform.
982
983
  test_files:
983
- - spec/evaluation_helper.rb
984
- - spec/api_helper.rb
985
- - spec/features/exams_flow_spec.rb
986
- - spec/features/standard_flow_spec.rb
987
- - spec/features/guides_flow_spec.rb
988
- - spec/features/dynamic_exam_spec.rb
989
- - spec/features/disabled_organization_flow_spec.rb
990
- - spec/features/user_activity_flow_spec.rb
984
+ - spec/features/disable_user_flow_spec.rb
985
+ - spec/features/exercise_flow_spec.rb
986
+ - spec/features/certificate_programs_flow_spec.rb
987
+ - spec/features/progressive_tips_spec.rb
988
+ - spec/features/runner_assets_spec.rb
989
+ - spec/features/guide_reset_spec.rb
991
990
  - spec/features/home_public_flow_spec.rb
991
+ - spec/features/links_flow_spec.rb
992
+ - spec/features/not_found_private_flow_spec.rb
993
+ - spec/features/dynamic_exam_spec.rb
994
+ - spec/features/chapters_flow_spec.rb
992
995
  - spec/features/read_only_flow_spec.rb
996
+ - spec/features/discussion_flow_spec.rb
997
+ - spec/features/complements_flow_spec.rb
998
+ - spec/features/standard_flow_spec.rb
999
+ - spec/features/user_activity_flow_spec.rb
1000
+ - spec/features/invitations_flow_spec.rb
993
1001
  - spec/features/home_private_flow_spec.rb
994
- - spec/features/immersive_redirection_spec.rb
995
- - spec/features/progressive_tips_spec.rb
1002
+ - spec/features/exams_flow_spec.rb
1003
+ - spec/features/topic_flow_spec.rb
996
1004
  - spec/features/login_flow_spec.rb
997
- - spec/features/exercise_flow_spec.rb
998
- - spec/features/disable_user_flow_spec.rb
999
- - spec/features/menu_bar_spec.rb
1000
- - spec/features/not_found_private_flow_spec.rb
1001
- - spec/features/guide_reset_spec.rb
1002
- - spec/features/notifications_flow_spec.rb
1005
+ - spec/features/not_found_public_flow_spec.rb
1006
+ - spec/features/immersive_redirection_spec.rb
1007
+ - spec/features/disabled_organization_flow_spec.rb
1003
1008
  - spec/features/lessons_flow_spec.rb
1004
- - spec/features/chapters_flow_spec.rb
1009
+ - spec/features/guides_flow_spec.rb
1010
+ - spec/features/notifications_flow_spec.rb
1011
+ - spec/features/menu_bar_spec.rb
1005
1012
  - spec/features/profile_flow_spec.rb
1006
- - spec/features/complements_flow_spec.rb
1007
- - spec/features/not_found_public_flow_spec.rb
1008
- - spec/features/certificate_programs_flow_spec.rb
1009
- - spec/features/topic_flow_spec.rb
1010
- - spec/features/links_flow_spec.rb
1011
- - spec/features/runner_assets_spec.rb
1012
- - spec/features/invitations_flow_spec.rb
1013
- - spec/features/discussion_flow_spec.rb
1014
1013
  - spec/features/terms_flow_spec.rb
1015
- - spec/capybara_helper.rb
1014
+ - spec/javascripts/results-renderers-spec.js
1015
+ - spec/javascripts/i18n-spec.js
1016
1016
  - spec/javascripts/gamification-spec.js
1017
- - spec/javascripts/upload-spec.js
1017
+ - spec/javascripts/global-spec.js
1018
+ - spec/javascripts/elipsis-spec.js
1019
+ - spec/javascripts/kids-button-spec.js
1020
+ - spec/javascripts/sync-mode-spec.js
1021
+ - spec/javascripts/spec-helper.js
1018
1022
  - spec/javascripts/timer-spec.js
1023
+ - spec/javascripts/csrf-token-spec.js
1024
+ - spec/javascripts/submissions-store-spec.js
1019
1025
  - spec/javascripts/timeout-spec.js
1020
- - spec/javascripts/elipsis-spec.js
1021
1026
  - spec/javascripts/editors-spec.js
1022
1027
  - spec/javascripts/speech-bubble-renderer-spec.js
1023
- - spec/javascripts/results-renderers-spec.js
1024
- - spec/javascripts/sync-mode-spec.js
1025
- - spec/javascripts/i18n-spec.js
1026
- - spec/javascripts/submissions-store-spec.js
1027
- - spec/javascripts/kids-button-spec.js
1028
+ - spec/javascripts/upload-spec.js
1028
1029
  - spec/javascripts/exercise-spec.js
1029
- - spec/javascripts/global-spec.js
1030
- - spec/javascripts/bridge-spec.js
1031
1030
  - spec/javascripts/events-spec.js
1032
- - spec/javascripts/spec-helper.js
1033
- - spec/javascripts/csrf-token-spec.js
1034
- - spec/login_helper.rb
1031
+ - spec/javascripts/bridge-spec.js
1035
1032
  - spec/spec_helper.rb
1036
- - spec/controllers/exam_authorization_requests_controller_spec.rb
1037
- - spec/controllers/api_clients_controller.rb
1038
- - spec/controllers/exercise_solutions_controller_spec.rb
1039
- - spec/controllers/discussions_controller_spec.rb
1040
- - spec/controllers/exam_registrations_controller_spec.rb
1041
- - spec/controllers/organizations_api_controller_spec.rb
1042
- - spec/controllers/certificates_controller_spec.rb
1043
- - spec/controllers/discussions_messages_controller_spec.rb
1044
- - spec/controllers/users_controller_spec.rb
1045
- - spec/controllers/invitations_controller_spec.rb
1046
- - spec/controllers/guide_progress_controller_spec.rb
1047
- - spec/controllers/users_api_controller_spec.rb
1048
- - spec/controllers/students_api_controller_spec.rb
1049
- - spec/controllers/confirmations_controller_spec.rb
1050
- - spec/controllers/messages_controller_spec.rb
1051
- - spec/controllers/chapters_controller_spec.rb
1052
- - spec/controllers/courses_api_controller_spec.rb
1053
- - spec/mailers/user_mailer_spec.rb
1054
- - spec/mailers/previews/user_mailer_preview.rb
1055
1033
  - spec/teaspoon_env.rb
1056
- - spec/dummy/bin/update
1057
- - spec/dummy/bin/yarn
1058
- - spec/dummy/bin/rake
1059
- - spec/dummy/bin/bundle
1060
- - spec/dummy/bin/setup
1061
- - spec/dummy/bin/rails
1062
- - spec/dummy/config/cable.yml
1063
- - spec/dummy/config/boot.rb
1064
- - spec/dummy/config/secrets.yml
1034
+ - spec/evaluation_helper.rb
1035
+ - spec/dummy/public/medal/outline.svg
1036
+ - spec/dummy/public/error/404.svg
1037
+ - spec/dummy/public/error/500.svg
1038
+ - spec/dummy/public/error/timeout_3.svg
1039
+ - spec/dummy/public/error/timeout_1.svg
1040
+ - spec/dummy/public/error/timeout_2.svg
1041
+ - spec/dummy/public/error/401.svg
1042
+ - spec/dummy/public/error/403.svg
1043
+ - spec/dummy/public/error/410.svg
1044
+ - spec/dummy/public/character/animations.json
1045
+ - spec/dummy/public/character/magnifying_glass/apparition.svg
1046
+ - spec/dummy/public/character/magnifying_glass/loop.svg
1047
+ - spec/dummy/public/character/kibi/failure.svg
1048
+ - spec/dummy/public/character/kibi/context.svg
1049
+ - spec/dummy/public/character/kibi/passed_with_warnings.svg
1050
+ - spec/dummy/public/character/kibi/jump.svg
1051
+ - spec/dummy/public/character/kibi/success_l.svg
1052
+ - spec/dummy/public/character/kibi/success2_l.svg
1053
+ - spec/dummy/Rakefile
1054
+ - spec/dummy/config/application.rb
1055
+ - spec/dummy/config/puma.rb
1056
+ - spec/dummy/config/spring.rb
1065
1057
  - spec/dummy/config/routes.rb
1066
1058
  - spec/dummy/config/environments/test.rb
1067
1059
  - spec/dummy/config/environments/development.rb
1068
- - spec/dummy/config/locales/en.yml
1069
- - spec/dummy/config/initializers/cookies_serializer.rb
1070
- - spec/dummy/config/initializers/wrap_parameters.rb
1060
+ - spec/dummy/config/database.yml
1071
1061
  - spec/dummy/config/initializers/assets.rb
1062
+ - spec/dummy/config/initializers/wrap_parameters.rb
1072
1063
  - spec/dummy/config/initializers/filter_parameter_logging.rb
1073
- - spec/dummy/config/application.rb
1074
- - spec/dummy/config/spring.rb
1075
- - spec/dummy/config/database.yml
1076
- - spec/dummy/config/environment.rb
1064
+ - spec/dummy/config/initializers/cookies_serializer.rb
1077
1065
  - spec/dummy/config/rabbit.yml
1078
- - spec/dummy/config/puma.rb
1079
- - spec/dummy/Rakefile
1080
- - spec/dummy/db/schema.rb
1081
- - spec/dummy/db/seeds.rb
1082
- - spec/dummy/public/character/kibi/success_l.svg
1083
- - spec/dummy/public/character/kibi/failure.svg
1084
- - spec/dummy/public/character/kibi/context.svg
1085
- - spec/dummy/public/character/kibi/jump.svg
1086
- - spec/dummy/public/character/kibi/success2_l.svg
1087
- - spec/dummy/public/character/kibi/passed_with_warnings.svg
1088
- - spec/dummy/public/character/animations.json
1089
- - spec/dummy/public/character/magnifying_glass/loop.svg
1090
- - spec/dummy/public/character/magnifying_glass/apparition.svg
1091
- - spec/dummy/public/medal/outline.svg
1092
- - spec/dummy/public/error/timeout_2.svg
1093
- - spec/dummy/public/error/410.svg
1094
- - spec/dummy/public/error/timeout_3.svg
1095
- - spec/dummy/public/error/500.svg
1096
- - spec/dummy/public/error/403.svg
1097
- - spec/dummy/public/error/timeout_1.svg
1098
- - spec/dummy/public/error/404.svg
1099
- - spec/dummy/public/error/401.svg
1100
- - spec/dummy/config.ru
1066
+ - spec/dummy/config/locales/en.yml
1067
+ - spec/dummy/config/cable.yml
1068
+ - spec/dummy/config/environment.rb
1069
+ - spec/dummy/config/secrets.yml
1070
+ - spec/dummy/config/boot.rb
1101
1071
  - spec/dummy/package.json
1102
- - spec/helpers/with_choices_spec.rb
1103
- - spec/helpers/email_helper_spec.rb
1072
+ - spec/dummy/config.ru
1073
+ - spec/dummy/db/seeds.rb
1074
+ - spec/dummy/db/schema.rb
1075
+ - spec/dummy/bin/yarn
1076
+ - spec/dummy/bin/rails
1077
+ - spec/dummy/bin/rake
1078
+ - spec/dummy/bin/bundle
1079
+ - spec/dummy/bin/setup
1080
+ - spec/dummy/bin/update
1081
+ - spec/controllers/certificates_controller_spec.rb
1082
+ - spec/controllers/students_api_controller_spec.rb
1083
+ - spec/controllers/api_clients_controller.rb
1084
+ - spec/controllers/organizations_api_controller_spec.rb
1085
+ - spec/controllers/exam_authorization_requests_controller_spec.rb
1086
+ - spec/controllers/confirmations_controller_spec.rb
1087
+ - spec/controllers/exam_registrations_controller_spec.rb
1088
+ - spec/controllers/users_controller_spec.rb
1089
+ - spec/controllers/exercise_solutions_controller_spec.rb
1090
+ - spec/controllers/discussions_controller_spec.rb
1091
+ - spec/controllers/courses_api_controller_spec.rb
1092
+ - spec/controllers/discussions_messages_controller_spec.rb
1093
+ - spec/controllers/users_api_controller_spec.rb
1094
+ - spec/controllers/messages_controller_spec.rb
1095
+ - spec/controllers/invitations_controller_spec.rb
1096
+ - spec/controllers/guide_progress_controller_spec.rb
1097
+ - spec/controllers/chapters_controller_spec.rb
1098
+ - spec/login_helper.rb
1099
+ - spec/mailers/previews/user_mailer_preview.rb
1100
+ - spec/mailers/user_mailer_spec.rb
1101
+ - spec/capybara_helper.rb
1102
+ - spec/helpers/icons_helper_spec.rb
1103
+ - spec/helpers/certificate_helper_spec.rb
1104
1104
  - spec/helpers/test_results_rendering_spec.rb
1105
- - spec/helpers/authors_helper_spec.rb
1105
+ - spec/helpers/avatar_helper_spec.rb
1106
+ - spec/helpers/exercise_input_helper_spec.rb
1106
1107
  - spec/helpers/with_navigation_spec.rb
1107
- - spec/helpers/certificate_helper_spec.rb
1108
- - spec/helpers/page_title_helper_spec.rb
1108
+ - spec/helpers/email_helper_spec.rb
1109
1109
  - spec/helpers/user_activity_helper_spec.rb
1110
- - spec/helpers/application_helper_spec.rb
1110
+ - spec/helpers/with_choices_spec.rb
1111
1111
  - spec/helpers/breadcrumbs_helper_spec.rb
1112
- - spec/helpers/icons_helper_spec.rb
1113
- - spec/helpers/exercise_input_helper_spec.rb
1114
- - spec/helpers/avatar_helper_spec.rb
1112
+ - spec/helpers/page_title_helper_spec.rb
1113
+ - spec/helpers/application_helper_spec.rb
1114
+ - spec/helpers/authors_helper_spec.rb
1115
+ - spec/api_helper.rb