From 8f0767ca788fab088b6138d0ba48863e1c12c6d3 Mon Sep 17 00:00:00 2001 From: Victor Costa Date: Tue, 18 Nov 2014 15:11:53 -0300 Subject: [PATCH] virtuoso: fix harvest job --- plugins/virtuoso/controllers/virtuoso_plugin_admin_controller.rb | 6 ++---- plugins/virtuoso/lib/virtuoso_plugin/dspace_harvest.rb | 12 +++++------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/plugins/virtuoso/controllers/virtuoso_plugin_admin_controller.rb b/plugins/virtuoso/controllers/virtuoso_plugin_admin_controller.rb index 84c8723..334bd9c 100644 --- a/plugins/virtuoso/controllers/virtuoso_plugin_admin_controller.rb +++ b/plugins/virtuoso/controllers/virtuoso_plugin_admin_controller.rb @@ -1,14 +1,12 @@ class VirtuosoPluginAdminController < AdminController - #validates :dspace_servers, presence: true - def index - settings = params[:settings] + settings = params[:settings] settings ||= {} @settings = Noosfero::Plugin::Settings.new(environment, VirtuosoPlugin, settings) @harvest_running = VirtuosoPlugin::DspaceHarvest.new(environment).find_job.present? if request.post? - settings[:dspace_servers].delete_if do | server | + settings[:dspace_servers].delete_if do | server | server[:dspace_uri].empty? end @settings.save! diff --git a/plugins/virtuoso/lib/virtuoso_plugin/dspace_harvest.rb b/plugins/virtuoso/lib/virtuoso_plugin/dspace_harvest.rb index 7b7f7c8..ebcdeff 100644 --- a/plugins/virtuoso/lib/virtuoso_plugin/dspace_harvest.rb +++ b/plugins/virtuoso/lib/virtuoso_plugin/dspace_harvest.rb @@ -1,9 +1,7 @@ #inspired by https://github.com/code4lib/ruby-oai/blob/master/lib/oai/harvester/harvest.rb class VirtuosoPlugin::DspaceHarvest - DC_CONVERSION = [:title, :creator, :subject, :description, :date, :type, :identifier, :language, :rights, :format] - - def initialize(environment, dspace_uri = "") + def initialize(environment, dspace_uri = nil) @environment = environment @dspace_uri = dspace_uri end @@ -69,19 +67,19 @@ class VirtuosoPlugin::DspaceHarvest settings.last_harvest = nil settings.save! end - job = VirtuosoPlugin::DspaceHarvest::Job.new(@environment.id) + job = VirtuosoPlugin::DspaceHarvest::Job.new(@environment.id, @dspace_uri) Delayed::Job.enqueue(job) end end def find_job - Delayed::Job.where(:handler => "--- !ruby/struct:VirtuosoPlugin::DspaceHarvest::Job\nenvironment_id: #{@environment.id}\n") + Delayed::Job.where(:handler => "--- !ruby/struct:VirtuosoPlugin::DspaceHarvest::Job\nenvironment_id: #{@environment.id}\ndspace_uri: #{@dspace_uri}\n") end - class Job < Struct.new(:environment_id) + class Job < Struct.new(:environment_id, :dspace_uri) def perform environment = Environment.find(environment_id) - harvest = VirtuosoPlugin::DspaceHarvest.new(environment) + harvest = VirtuosoPlugin::DspaceHarvest.new(environment, dspace_uri) harvest.run end end -- libgit2 0.21.2