mumuki-laboratory 9.21.0 → 9.22.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: e520213e1d2d2cd643b0ee1d9506324394a18978ea319f8f0c7917a1bfba8c2b
4
- data.tar.gz: a8e99258a755b5fbe2a2f3b4927b1102ebbcee837e995839bf1989324ff783af
3
+ metadata.gz: 132cadbd6244acaece507d8f75d1613daf1c4f9f682b1b929d5c6468102a596b
4
+ data.tar.gz: 45ce5c37552fe64a9766ac4548f944f045f843177b843706277ca56f42125dbd
5
5
  SHA512:
6
- metadata.gz: 51562ad86aab9f22e3c6ae6a651bdc22cdd84159eb9394122b12ff885f19ceac51b375544e852870a3c80ec689fd5bf98e9291c8797dddf444887269cb006ddc
7
- data.tar.gz: eb8b795ebfdd92ccb48d571558c5cba3866fb09ce03217f8a5a22cd82799a5bec70bcf97e8aa71789ca21d2d484c0ae928db7aa3b9fb955bb573d57af896cbcc
6
+ metadata.gz: 9c6046c3ce7394386bc2f43d3e063c7eae999a70d96fde67243809e1e107d4f35638333cdf87e9af9aa5f3ae797585c82bd69a1ba293511842eb9bc4608c4518
7
+ data.tar.gz: fdeaa6997d54fb7dd6a75224c25a3a40f0d2e05414b934ff1fc3e5f60568c2de6ac32b39c6bcbb0f5b6e09cffc3b53b51e6cb8264e3ade7ee1060ccd05ae4252
@@ -318,7 +318,6 @@ $moderator-badge-color: #dd9900;
318
318
  margin-bottom: 20px;
