blacklight-spotlight 0.29.1 → 0.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8aa5b0b3b677f689a7ba441aac0ab64a27ceb251
4
- data.tar.gz: 40967db22fab3aeae71a4178a36855f4367a6baa
3
+ metadata.gz: 7dd88ac0b2f47a2f72fbbaa0d7395c31ab24a86d
4
+ data.tar.gz: d15195cc46560c6ac23745bf6a46afd5cde83870
5
5
  SHA512:
6
- metadata.gz: 0432f79d47f9758d3f43f4bdd63ea33b6dca2a0e7f4e9a7864086723cb8bfc60c1b6b6bb2261ff02e483f380b7627a71914643059b7445b887c6adfea479d873
7
- data.tar.gz: d13f7995cc6c25ecc0a87963495b815e3278daf696e02c4b32a10bc86d85fb18539f0b7b2eec52acd87c6ba11ecdb97f813c5cf1b50715992cddfb1a050c76b5
6
+ metadata.gz: b9966f72907df2f6d2e945047ae2d72c37bbba13adbd2cc2df56f39b9eee4fc4df238bc85ad561d5c82f32fc18ddded497033218d81f3daeb7946c089cf15ea8
7
+ data.tar.gz: 787eafb42229bb8d5504fa7b8a97b46876079bcb348f91e5cfef39f4ce3fb7697270d41fd2aa20c2cd89e0e54a7ba39e723ad5dd8aa5e0e5c7e77d633b07f8ef
@@ -6,8 +6,7 @@ module Spotlight
6
6
  before_action :load_site
7
7
  load_and_authorize_resource :site, class: 'Spotlight::Site'
8
8
 
9
- def index
10
- end
9
+ def index; end
11
10
 
12
11
  def create
13
12
  if update_roles
@@ -8,7 +8,7 @@ module Spotlight
8
8
  load_and_authorize_resource
9
9
 
10
10
  def index
11
- @published_exhibits = @exhibits.published.ordered_by_weight.page(params[:page])
11
+ @published_exhibits = @exhibits.includes(:thumbnail).published.ordered_by_weight.page(params[:page])
12
12
  @published_exhibits = @published_exhibits.tagged_with(params[:tag]) if params[:tag]
13
13
 
14
14
  if @exhibits.one?
@@ -38,8 +38,7 @@ module Spotlight
38
38
  end
39
39
 
40
40
  # GET /exhibits/1/pages/new
41
- def new
42
- end
41
+ def new; end
43
42
 
44
43
  # GET /pages/1/edit
45
44
  def edit
@@ -13,10 +13,9 @@ module Spotlight
13
13
  load_and_authorize_resource :exhibit, class: Spotlight::Exhibit
14
14
 
15
15
  def create
16
- file = csv_params[:url]
17
- csv = CSV.parse(file.read, headers: true, return_headers: false, encoding: 'utf-8').map(&:to_hash)
16
+ csv = CSV.parse(csv_io_param, headers: true, return_headers: false).map(&:to_hash)
18
17
  Spotlight::AddUploadsFromCSV.perform_later(csv, current_exhibit, current_user)
19
- flash[:notice] = t('spotlight.resources.upload.csv.success', file_name: file.original_filename)
18
+ flash[:notice] = t('spotlight.resources.upload.csv.success', file_name: csv_io_name)
20
19
  redirect_back(fallback_location: spotlight.exhibit_resources_path(current_exhibit))
21
20
  end
22
21
 
@@ -37,6 +36,29 @@ module Spotlight
37
36
  def data_param_keys
38
37
  Spotlight::Resources::Upload.fields(current_exhibit).map(&:field_name) + current_exhibit.custom_fields.map(&:field)
39
38
  end
39
+
40
+ # Gets an IO-like object for the CSV parser to use.
41
+ # @return IO
42
+ def csv_io_param
43
+ file_or_io = csv_params[:url]
44
+ io = if file_or_io.respond_to?(:to_io)
45
+ file_or_io.to_io
46
+ else
47
+ file_or_io
48
+ end
49
+
50
+ io.set_encoding('utf-8')
51
+ end
52
+
53
+ def csv_io_name
54
+ file_or_io = csv_params[:url]
55
+
56
+ if file_or_io.respond_to? :original_filename
57
+ file_or_io.original_filename
58
+ else
59
+ t('spotlight.resources.upload.csv.anonymous_file')
60
+ end
61
+ end
40
62
  end
