From b4d1bb3c1a604c2b508b0f41e58b4212b1dd1b03 Mon Sep 17 00:00:00 2001 From: Summer Cook Date: Thu, 1 Jun 2023 13:22:08 -0500 Subject: [PATCH 1/6] enable depositing new works through collections for valkyrized apps --- app/helpers/hyrax/membership_helper.rb | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/app/helpers/hyrax/membership_helper.rb b/app/helpers/hyrax/membership_helper.rb index ad550d7112..8f077af43e 100644 --- a/app/helpers/hyrax/membership_helper.rb +++ b/app/helpers/hyrax/membership_helper.rb @@ -14,18 +14,28 @@ module MembershipHelper # # @see app/assets/javascripts/hyrax/relationships.js def member_of_collections_json(resource) + # this is where we return for dassie return resource.member_of_collections_json if - resource.respond_to?(:member_of_collections_json) + resource.respond_to?(:member_of_collections_json) resource = resource.model if resource.respond_to?(:model) - Hyrax.custom_queries.find_collections_for(resource: resource).map do |collection| - { id: collection.id.to_s, - label: collection.title.first, - path: url_for(collection) } + existing_collections_array = Hyrax.custom_queries.find_collections_for(resource: resource) + add_collection_from_params + existing_collections_array.map do |collection| { + id: collection.id.to_s, + label: collection.title.first, + path: url_for(collection) + } end.to_json end + def add_collection_from_params + # new valkyrie works need the collection from params when depositing directly into an existing collection + return [Hyrax.metadata_adapter.query_service.find_by(id: Valkyrie::ID.new(controller.params[:add_works_to_collection]))] if Valkyrie + + [::Collection.find(@controller.params[:add_works_to_collection])] + end + ## # @param resource [#work_members_json] # From 2946840d839b4f4f94794d61576c22c1d16c5cd4 Mon Sep 17 00:00:00 2001 From: Summer Cook Date: Thu, 1 Jun 2023 13:37:19 -0500 Subject: [PATCH 2/6] fux rubocop --- app/helpers/hyrax/membership_helper.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/helpers/hyrax/membership_helper.rb b/app/helpers/hyrax/membership_helper.rb index 8f077af43e..ce5cf48e38 100644 --- a/app/helpers/hyrax/membership_helper.rb +++ b/app/helpers/hyrax/membership_helper.rb @@ -21,11 +21,11 @@ def member_of_collections_json(resource) resource = resource.model if resource.respond_to?(:model) existing_collections_array = Hyrax.custom_queries.find_collections_for(resource: resource) + add_collection_from_params - existing_collections_array.map do |collection| { - id: collection.id.to_s, - label: collection.title.first, - path: url_for(collection) - } + existing_collections_array.map do |collection| + { id: collection.id.to_s, + label: collection.title.first, + path: url_for(collection) + } end.to_json end From 3a8511c435a88295d0154c253be73bce0c3f41b6 Mon Sep 17 00:00:00 2001 From: Summer Cook Date: Thu, 1 Jun 2023 13:38:56 -0500 Subject: [PATCH 3/6] fix rubocop --- app/helpers/hyrax/membership_helper.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/helpers/hyrax/membership_helper.rb b/app/helpers/hyrax/membership_helper.rb index ce5cf48e38..303694529a 100644 --- a/app/helpers/hyrax/membership_helper.rb +++ b/app/helpers/hyrax/membership_helper.rb @@ -24,8 +24,7 @@ def member_of_collections_json(resource) existing_collections_array.map do |collection| { id: collection.id.to_s, label: collection.title.first, - path: url_for(collection) - } + path: url_for(collection) } end.to_json end From 8667b6609dc217046f54c776bf53da510b55ba94 Mon Sep 17 00:00:00 2001 From: Summer Cook Date: Fri, 2 Jun 2023 11:28:09 -0500 Subject: [PATCH 4/6] fix valkyrie check --- app/helpers/hyrax/membership_helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/helpers/hyrax/membership_helper.rb b/app/helpers/hyrax/membership_helper.rb index 303694529a..fb11eb11d4 100644 --- a/app/helpers/hyrax/membership_helper.rb +++ b/app/helpers/hyrax/membership_helper.rb @@ -30,7 +30,7 @@ def member_of_collections_json(resource) def add_collection_from_params # new valkyrie works need the collection from params when depositing directly into an existing collection - return [Hyrax.metadata_adapter.query_service.find_by(id: Valkyrie::ID.new(controller.params[:add_works_to_collection]))] if Valkyrie + return [Hyrax.metadata_adapter.query_service.find_by(id: Valkyrie::ID.new(controller.params[:add_works_to_collection]))] if Hyrax.config.use_valkyrie? [::Collection.find(@controller.params[:add_works_to_collection])] end From 2765bcf5007dd52a80686e9631eedbeb2e09caa7 Mon Sep 17 00:00:00 2001 From: Alisha Evans Date: Fri, 23 Jun 2023 12:54:34 -0500 Subject: [PATCH 5/6] linting fix --- app/helpers/hyrax/membership_helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/helpers/hyrax/membership_helper.rb b/app/helpers/hyrax/membership_helper.rb index fb11eb11d4..d537d1d29b 100644 --- a/app/helpers/hyrax/membership_helper.rb +++ b/app/helpers/hyrax/membership_helper.rb @@ -16,7 +16,7 @@ module MembershipHelper def member_of_collections_json(resource) # this is where we return for dassie return resource.member_of_collections_json if - resource.respond_to?(:member_of_collections_json) + resource.respond_to?(:member_of_collections_json) resource = resource.model if resource.respond_to?(:model) From dd89c1fd6b823eb0617a0db54fee8e049ef6a145 Mon Sep 17 00:00:00 2001 From: Alisha Evans Date: Mon, 26 Jun 2023 10:16:58 -0500 Subject: [PATCH 6/6] avoid the "Valkyrie::Persistence::ObjectNotFoundError" error when creating works from Dashboard >> Works. controller.params[:add_works_to_collection] only exists when deposting into an existing collection. --- app/helpers/hyrax/membership_helper.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/helpers/hyrax/membership_helper.rb b/app/helpers/hyrax/membership_helper.rb index d537d1d29b..96e34375fd 100644 --- a/app/helpers/hyrax/membership_helper.rb +++ b/app/helpers/hyrax/membership_helper.rb @@ -29,6 +29,9 @@ def member_of_collections_json(resource) end def add_collection_from_params + # avoid errors when creating Valkyrie resources from Dashboard >> Works + return [] if controller.params[:add_works_to_collection].blank? + # new valkyrie works need the collection from params when depositing directly into an existing collection return [Hyrax.metadata_adapter.query_service.find_by(id: Valkyrie::ID.new(controller.params[:add_works_to_collection]))] if Hyrax.config.use_valkyrie?