319
319
  .discussion-message-bubble-header {
320
320
  background-color: $mu-color-highlight-background;
321
- height: 40px;
322
321
  &:before {
323
322
  position: absolute;
324
323
  top: calc(20px - #{$discussion-message-arrow-size + 2px} / 2);
@@ -330,12 +329,11 @@ $moderator-badge-color: #dd9900;
330
329
  }
331
330
  .discussion-message-bubble-title {
332
331
  padding: 5px 15px;
333
- display: block;
332
+ display: flex;
334
333
  .message-date {
335
334
  font-size: 15px;
336
335
  }
337
336
  .actions {
338
- float: right;
339
337
  > a, .dropdown {
340
338
  margin-left: 20px;
341
339
  cursor: pointer;
@@ -53,37 +53,37 @@ module DiscussionsHelper
53
53
  end
54
54
 
55
55
  def forum_terms_link
56
- %Q{
56
+ <<~HTML.html_safe
57
57
  <span>
58
58
  #{ t(:forum_terms_link, terms_link: link_to_forum_terms).html_safe }
59
59
  </span>
60
- }.html_safe
60
+ HTML
61
61
  end
62
62
 
63
63
  def discussion_messages_count(discussion)
64
- %Q{
64
+ <<~HTML.html_safe
65
65
  <span class="discussion-messages-count">
66
66
  #{fa_icon :comments, type: :regular, text: discussion.messages_count}
67
67
  </span>
68
- }.html_safe
68
+ HTML
69
69
  end
70
70
 
71
71
  def discussion_validated_messages_count(discussion)
72
- %Q{
72
+ <<~HTML.html_safe
73
73
  <span class="discussion-validated-messages-count">
74
74
  #{fa_icon :comment, type: :regular}#{fa_icon :check, text: discussion.validated_messages_count}
75
75
  </span>
76
- }.html_safe
76
+ HTML
77
77
  end
78
78
 
79
79
  def discussion_upvotes_icon(discussion)
80
80
  if discussion.upvotes_count > 0
81
- %Q{
81
+ <<~HTML.html_safe
82
82
  <span class="discussion-icon fa-stack fa-xs">
83
83
  <i class="far fa-star fa-stack-2x"></i>
84
84
  <i class="fas fa-stack-1x">#{discussion.upvotes_count}</i>
85
85
  </span>
86
- }.html_safe
86
+ HTML
87
87
  end
88
88
  end
89
89
 
@@ -99,16 +99,21 @@ module DiscussionsHelper
99
99
  end
100
100
 
101
101
  def new_discussion_link(teaser_text, link_text)
102
- %Q{
102
+ <<~HTML.html_safe
103
103
  <h4>
104
104
  <span>#{t(teaser_text)}</span>
105
105
  #{link_to t(link_text), new_exercise_discussion_path(@debatable, anchor: 'new-discussion-description-container') }
106
106
  </h4>
107
- }.html_safe
107
+ HTML
108
108
  end
109
109
 
110
- def discussion_count_for_status(status, discussions)
111
- discussions.scoped_query_by(discussion_filter_params, excluded_params: [:status], excluded_methods: [:page]).by_status(status).count
110
+ def discussion_status_counts(discussions)
111
+ discussions.scoped_query_by(discussion_filter_params, excluded_params: [:status], excluded_methods: [:page])
112
+ .group(:status)
113
+ .reorder('')
114
+ .pluck(:status, 'count(*)')
115
+ .to_h
116
+ .transform_keys(&:to_sym)
112
117
  end
113
118
 
114
119
  def discussions_reset_query_link
@@ -122,11 +127,21 @@ module DiscussionsHelper
122
127
  #TODO: this one uses a long method chain in order to take advantage of eager load
123
128
  # Delegate it once again when polymorphic association is removed
124
129
  def discussions_languages(discussions)
125
- @languages ||= discussions.map { |it| it.exercise.language.name }.uniq
130
+ @languages ||= discussions.distinct
131
+ .joins(:exercise)
132
+ .pluck('languages.name')
126
133
  end
127
134
 
128
- def discussion_status_filter_link(status, discussions)
129
- discussions_count = discussion_count_for_status(status, discussions)
135
+ def discussion_status_filter_links(discussions)
136
+ status_counts = discussion_status_counts(discussions)
137
+
138
+ discussions_statuses.map do |status|
139
+ discussion_status_filter_link(status, status_counts)
140
+ end.compact.join("\n").html_safe
141
+ end
142
+
143
+ def discussion_status_filter_link(status, status_counts)
144
+ discussions_count = status_counts[status.to_sym] || 0
130
145
  if status.should_be_shown?(discussions_count, current_user)
131
146
  discussion_filter_item(:status, status) do
132
147
  discussion_status_filter(status, discussions_count)
@@ -135,17 +150,17 @@ module DiscussionsHelper
135
150
  end
136
151
 
137
152
  def discussion_status_filter(status, discussions_count)
138
- %Q{
139
- #{discussion_status_fa_icon(status)}
153
+ <<~HTML.html_safe
154
+ #{discussion_status_fa_icon(status)}
140
155
  <span>
141
156
  #{t("#{status}_count", count: discussions_count)}
142
157
  </span>
143
- }.html_safe
158
+ HTML
144
159
  end
145
160
 
146
161
  def discussion_dropdown_filter(label, filters, can_select_all = false, &block)
147
162
  if filters.present?
148
- %Q{
163
+ <<~HTML.html_safe
149
164
  <div class="dropdown discussions-toolbar-filter">
150
165
  <a id="dropdown-#{label}" data-bs-toggle="dropdown" role="menu">
151
166
  #{t label} #{fa_icon :'caret-down', class: 'fa-xs'}
@@ -155,7 +170,7 @@ module DiscussionsHelper
155
170
  #{discussion_filter_list(label, filters, &block)}
156
171
  </ul>
157
172
  </div>
158
- }.html_safe
173
+ HTML
159
174
  end
160
175
  end
161
176
 
@@ -244,7 +259,7 @@ module DiscussionsHelper
244
259
  end
245
260
 
246
261
  def discussion_delete_message_dropdown(discussion, message)
247
- %Q{
262
+ <<~HTML.html_safe
248
263
  <span class="dropdown">
249
264
  #{content_tag :span, fa_icon('trash-alt', type: :regular, class: 'fa-lg'), role: 'menu', 'data-bs-toggle': 'dropdown',
250
265
  class: 'discussion-delete-message', id: 'deleteDiscussionDropdown'}
@@ -254,17 +269,17 @@ module DiscussionsHelper
254
269
  #{discussion_delete_message_option discussion, message, :discloses_personal_information, 'user-tag'}
255
270
  </ul>
256
271
  </span>
257
- }.html_safe
272
+ HTML
258
273
  end
259
274
 
260
275
  def discussion_delete_message_option(discussion, message, motive, icon)
261
- %Q{
276
+ <<~HTML.html_safe
262
277
  <li>
263
278
  #{link_to fa_icon(icon, text: t("deletion_motive.#{motive}.present"), class: 'fa-fw fixed-icon'),
264
279
  discussion_message_path(discussion, message, motive: motive), method: :delete, class: 'dropdown-item',
265
280
  role: 'menuitem', data: { confirm: t(:are_you_sure, action: t(:destroy_message)) } }
266
281
  </li>
267
- }.html_safe
282
+ HTML
268
283
  end
269
284
 
270
285
  def message_deleted_text(message)
@@ -2,10 +2,12 @@
2
2
  <div class="discussion-message-bubble">
3
3
  <div class="discussion-message-bubble-header">
4
4
  <div class="discussion-message-bubble-title">
5
- <%= linked_discussion_user_name(discussion.initiator) %>
6
- <span class="message-date">
7
- <%= friendly_time(discussion.created_at, :time_since) %>
8
- </span>
5
+ <div class="flex-fill">
6
+ <%= linked_discussion_user_name(discussion.initiator) %>
7
+ <span class="message-date">
8
+ <%= friendly_time(discussion.created_at, :time_since) %>
9
+ </span>
10
+ </div>
9
11
  </div>
10
12
  </div>
11
13
  <div class="discussion-message-bubble-content">
@@ -2,14 +2,16 @@
2
2
  <div class="discussion-message-bubble">
3
3
  <div class="discussion-message-bubble-header">
4
4
  <div class="discussion-message-bubble-title">
5
- <%= linked_discussion_user_name user %>
6
- <% if message.from_moderator? %>
7
- <span class="moderator-badge"><%= t(:moderation) %></span>
8
- <% end %>
9
- <span class="message-date">
10
- <%= friendly_time(message.created_at, :time_since) %>
11
- </span>
12
- <span class="actions">
5
+ <div class="flex-fill">
6
+ <%= linked_discussion_user_name user %>
7
+ <% if message.from_moderator? %>
8
+ <span class="moderator-badge"><%= t(:moderation) %></span>
9
+ <% end %>
10
+ <span class="message-date">
11
+ <%= friendly_time(message.created_at, :time_since) %>
12
+ </span>
13
+ </div>
14
+ <span class="actions flex-shrink-0">
13
15
  <% if message.authorized?(current_user) && !message.deleted? %>
14
16
  <% if current_user&.moderator_here? %>
15
17
  <a class="discussion-message-approved <%= 'selected' if message.approved? %>"
@@ -26,7 +26,7 @@
26
26
  <%= render partial: 'discussions/description_message', locals: { discussion: @discussion } %>
27
27
  <% end %>
28
28
  <% @discussion.visible_messages.each do |message| %>
29
- <%= render partial: 'discussions/message', locals: { user: message.sender_user, message: message } %>
29
+ <%= render partial: 'discussions/message', locals: { user: message.sender, message: message } %>
30
30
  <% end %>
31
31
  <% if @discussion.commentable_by?(current_user) %>
32
32
  <hr class="message-divider">
@@ -3,9 +3,7 @@
3
3
  <div class="discussions-toolbar">
4
4
  <div class="discussions-toolbar-status">
5
5
  <div class="d-none d-lg-block">
6
- <% discussions_statuses.each do |status| %>
7
- <%= discussion_status_filter_link(status, @discussions) %>
8
- <% end %>
6
+ <%= discussion_status_filter_links(@discussions) %>
9
7
  </div>
10
8
  </div>
11
9
  <div>
@@ -1,5 +1,5 @@
1
1
  module Mumuki
2
2
  module Laboratory
3
- VERSION = '9.21.0'
3
+ VERSION = '9.22.0'
4
4
  end
5
5
  end
@@ -32,7 +32,7 @@ describe DiscussionsMessagesController, type: :controller, organization_workspac
32
32
  end
33
33
 
34
34
  describe 'delete' do
35
- let(:message) { create(:message, discussion: discussion, sender: student.uid) }
35
+ let(:message) { create(:message, discussion: discussion, sender: student) }
36
36
 
37
37
  describe 'for student' do
38
38
  before { set_current_user! student }
@@ -64,7 +64,7 @@ describe DiscussionsMessagesController, type: :controller, organization_workspac
64
64
  end
65
65
 
66
66
  describe 'someone else\'s message' do
67
- let(:message) { create(:message, discussion: discussion, sender: moderator.uid) }
67
+ let(:message) { create(:message, discussion: discussion, sender: moderator) }
68
68
  before do
69
69
  delete :destroy, params: {id: message.id, discussion_id: discussion.id, motive: :self_deleted}
70
70
  message.reload
@@ -94,7 +94,7 @@ describe DiscussionsMessagesController, type: :controller, organization_workspac
94
94
  end
95
95
 
96
96
  describe 'approve' do
97
- let(:message) { create(:message, discussion: discussion, sender: student.uid) }
97
+ let(:message) { create(:message, discussion: discussion, sender: student) }
98
98
 
99
99
  describe 'for student' do
100
100
  before { set_current_user! student }
@@ -114,7 +114,7 @@ describe DiscussionsMessagesController, type: :controller, organization_workspac
114
114
  end
115
115
 
116
116
  describe 'question' do
117
- let(:message) { create(:message, discussion: discussion, sender: student.uid) }
117
+ let(:message) { create(:message, discussion: discussion, sender: student) }
118
118
 
119
119
  describe 'for student' do
120
120
  before { set_current_user! student }
@@ -133,7 +133,7 @@ describe DiscussionsMessagesController, type: :controller, organization_workspac
133
133
  end
134
134
 
135
135
  describe 'preview' do
136
- let(:message) { create(:message, content: 'Message in **bold** and _italics_', discussion: discussion, sender: student.uid) }
136
+ let(:message) { create(:message, content: 'Message in **bold** and _italics_', discussion: discussion, sender: student) }
137
137
 
138
138
  describe 'for student' do
139
139
  before { set_current_user! student }
@@ -11,10 +11,10 @@ describe MessagesController, organization_workspace: :test do
11
11
 
12
12
  it { expect(response.status).to eq 302 }
13
13
  it { expect(user.assignments.size).to eq 1 }
14
- it { expect(user.messages.size).to eq 1 }
14
+ it { expect(user.direct_messages.size).to eq 1 }
15
15
 
16
16
  describe 'deleting exercises does delete all messages' do
17
- before { @message_id = user.messages.first.id }
17
+ before { @message_id = user.direct_messages.first.id }
18
18
  before { exercise.destroy }
19
19
 
20
20
  it { expect { Message.find(@message_id) }.to raise_exception(ActiveRecord::RecordNotFound) }
@@ -27,6 +27,6 @@ describe MessagesController, organization_workspace: :test do
27
27
 
28
28
  it { expect(response.status).to eq 302 }
29
29
  it { expect(user.assignments.size).to eq 1 }
30
- it { expect(user.messages.size).to eq 1 }
30
+ it { expect(user.direct_messages.size).to eq 1 }
31
31
  end
32
32
  end
@@ -387,10 +387,12 @@ ActiveRecord::Schema.define(version: 20211020224011) do
387
387
  t.datetime "deleted_at"
388
388
  t.bigint "deleted_by_id"
389
389
  t.bigint "assignment_id"
390
+ t.bigint "sender_id"
390
391
  t.boolean "from_moderator"
391
392
  t.index ["approved_by_id"], name: "index_messages_on_approved_by_id"
392
393
  t.index ["assignment_id"], name: "index_messages_on_assignment_id"
393
394
  t.index ["deleted_by_id"], name: "index_messages_on_deleted_by_id"
395
+ t.index ["sender_id"], name: "index_messages_on_sender_id"
394
396
  end
395
397
 
396
398
  create_table "notifications", force: :cascade do |t|
@@ -162,8 +162,8 @@ feature 'Discussion Flow', organization_workspace: :test do
162
162
  end
163
163
 
164
164
  context 'and forum enabled' do
165
- let!(:problem_2_discussion_message) { create(:message, discussion: problem_2_discussions.first, sender: another_student.uid) }
166
- let!(:another_problem_2_discussion_message) { create(:message, discussion: problem_2_discussions.first, sender: another_student.uid) }
165
+ let!(:problem_2_discussion_message) { create(:message, discussion: problem_2_discussions.first, sender: another_student) }
166
+ let!(:another_problem_2_discussion_message) { create(:message, discussion: problem_2_discussions.first, sender: another_student) }
167
167
  before do
168
168
  Organization.current.update! forum_enabled: true
169
169
  another_problem_2_discussion_message.soft_delete! :inappropriate_content, moderator
@@ -104,6 +104,8 @@ feature 'Profile Flow', organization_workspace: :test do
104
104
  end
105
105
 
106
106
  context 'with messages' do
107
+ before { create :user, uid: 'test-email@gmail.com' }
108
+
107
109
  scenario 'visit messages' do
108
110
  Organization.find_by_name('test').switch!
109
111
  problem.submit_solution! user, {content: 'something'}
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.21.0
4
+ version: 9.22.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-10-28 00:00:00.000000000 Z
11
+ date: 2021-11-04 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.21.0
33
+ version: 9.22.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.21.0
40
+ version: 9.22.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: mumukit-bridge
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -984,136 +984,136 @@ signing_key:
984
984
  specification_version: 4
985
985
  summary: Code assement web application for the Mumuki Platform.
986
986
  test_files:
987
- - spec/evaluation_helper.rb
988
- - spec/spec_helper.rb
989
- - spec/capybara_helper.rb
990
- - spec/login_helper.rb
991
- - spec/javascripts/events-spec.js
992
- - spec/javascripts/i18n-spec.js
993
- - spec/javascripts/bridge-spec.js
994
- - spec/javascripts/kids-button-spec.js
995
- - spec/javascripts/gamification-spec.js
996
- - spec/javascripts/timer-spec.js
997
- - spec/javascripts/speech-bubble-renderer-spec.js
998
- - spec/javascripts/results-renderers-spec.js
999
- - spec/javascripts/upload-spec.js
1000
- - spec/javascripts/sync-mode-spec.js
1001
- - spec/javascripts/submissions-store-spec.js
1002
- - spec/javascripts/elipsis-spec.js
1003
- - spec/javascripts/exercise-spec.js
1004
- - spec/javascripts/csrf-token-spec.js
1005
- - spec/javascripts/editors-spec.js
1006
- - spec/javascripts/timeout-spec.js
1007
- - spec/javascripts/global-spec.js
1008
- - spec/javascripts/spec-helper.js
1009
- - spec/helpers/avatar_helper_spec.rb
1010
- - spec/helpers/email_helper_spec.rb
1011
- - spec/helpers/certificate_helper_spec.rb
1012
- - spec/helpers/authors_helper_spec.rb
987
+ - spec/helpers/user_activity_helper_spec.rb
1013
988
  - spec/helpers/page_title_helper_spec.rb
1014
- - spec/helpers/exercise_input_helper_spec.rb
1015
- - spec/helpers/with_navigation_spec.rb
989
+ - spec/helpers/authors_helper_spec.rb
1016
990
  - spec/helpers/with_choices_spec.rb
1017
- - spec/helpers/breadcrumbs_helper_spec.rb
1018
991
  - spec/helpers/icons_helper_spec.rb
1019
- - spec/helpers/user_activity_helper_spec.rb
992
+ - spec/helpers/email_helper_spec.rb
993
+ - spec/helpers/breadcrumbs_helper_spec.rb
1020
994
  - spec/helpers/test_results_rendering_spec.rb
995
+ - spec/helpers/certificate_helper_spec.rb
996
+ - spec/helpers/with_navigation_spec.rb
1021
997
  - spec/helpers/application_helper_spec.rb
1022
- - spec/dummy/public/error/timeout_3.svg
1023
- - spec/dummy/public/error/timeout_1.svg
1024
- - spec/dummy/public/error/500.svg
1025
- - spec/dummy/public/error/401.svg
1026
- - spec/dummy/public/error/404.svg
1027
- - spec/dummy/public/error/410.svg
1028
- - spec/dummy/public/error/403.svg
1029
- - spec/dummy/public/error/timeout_2.svg
1030
- - spec/dummy/public/character/kibi/context.svg
998
+ - spec/helpers/exercise_input_helper_spec.rb
999
+ - spec/helpers/avatar_helper_spec.rb
1000
+ - spec/api_helper.rb
1001
+ - spec/dummy/config.ru
1002
+ - spec/dummy/bin/setup
1003
+ - spec/dummy/bin/bundle
1004
+ - spec/dummy/bin/rake
1005
+ - spec/dummy/bin/yarn
1006
+ - spec/dummy/bin/update
1007
+ - spec/dummy/bin/rails
1008
+ - spec/dummy/Rakefile
1009
+ - spec/dummy/db/schema.rb
1010
+ - spec/dummy/db/seeds.rb
1011
+ - spec/dummy/public/medal/outline.svg
1031
1012
  - spec/dummy/public/character/kibi/passed_with_warnings.svg
1032
1013
  - spec/dummy/public/character/kibi/success_l.svg
1014
+ - spec/dummy/public/character/kibi/jump.svg
1015
+ - spec/dummy/public/character/kibi/context.svg
1033
1016
  - spec/dummy/public/character/kibi/failure.svg
1034
1017
  - spec/dummy/public/character/kibi/success2_l.svg
1035
- - spec/dummy/public/character/kibi/jump.svg
1018
+ - spec/dummy/public/character/animations.json
1036
1019
  - spec/dummy/public/character/magnifying_glass/loop.svg
1037
1020
  - spec/dummy/public/character/magnifying_glass/apparition.svg
1038
- - spec/dummy/public/character/animations.json
1039
- - spec/dummy/public/medal/outline.svg
1040
- - spec/dummy/Rakefile
1041
- - spec/dummy/config/application.rb
1042
- - spec/dummy/config/environment.rb
1021
+ - spec/dummy/public/error/403.svg
1022
+ - spec/dummy/public/error/404.svg
1023
+ - spec/dummy/public/error/timeout_1.svg
1024
+ - spec/dummy/public/error/410.svg
1025
+ - spec/dummy/public/error/401.svg
1026
+ - spec/dummy/public/error/timeout_2.svg
1027
+ - spec/dummy/public/error/500.svg
1028
+ - spec/dummy/public/error/timeout_3.svg
1029
+ - spec/dummy/package.json
1043
1030
  - spec/dummy/config/spring.rb
1044
- - spec/dummy/config/database.yml
1031
+ - spec/dummy/config/puma.rb
1045
1032
  - spec/dummy/config/cable.yml
1046
- - spec/dummy/config/routes.rb
1033
+ - spec/dummy/config/secrets.yml
1034
+ - spec/dummy/config/environments/test.rb
1035
+ - spec/dummy/config/environments/development.rb
1047
1036
  - spec/dummy/config/boot.rb
1048
- - spec/dummy/config/puma.rb
1037
+ - spec/dummy/config/routes.rb
1038
+ - spec/dummy/config/locales/en.yml
1039
+ - spec/dummy/config/application.rb
1040
+ - spec/dummy/config/rabbit.yml
1041
+ - spec/dummy/config/database.yml
1042
+ - spec/dummy/config/environment.rb
1049
1043
  - spec/dummy/config/initializers/cookies_serializer.rb
1050
- - spec/dummy/config/initializers/filter_parameter_logging.rb
1051
- - spec/dummy/config/initializers/assets.rb
1052
1044
  - spec/dummy/config/initializers/wrap_parameters.rb
1053
- - spec/dummy/config/rabbit.yml
1054
- - spec/dummy/config/environments/development.rb
1055
- - spec/dummy/config/environments/test.rb
1056
- - spec/dummy/config/secrets.yml
1057
- - spec/dummy/config/locales/en.yml
1058
- - spec/dummy/bin/rails
1059
- - spec/dummy/bin/yarn
1060
- - spec/dummy/bin/rake
1061
- - spec/dummy/bin/setup
1062
- - spec/dummy/bin/update
1063
- - spec/dummy/bin/bundle
1064
- - spec/dummy/package.json
1065
- - spec/dummy/db/schema.rb
1066
- - spec/dummy/db/seeds.rb
1067
- - spec/dummy/config.ru
1068
- - spec/controllers/discussions_controller_spec.rb
1069
- - spec/controllers/api_clients_controller.rb
1070
- - spec/controllers/messages_controller_spec.rb
1071
- - spec/controllers/confirmations_controller_spec.rb
1072
- - spec/controllers/invitations_controller_spec.rb
1073
- - spec/controllers/users_controller_spec.rb
1074
- - spec/controllers/courses_api_controller_spec.rb
1075
- - spec/controllers/students_api_controller_spec.rb
1076
- - spec/controllers/guide_progress_controller_spec.rb
1077
- - spec/controllers/chapters_controller_spec.rb
1078
- - spec/controllers/exercise_solutions_controller_spec.rb
1079
- - spec/controllers/exercises_controller_spec.rb
1080
- - spec/controllers/discussions_messages_controller_spec.rb
1081
- - spec/controllers/organizations_api_controller_spec.rb
1082
- - spec/controllers/exam_registrations_controller_spec.rb
1083
- - spec/controllers/certificates_controller_spec.rb
1084
- - spec/controllers/exam_authorization_requests_controller_spec.rb
1085
- - spec/controllers/users_api_controller_spec.rb
1086
- - spec/api_helper.rb
1045
+ - spec/dummy/config/initializers/assets.rb
1046
+ - spec/dummy/config/initializers/filter_parameter_logging.rb
1087
1047
  - spec/mailers/previews/user_mailer_preview.rb
1088
1048
  - spec/mailers/user_mailer_spec.rb
1089
- - spec/features/login_flow_spec.rb
1090
- - spec/features/links_flow_spec.rb
1091
- - spec/features/notifications_flow_spec.rb
1049
+ - spec/javascripts/events-spec.js
1050
+ - spec/javascripts/timeout-spec.js
1051
+ - spec/javascripts/speech-bubble-renderer-spec.js
1052
+ - spec/javascripts/elipsis-spec.js
1053
+ - spec/javascripts/gamification-spec.js
1054
+ - spec/javascripts/kids-button-spec.js
1055
+ - spec/javascripts/exercise-spec.js
1056
+ - spec/javascripts/global-spec.js
1057
+ - spec/javascripts/sync-mode-spec.js
1058
+ - spec/javascripts/submissions-store-spec.js
1059
+ - spec/javascripts/timer-spec.js
1060
+ - spec/javascripts/results-renderers-spec.js
1061
+ - spec/javascripts/upload-spec.js
1062
+ - spec/javascripts/csrf-token-spec.js
1063
+ - spec/javascripts/spec-helper.js
1064
+ - spec/javascripts/i18n-spec.js
1065
+ - spec/javascripts/bridge-spec.js
1066
+ - spec/javascripts/editors-spec.js
1067
+ - spec/features/user_activity_flow_spec.rb
1068
+ - spec/features/standard_flow_spec.rb
1069
+ - spec/features/chapters_flow_spec.rb
1070
+ - spec/features/profile_flow_spec.rb
1092
1071
  - spec/features/dynamic_exam_spec.rb
1072
+ - spec/features/disable_user_flow_spec.rb
1093
1073
  - spec/features/immersive_redirection_spec.rb
1074
+ - spec/features/disabled_organization_flow_spec.rb
1094
1075
  - spec/features/invitations_flow_spec.rb
1095
- - spec/features/chapters_flow_spec.rb
1096
- - spec/features/read_only_flow_spec.rb
1097
1076
  - spec/features/home_public_flow_spec.rb
1098
- - spec/features/runner_assets_spec.rb
1099
- - spec/features/disabled_organization_flow_spec.rb
1100
- - spec/features/user_activity_flow_spec.rb
1101
- - spec/features/guides_flow_spec.rb
1102
- - spec/features/terms_flow_spec.rb
1077
+ - spec/features/notifications_flow_spec.rb
1078
+ - spec/features/menu_bar_spec.rb
1079
+ - spec/features/login_flow_spec.rb
1080
+ - spec/features/certificate_programs_flow_spec.rb
1081
+ - spec/features/complements_flow_spec.rb
1103
1082
  - spec/features/home_private_flow_spec.rb
1083
+ - spec/features/guide_reset_spec.rb
1084
+ - spec/features/terms_flow_spec.rb
1104
1085
  - spec/features/progressive_tips_spec.rb
1105
1086
  - spec/features/not_found_private_flow_spec.rb
1106
- - spec/features/exercise_flow_spec.rb
1107
- - spec/features/profile_flow_spec.rb
1108
- - spec/features/certificate_programs_flow_spec.rb
1109
- - spec/features/guide_reset_spec.rb
1110
1087
  - spec/features/topic_flow_spec.rb
1111
- - spec/features/not_found_public_flow_spec.rb
1112
- - spec/features/disable_user_flow_spec.rb
1113
1088
  - spec/features/lessons_flow_spec.rb
1114
- - spec/features/menu_bar_spec.rb
1115
- - spec/features/standard_flow_spec.rb
1089
+ - spec/features/read_only_flow_spec.rb
1090
+ - spec/features/guides_flow_spec.rb
1091
+ - spec/features/not_found_public_flow_spec.rb
1092
+ - spec/features/exercise_flow_spec.rb
1093
+ - spec/features/links_flow_spec.rb
1094
+ - spec/features/runner_assets_spec.rb
1116
1095
  - spec/features/discussion_flow_spec.rb
1117
1096
  - spec/features/exams_flow_spec.rb
1118
- - spec/features/complements_flow_spec.rb
1097
+ - spec/login_helper.rb
1119
1098
  - spec/teaspoon_env.rb
1099
+ - spec/evaluation_helper.rb
1100
+ - spec/spec_helper.rb
1101
+ - spec/controllers/exercises_controller_spec.rb
1102
+ - spec/controllers/discussions_controller_spec.rb
1103
+ - spec/controllers/guide_progress_controller_spec.rb
1104
+ - spec/controllers/exam_authorization_requests_controller_spec.rb
1105
+ - spec/controllers/students_api_controller_spec.rb
1106
+ - spec/controllers/discussions_messages_controller_spec.rb
1107
+ - spec/controllers/users_controller_spec.rb
1108
+ - spec/controllers/organizations_api_controller_spec.rb
1109
+ - spec/controllers/certificates_controller_spec.rb
1110
+ - spec/controllers/users_api_controller_spec.rb
1111
+ - spec/controllers/messages_controller_spec.rb
1112
+ - spec/controllers/api_clients_controller.rb
1113
+ - spec/controllers/confirmations_controller_spec.rb
1114
+ - spec/controllers/exercise_solutions_controller_spec.rb
1115
+ - spec/controllers/courses_api_controller_spec.rb
1116
+ - spec/controllers/invitations_controller_spec.rb
1117
+ - spec/controllers/chapters_controller_spec.rb
1118
+ - spec/controllers/exam_registrations_controller_spec.rb
1119
+ - spec/capybara_helper.rb