41
63
  end
42
64
  end
@@ -6,11 +6,9 @@ module Spotlight
6
6
  before_action :load_site
7
7
  load_and_authorize_resource
8
8
 
9
- def edit
10
- end
9
+ def edit; end
11
10
 
12
- def edit_exhibits
13
- end
11
+ def edit_exhibits; end
14
12
 
15
13
  def update
16
14
  if @site.update(site_params)
@@ -15,11 +15,13 @@ module Spotlight
15
15
  url = row.delete('url')
16
16
  next unless url.present?
17
17
 
18
- Spotlight::Resources::Upload.create(
18
+ resource = Spotlight::Resources::Upload.new(
19
19
  remote_url_url: url,
20
20
  data: row,
21
21
  exhibit: exhibit
22
22
  )
23
+
24
+ resource.save_and_index
23
25
  end
24
26
  end
25
27
 
@@ -30,15 +30,13 @@ module Spotlight
30
30
  false
31
31
  end
32
32
 
33
- def before_destroy(*_args)
34
- end
33
+ def before_destroy(*_args); end
35
34
 
36
35
  def pluralize_table_names
37
36
  true
38
37
  end
39
38
 
40
- def add_autosave_association_callbacks(_arg)
41
- end
39
+ def add_autosave_association_callbacks(_arg); end
42
40
 
43
41
  # needed for Rails 4.1 + act_as_taggable
44
42
  def dangerous_attribute_method?(*_args)
@@ -515,6 +515,7 @@ en:
515
515
  upload:
516
516
  csv:
517
517
  success: "'%{file_name}' has been uploaded. An email will be sent to you once indexing is complete."
518
+ anonymous_file: '(blank)'
518
519
  new:
519
520
  single_item_form: "Single item"
520
521
  multi_item_form: "Multiple items using CSV file"
@@ -0,0 +1,6 @@
1
+ class AddDocumentIndexToSolrDocumentSidecar < ActiveRecord::Migration
2
+ def change
3
+ add_index :spotlight_solr_document_sidecars, [:exhibit_id, :document_type, :document_id], name: 'spotlight_solr_document_sidecars_exhibit_document'
4
+ add_index :spotlight_solr_document_sidecars, [:document_type, :document_id], name: 'spotlight_solr_document_sidecars_solr_document'
5
+ end
6
+ end
@@ -1,3 +1,3 @@
1
1
  module Spotlight
2
- VERSION = '0.29.1'.freeze
2
+ VERSION = '0.30.0'.freeze
3
3
  end
@@ -33,6 +33,13 @@ describe Spotlight::Resources::CsvUploadController, type: :controller do
33
33
  'spotlight_upload_description_tesim' => 'A random 900 by 600 image from lorempixel',
34
34
  'spotlight_upload_attribution_tesim' => 'lorempixel.com',
35
35
  'spotlight_upload_date_tesim' => '2014'
36
+ },
37
+ {
38
+ 'url' => 'http://lorempixel.com/900/600/',
39
+ 'full_title_tesim' => 'Yet another random image to test UTF8 text',
40
+ 'spotlight_upload_description_tesim' => 'A random 900 by 600 image from lorempixel and some UTF8: Hüsker Dü',
41
+ 'spotlight_upload_attribution_tesim' => 'lorempixel.com',
42
+ 'spotlight_upload_date_tesim' => '2016'
36
43
  }
37
44
  ]
38
45
  end
