From 3c9d2546be6da1e23bf471bd46319b4d850e6c13 Mon Sep 17 00:00:00 2001 From: Anna Headley Date: Fri, 8 Jul 2022 15:20:01 -0400 Subject: [PATCH 1/5] Update blacklight to 7.25.2 --- Gemfile | 2 +- Gemfile.lock | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index 33517c9ebc..dcf4ff2f1b 100644 --- a/Gemfile +++ b/Gemfile @@ -3,7 +3,7 @@ source "https://rubygems.org" gem "autoprefixer-rails" gem "bagit", "~> 0.4" -gem "blacklight", "7.11.1" +gem "blacklight", "7.25.2" gem "blacklight_range_limit" gem "bootstrap", "~> 4.0" gem "bootstrap_form", "~> 4.5.0" diff --git a/Gemfile.lock b/Gemfile.lock index 993a1a493e..ecaccf2f37 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -203,13 +203,16 @@ GEM rubocop-performance rubocop-rails rubocop-rspec - blacklight (7.11.1) + blacklight (7.25.2) deprecation globalid + hashdiff + i18n (>= 1.7.0) jbuilder (~> 2.7) kaminari (>= 0.15) - rails (>= 5.1, < 7) - view_component + ostruct (>= 0.3.2) + rails (>= 5.1, < 7.1) + view_component (~> 2.43) blacklight-access_controls (6.0.1) blacklight (> 6.0, < 8) cancancan (>= 1.8) @@ -649,6 +652,7 @@ GEM optimist (3.0.1) orm_adapter (0.5.0) os (1.1.4) + ostruct (0.5.5) parallel (1.21.0) parser (3.1.1.0) ast (~> 2.4.1) @@ -994,7 +998,7 @@ DEPENDENCIES bagit (~> 0.4) benchmark-ips bixby (~> 3.0.0) - blacklight (= 7.11.1) + blacklight (= 7.25.2) blacklight_iiif_search blacklight_range_limit bootsnap From f8c48ec51a925cfa57b0c2367b040f9833c1ffb1 Mon Sep 17 00:00:00 2001 From: Anna Headley Date: Mon, 11 Jul 2022 15:08:23 -0400 Subject: [PATCH 2/5] Make tests run --- config/environments/test.rb | 2 +- config/initializers/analyze_job.rb | 6 ++++-- config/initializers/riiif_initializer.rb | 7 +++++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/config/environments/test.rb b/config/environments/test.rb index b08c47e14a..a057f0c640 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true Rails.application.configure do - config.cache_classes = true + config.cache_classes = false config.eager_load = false config.public_file_server.enabled = true config.public_file_server.headers = { diff --git a/config/initializers/analyze_job.rb b/config/initializers/analyze_job.rb index 31d9e473a4..125c466e55 100644 --- a/config/initializers/analyze_job.rb +++ b/config/initializers/analyze_job.rb @@ -3,6 +3,8 @@ # Monkey patch AnalyzeJob so that an ActiveJob::DeserializationError is rescued and # does not cause the job to be moved to the retry queue. This is used mainly for # OcrRequest blobs that are purged before AnalyzeJob is run. -ActiveStorage::AnalyzeJob.class_eval do - discard_on ActiveJob::DeserializationError +Rails.application.config.to_prepare do + ActiveStorage::AnalyzeJob.class_eval do + discard_on ActiveJob::DeserializationError + end end diff --git a/config/initializers/riiif_initializer.rb b/config/initializers/riiif_initializer.rb index 117ac06016..486d90b15f 100644 --- a/config/initializers/riiif_initializer.rb +++ b/config/initializers/riiif_initializer.rb @@ -1,4 +1,7 @@ # frozen_string_literal: true require "mini_magick" -Riiif::Image.file_resolver = RiiifResolver.new -Riiif::Image.file_resolver.base_path = Figgy.config["derivative_path"] + +Rails.application.config.to_prepare do + Riiif::Image.file_resolver = RiiifResolver.new + Riiif::Image.file_resolver.base_path = Figgy.config["derivative_path"] +end From e6b89787e08f8f046a748a5111f80ea92f50d2ee Mon Sep 17 00:00:00 2001 From: Anna Headley Date: Tue, 12 Jul 2022 11:04:41 -0400 Subject: [PATCH 3/5] Fix bulk update --- app/controllers/bulk_edit_controller.rb | 27 +++++++++++++++++-------- spec/features/bulk_edit_spec.rb | 2 +- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/app/controllers/bulk_edit_controller.rb b/app/controllers/bulk_edit_controller.rb index d1f355a891..a97e96b186 100644 --- a/app/controllers/bulk_edit_controller.rb +++ b/app/controllers/bulk_edit_controller.rb @@ -6,8 +6,8 @@ class BulkEditController < ApplicationController delegate :search_builder, :repository, to: :search_service def resources_edit - (solr_response, _document_list) = search_service.search_results do |search_builder| - search_builder.with(q: params["q"], f: params["f"]) + (solr_response, _document_list) = search_service.search_results do |builder| + builder.with(edit_params) end @resources_count = solr_response["response"]["numFound"] end @@ -29,8 +29,17 @@ def resources_update private + # used by search state to access filter fields + def blacklight_config + @blacklight_config ||= CatalogController.new.blacklight_config + end + + def edit_params + params.permit(:q, f: {}) + end + def search_params - params.permit(search_params: {})["search_params"] + @search_params ||= params.permit(search_params: {})["search_params"] end def load_collections @@ -43,9 +52,12 @@ def batches builder = initial_builder [].tap do |arr| loop do - response = repository.search(builder) - arr << response.documents.map(&:id) - break if (builder.page * builder.rows) >= response["response"]["numFound"] + (solr_response, document_list) = search_service.search_results do |_builder| + builder # use the builder we made + end + + arr << document_list.map(&:id) + break if (builder.page * builder.rows) >= solr_response["response"]["numFound"] builder.start = builder.rows * builder.page builder.page += 1 end @@ -54,8 +66,7 @@ def batches end def initial_builder - builder_params = { q: params["search_params"]["q"], f: params["search_params"]["f"] } - builder = search_builder.with(builder_params) + builder = search_builder.with(search_params) builder.rows = params["batch_size"] || 50 builder end diff --git a/spec/features/bulk_edit_spec.rb b/spec/features/bulk_edit_spec.rb index 35b984c9f0..08ad75ee83 100644 --- a/spec/features/bulk_edit_spec.rb +++ b/spec/features/bulk_edit_spec.rb @@ -93,7 +93,7 @@ it "updates the object" do collection2 = FactoryBot.create_for_repository(:collection) visit bulk_edit_resources_edit_path("q" => "", "f[member_of_collection_titles_ssim][]" => "My Collection") - expect(page).to have_content "You searched for" + expect(page).to have_content "Bulk edit 1 resources" page.check("mark_complete") page.select collection2.title.first, from: "append_collection_ids", visible: false accept_alert do From 43dbfea93dacdb54332ee62b754fe832875cb332 Mon Sep 17 00:00:00 2001 From: Anna Headley Date: Tue, 12 Jul 2022 11:43:53 -0400 Subject: [PATCH 4/5] Don't use a pager for psql It makes CI wait for input see https://discuss.circleci.com/t/postgres-failing-with-upgrading-from-11-6-to-11-14/42932/2 Co-authored-by: Trey Pendragon --- .circleci/config.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index d6467cfa00..a54a8502da 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -13,6 +13,7 @@ jobs: FIGGY_DB_HOST: localhost FIGGY_DB_USERNAME: figgy FIGGY_DB_PASSWORD: "" + PSQL_PAGER: '' - image: postgres:10.6-alpine environment: POSTGRES_USER: figgy @@ -67,6 +68,7 @@ jobs: FIGGY_DB_USERNAME: figgy FIGGY_DB_PASSWORD: "" MEDIAINFO_PATH: /usr/bin/mediainfo + PSQL_PAGER: '' - image: postgres:10.6-alpine environment: POSTGRES_USER: figgy @@ -158,6 +160,7 @@ jobs: FIGGY_DB_HOST: localhost FIGGY_DB_USERNAME: figgy FIGGY_DB_PASSWORD: "" + PSQL_PAGER: '' steps: - browser-tools/install-browser-tools - attach_workspace: From 27a1eb657ceebb25f6f9d9ced4149c701c4e6f24 Mon Sep 17 00:00:00 2001 From: Eliot Jordan Date: Tue, 28 Jun 2022 12:50:19 -0500 Subject: [PATCH 5/5] Update queryUrl used to detect duplicates --- app/javascript/figgy/form/detect_duplicates.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/javascript/figgy/form/detect_duplicates.js b/app/javascript/figgy/form/detect_duplicates.js index 97dc6b06e6..46aca5e35d 100644 --- a/app/javascript/figgy/form/detect_duplicates.js +++ b/app/javascript/figgy/form/detect_duplicates.js @@ -15,7 +15,7 @@ class DuplicateResourceDetector { setQueryUrl() { this.value = this.$element.val() - this.queryUrl = `/catalog?f[${this.field}][]=${this.value}` + this.queryUrl = `/catalog?q=${this.field}:${this.value}` if(this.existing) this.queryUrl += `&q=NOT+id:${this.existing}` }