@@ -0,0 +1,8 @@
1
+ example_id | status | run_time |
2
+ ----------------------------------------------------------------------------- | ------ | --------------- |
3
+ ./spec/controllers/spotlight/resources/csv_upload_controller_spec.rb[1:1:1:1] | passed | 0.50985 seconds |
4
+ ./spec/controllers/spotlight/resources/csv_upload_controller_spec.rb[1:2:1:1] | passed | 0.12143 seconds |
5
+ ./spec/controllers/spotlight/resources/csv_upload_controller_spec.rb[1:2:1:2] | passed | 0.10647 seconds |
6
+ ./spec/controllers/spotlight/resources/csv_upload_controller_spec.rb[1:2:1:3] | passed | 0.11359 seconds |
7
+ ./spec/jobs/spotlight/add_uploads_from_csv_spec.rb[1:1:1] | passed | 0.09125 seconds |
8
+ ./spec/jobs/spotlight/add_uploads_from_csv_spec.rb[1:2] | passed | 0.48251 seconds |
@@ -1 +1,4 @@
1
- url,full_title_tesim,spotlight_upload_description_tesim,spotlight_upload_attribution_tesim,spotlight_upload_date_tesim
1
+ url,full_title_tesim,spotlight_upload_description_tesim,spotlight_upload_attribution_tesim,spotlight_upload_date_tesim
2
+ http://lorempixel.com/800/500/,A random image,A random 800 by 500 image from lorempixel,lorempixel.com,2015
3
+ http://lorempixel.com/900/600/,Another random image,A random 900 by 600 image from lorempixel,lorempixel.com,2014
4
+ http://lorempixel.com/900/600/,Yet another random image to test UTF8 text,A random 900 by 600 image from lorempixel and some UTF8: Hüsker Dü,lorempixel.com,2016
@@ -0,0 +1,37 @@
1
+ describe Spotlight::AddUploadsFromCSV do
2
+ subject(:job) { described_class.new(data, exhibit, user) }
3
+ let(:exhibit) { FactoryGirl.create(:exhibit) }
4
+ let(:user) { FactoryGirl.create(:exhibit_curator, exhibit: exhibit) }
5
+ let(:data) do
6
+ [
7
+ { 'url' => 'x' },
8
+ { 'url' => 'y' }
9
+ ]
10
+ end
11
+
12
+ let(:resource_x) { instance_double(Spotlight::Resource) }
13
+ let(:resource_y) { instance_double(Spotlight::Resource) }
14
+
15
+ before do
16
+ allow(Spotlight::IndexingCompleteMailer).to receive(:documents_indexed).and_return(double(deliver_now: true))
17
+ end
18
+
19
+ context 'with empty data' do
20
+ let(:data) { [] }
21
+
22
+ it 'sends the user an email after the indexing job is complete' do
23
+ expect(Spotlight::IndexingCompleteMailer).to receive(:documents_indexed).and_return(double(deliver_now: true))
24
+ job.perform_now
25
+ end
26
+ end
27
+
28
+ it 'creates uploaded resources for each row of data' do
29
+ expect(Spotlight::Resources::Upload).to receive(:new).with(hash_including(remote_url_url: 'x')).and_return(resource_x)
30
+ expect(Spotlight::Resources::Upload).to receive(:new).with(hash_including(remote_url_url: 'y')).and_return(resource_y)
31
+
32
+ expect(resource_x).to receive(:save_and_index)
33
+ expect(resource_y).to receive(:save_and_index)
34
+
35
+ job.perform_now
36
+ end
37
+ end
@@ -98,6 +98,49 @@ RSpec.configure do |config|
98
98
  config.include BackportTestHelpers, type: :controller
99
99
  end
100
100
  config.include Spotlight::TestFeaturesHelpers, type: :feature
101
+
102
+ config.expect_with :rspec do |expectations|
103
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
104
+ end
105
+
106
+ config.default_formatter = 'doc' if config.files_to_run.one?
107
+
108
+ config.shared_context_metadata_behavior = :apply_to_host_groups
109
+
110
+ # This allows you to limit a spec run to individual examples or groups
111
+ # you care about by tagging them with `:focus` metadata. When nothing
112
+ # is tagged with `:focus`, all examples get run. RSpec also provides
113
+ # aliases for `it`, `describe`, and `context` that include `:focus`
114
+ # metadata: `fit`, `fdescribe` and `fcontext`, respectively.
115
+ config.filter_run_when_matching :focus
116
+
117
+ config.example_status_persistence_file_path = 'spec/examples.txt'
118
+ # Many RSpec users commonly either run the entire suite or an individual
119
+ # file, and it's useful to allow more verbose output when running an
120
+ # individual spec file.
121
+ if config.files_to_run.one?
122
+ # Use the documentation formatter for detailed output,
123
+ # unless a formatter has already been configured
124
+ # (e.g. via a command-line flag).
125
+ config.default_formatter = 'doc'
126
+ end
127
+
128
+ # Print the 10 slowest examples and example groups at the
129
+ # end of the spec run, to help surface which specs are running
130
+ # particularly slow.
131
+ config.profile_examples = 10
132
+
133
+ # Run specs in random order to surface order dependencies. If you find an
134
+ # order dependency and want to debug it, you can fix the order by providing
135
+ # the seed, which is printed after each run.
136
+ # --seed 1234
137
+ # config.order = :random
138
+
139
+ # Seed global randomization in this process using the `--seed` CLI option.
140
+ # Setting this allows you to use `--seed` to deterministically reproduce
141
+ # test failures related to randomization by passing the same `--seed` value
142
+ # as the one that triggered the failure.
143
+ Kernel.srand config.seed
101
144
  end
102
145
 
103
146
  def add_new_page_via_button(title = 'New Page')
@@ -1877,16 +1877,16 @@ return /******/ (function(modules) { // webpackBootstrap
1877
1877
  /* 26 */
1878
1878
  /***/ function(module, exports) {
1879
1879
 
1880
- module.exports = function(module) {
1881
- if(!module.webpackPolyfill) {
1882
- module.deprecate = function() {};
1883
- module.paths = [];
1884
- // module.parent = undefined by default
1885
- module.children = [];
1886
- module.webpackPolyfill = 1;
1887
- }
1888
- return module;
1889
- }
1880
+ module.exports = function(module) {
1881
+ if(!module.webpackPolyfill) {
1882
+ module.deprecate = function() {};
1883
+ module.paths = [];
1884
+ // module.parent = undefined by default
1885
+ module.children = [];
1886
+ module.webpackPolyfill = 1;
1887
+ }
1888
+ return module;
1889
+ }
1890
1890
 
1891
1891
 
1892
1892
  /***/ },
@@ -1899,7 +1899,7 @@ return /******/ (function(modules) { // webpackBootstrap
1899
1899
  /* 28 */
1900
1900
  /***/ function(module, exports) {
1901
1901
 
1902
- module.exports = function() { throw new Error("define cannot be used indirect"); };
1902
+ module.exports = function() { throw new Error("define cannot be used indirect"); };
1903
1903
 
1904
1904
 
1905
1905
  /***/ },
@@ -17054,7 +17054,12 @@ return /******/ (function(modules) { // webpackBootstrap
17054
17054
  if (this._scribe.getTextContent() !== '') {
17055
17055
  var fakeContent = document.createElement('div');
17056
17056
  fakeContent.innerHTML = this.getTextBlockHTML();
17057
- content = fakeContent.firstChild.innerHTML || fakeContent.innerHTML;
17057
+
17058
+ // We concatenate the content of each paragraph and take into account the new lines
17059
+ content = fakeContent.children && Array.prototype.slice.call(fakeContent.children).reduce(function (res, child) {
17060
+ return res + child.innerHTML;
17061
+ }, '') || fakeContent.innerHTML;
17062
+
17058
17063
  return content.replace(/^[\s\uFEFF\xA0]+|$/g, '');
17059
17064
  }
17060
17065
  return content;
@@ -18790,7 +18795,7 @@ return /******/ (function(modules) { // webpackBootstrap
18790
18795
  _this3.deleteEl.classList.remove("active");
18791
18796
  };
18792
18797
 
18793
- this.ui.insertAdjacentHTML("beforeend", DELETE_TEMPLATE);
18798
+ this.ui.insertAdjacentHTML("beforeend", DELETE_TEMPLATE());
18794
18799
  Events.delegate(this.el, ".js-st-block-confirm-delete", "click", this.onDeleteConfirm);
18795
18800
  Events.delegate(this.el, ".js-st-block-deny-delete", "click", onDeleteDeny);
18796
18801
  },
@@ -18882,19 +18887,8 @@ return /******/ (function(modules) { // webpackBootstrap
18882
18887
  return;
18883
18888
  }
18884
18889
 
18885
- var ctrlDown = false;
18886
-
18887
- Events.delegate(block.el, '.st-text-block', 'keyup', function (ev) {
18888
- if (ev.which === 17 || ev.which === 224 || ev.which === 91) {
18889
- ctrlDown = false;
18890
- }
18891
- });
18892
18890
  Events.delegate(block.el, '.st-text-block', 'keydown', function (ev) {
18893
- if (ev.which === 17 || ev.which === 224 || ev.which === 91) {
18894
- ctrlDown = true;
18895
- }
18896
-
18897
- if (ev.which === cmd.keyCode && ctrlDown) {
18891
+ if ((ev.metaKey || ev.ctrlKey) && ev.keyCode === cmd.keyCode) {
18898
18892
  ev.preventDefault();
18899
18893
  block.execTextBlockCommand(cmd.cmd);
18900
18894
  }
@@ -19625,9 +19619,11 @@ return /******/ (function(modules) { // webpackBootstrap
19625
19619
  /* 252 */
19626
19620
  /***/ function(module, exports) {
19627
19621
 
19628
- 'use strict';
19622
+ "use strict";
19629
19623
 
19630
- module.exports = '\n <div class="st-block__ui-delete-controls">\n <label class="st-block__delete-label">\n ' + i18n.t('general:delete') + '\n </label>\n <button class=\'st-block-ui__confirm js-st-block-confirm-delete\' type="button">\n ' + i18n.t('general:yes') + '\n </button>\n <button class=\'st-block-ui__confirm js-st-block-deny-delete\' type="button">\n ' + i18n.t('general:no') + '\n </button>\n </div>\n';
19624
+ module.exports = function () {
19625
+ return '\n <div class="st-block__ui-delete-controls">\n <label class="st-block__delete-label">\n ' + i18n.t('general:delete') + '\n </label>\n <button class=\'st-block-ui__confirm js-st-block-confirm-delete\' type="button">\n ' + i18n.t('general:yes') + '\n </button>\n <button class=\'st-block-ui__confirm js-st-block-deny-delete\' type="button">\n ' + i18n.t('general:no') + '\n </button>\n </div>\n ';
19626
+ };
19631
19627
 
19632
19628
  /***/ },
19633
19629
  /* 253 */
@@ -19764,6 +19760,14 @@ return /******/ (function(modules) { // webpackBootstrap
19764
19760
 
19765
19761
  range.setStartBefore(scribe.el.firstChild, 0);
19766
19762
 
19763
+ var node = range.endContainer.nodeType === 3 ? range.endContainer.parentNode : range.endContainer;
19764
+
19765
+ // We make sure that the caret must be inside the first element to consider
19766
+ // it at the beginning of the block
19767
+ if (scribe.el.firstChild !== node) {
19768
+ return false;
19769
+ }
19770
+
19767
19771
  return rangeToHTML(range, false) === '';
19768
19772
  };
19769
19773
 
@@ -20499,8 +20503,8 @@ return /******/ (function(modules) { // webpackBootstrap
20499
20503
  if (_.isUndefined(data.status_url)) {
20500
20504
  data.status_url = '';
20501
20505
  }
20502
- var iframe = this.inner.querySelector('iframe');
20503
- Dom.remove(iframe);
20506
+ var twitterwidget = this.inner.querySelector('twitterwidget');
20507
+ Dom.remove(twitterwidget);
20504
20508
 
20505
20509
  this.inner.insertAdjacentHTML("afterbegin", tweet_template(data));
20506
20510
 
@@ -21632,4 +21636,4 @@ return /******/ (function(modules) { // webpackBootstrap
21632
21636
  17
21633
21637
  /******/ ])))
21634
21638
  });
21635
- ;
21639
+ ;
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blacklight-spotlight
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.29.1
4
+ version: 0.30.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Beer
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2016-09-26 00:00:00.000000000 Z
14
+ date: 2016-12-08 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rails
@@ -541,34 +541,28 @@ dependencies:
541
541
  requirements:
542
542
  - - "~>"
543
543
  - !ruby/object:Gem::Version
544
- version: '0.41'
545
- - - ">="
546
- - !ruby/object:Gem::Version
547
- version: 0.41.2
544
+ version: '0.45'
548
545
  type: :development
549
546
  prerelease: false
550
547
  version_requirements: !ruby/object:Gem::Requirement
551
548
  requirements:
552
549
  - - "~>"
553
550
  - !ruby/object:Gem::Version
554
- version: '0.41'
555
- - - ">="
556
- - !ruby/object:Gem::Version
557
- version: 0.41.2
551
+ version: '0.45'
558
552
  - !ruby/object:Gem::Dependency
559
553
  name: rubocop-rspec
560
554
  requirement: !ruby/object:Gem::Requirement
561
555
  requirements:
562
- - - ">="
556
+ - - "~>"
563
557
  - !ruby/object:Gem::Version
564
- version: '0'
558
+ version: '1.8'
565
559
  type: :development
566
560
  prerelease: false
567
561
  version_requirements: !ruby/object:Gem::Requirement
568
562
  requirements:
569
- - - ">="
563
+ - - "~>"
570
564
  - !ruby/object:Gem::Version
571
- version: '0'
565
+ version: '1.8'
572
566
  - !ruby/object:Gem::Dependency
573
567
  name: poltergeist
574
568
  requirement: !ruby/object:Gem::Requirement
@@ -1128,6 +1122,7 @@ files:
1128
1122
  - db/migrate/20160711121314_add_default_view_to_spotlight_searches.rb
1129
1123
  - db/migrate/20160815165432_add_resource_to_solr_document_sidecar.rb
1130
1124
  - db/migrate/20160816165432_add_index_status_to_solr_document_sidecar.rb
1125
+ - db/migrate/20160929180534_add_document_index_to_solr_document_sidecar.rb
1131
1126
  - lib/blacklight/spotlight.rb
1132
1127
  - lib/generators/spotlight/install_generator.rb
1133
1128
  - lib/generators/spotlight/scaffold_resource_generator.rb
@@ -1173,6 +1168,7 @@ files:
1173
1168
  - spec/controllers/spotlight/tags_controller_spec.rb
1174
1169
  - spec/controllers/spotlight/versions_controller_spec.rb
1175
1170
  - spec/controllers/spotlight/view_configurations_controller_spec.rb
1171
+ - spec/examples.txt
1176
1172
  - spec/factories/contacts.rb
1177
1173
  - spec/factories/custom_fields.rb
1178
1174
  - spec/factories/exhibits.rb
@@ -1248,6 +1244,7 @@ files:
1248
1244
  - spec/helpers/spotlight/roles_helper_spec.rb
1249
1245
  - spec/helpers/spotlight/search_configurations_helper_spec.rb
1250
1246
  - spec/helpers/spotlight/title_helper_spec.rb
1247
+ - spec/jobs/spotlight/add_uploads_from_csv_spec.rb
1251
1248
  - spec/jobs/spotlight/default_thumbnail_job_spec.rb
1252
1249
  - spec/jobs/spotlight/reindex_job_spec.rb
1253
1250
  - spec/jobs/spotlight/rename_sidecar_field_job_spec.rb
@@ -1409,7 +1406,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1409
1406
  version: '0'
1410
1407
  requirements: []
1411
1408
  rubyforge_project:
1412
- rubygems_version: 2.5.1
1409
+ rubygems_version: 2.5.2
1413
1410
  signing_key:
1414
1411
  specification_version: 4
1415
1412
  summary: Enable librarians, curators, and others who are responsible for digital collections
@@ -1444,6 +1441,7 @@ test_files:
1444
1441
  - spec/controllers/spotlight/tags_controller_spec.rb
1445
1442
  - spec/controllers/spotlight/versions_controller_spec.rb
1446
1443
  - spec/controllers/spotlight/view_configurations_controller_spec.rb
1444
+ - spec/examples.txt
1447
1445
  - spec/factories/contacts.rb
1448
1446
  - spec/factories/custom_fields.rb
1449
1447
  - spec/factories/exhibits.rb
@@ -1519,6 +1517,7 @@ test_files:
1519
1517
  - spec/helpers/spotlight/roles_helper_spec.rb
1520
1518
  - spec/helpers/spotlight/search_configurations_helper_spec.rb
1521
1519
  - spec/helpers/spotlight/title_helper_spec.rb
1520
+ - spec/jobs/spotlight/add_uploads_from_csv_spec.rb
1522
1521
  - spec/jobs/spotlight/default_thumbnail_job_spec.rb
1523
1522
  - spec/jobs/spotlight/reindex_job_spec.rb
1524
1523
  - spec/jobs/spotlight/rename_sidecar_field_job_spec.rb