Check if task succeeded and execute reindex task
This commit is contained in:
@@ -36,6 +36,8 @@ class ItemsController < ApplicationController
|
|||||||
@tasks = [ ["Validate items", "validate_items"],
|
@tasks = [ ["Validate items", "validate_items"],
|
||||||
["Import items", "import_items"],
|
["Import items", "import_items"],
|
||||||
["Update prices", "update_prices"] ]
|
["Update prices", "update_prices"] ]
|
||||||
|
|
||||||
|
@task = "validate_items"
|
||||||
end
|
end
|
||||||
|
|
||||||
def export_import_post
|
def export_import_post
|
||||||
@@ -43,6 +45,8 @@ class ItemsController < ApplicationController
|
|||||||
["Import items", "import_items"],
|
["Import items", "import_items"],
|
||||||
["Update prices", "update_prices"] ]
|
["Update prices", "update_prices"] ]
|
||||||
|
|
||||||
|
@task = params[:task]
|
||||||
|
|
||||||
@csv_content = params[:csv_content]
|
@csv_content = params[:csv_content]
|
||||||
|
|
||||||
@error_message = ""
|
@error_message = ""
|
||||||
@@ -63,16 +67,17 @@ class ItemsController < ApplicationController
|
|||||||
begin
|
begin
|
||||||
ENV["INPUT"] = csv_file.path
|
ENV["INPUT"] = csv_file.path
|
||||||
|
|
||||||
case params[:task]
|
case @task
|
||||||
when 'validate_items'
|
when 'validate_items'
|
||||||
@output = ItemsHelper::execute_command("rake ribica:validate_items")
|
@output = ItemsHelper::execute_command("rake ribica:validate_items")
|
||||||
#ItemsHelper::execute_command("rake ribica:reindex")
|
@output.collect{|x| x.sub! "\n", "" }
|
||||||
when 'import_items'
|
when 'import_items'
|
||||||
@output = ItemsHelper::execute_command("rake ribica:import_items")
|
@output = ItemsHelper::execute_command("rake ribica:import_items")
|
||||||
#ItemsHelper::execute_command("rake ribica:reindex")
|
@output.collect{|x| x.sub! "\n", "" }
|
||||||
|
ItemsHelper::execute_command("rake ribica:reindex") unless RakeTasksHelper::is_error_occurred
|
||||||
when 'update_prices'
|
when 'update_prices'
|
||||||
@output = ItemsHelper::execute_command("rake ribica:update_prices")
|
@output = ItemsHelper::execute_command("rake ribica:update_prices")
|
||||||
#ItemsHelper::execute_command("rake ribica:reindex")
|
ItemsHelper::execute_command("rake ribica:reindex")
|
||||||
else
|
else
|
||||||
@error_message = "There is no such task"
|
@error_message = "There is no such task"
|
||||||
end
|
end
|
||||||
|
|||||||
9
back-office/app/helpers/rake_tasks_helper.rb
Normal file
9
back-office/app/helpers/rake_tasks_helper.rb
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
module RakeTasksHelper
|
||||||
|
def self.task_error_message
|
||||||
|
"Rake task execution error"
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.is_error_occurred(buffer)
|
||||||
|
buffer.include? self.task_error_message
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
<textarea id="csv_content" name="csv_content" rows=20 style="width: 100%"><%= @csv_content %></textarea></p>
|
<textarea id="csv_content" name="csv_content" rows=20 style="width: 100%"><%= @csv_content %></textarea></p>
|
||||||
|
|
||||||
<p><label for="task">Task: </label>
|
<p><label for="task">Task: </label>
|
||||||
<%= select_tag "task", options_for_select(@tasks) %></p>
|
<%= select_tag "task", options_for_select(@tasks, @task) %></p>
|
||||||
|
|
||||||
<p><%= submit_tag "Run task" %></p>
|
<p><%= submit_tag "Run task" %></p>
|
||||||
|
|
||||||
|
|||||||
@@ -243,6 +243,7 @@ def do_import(validate_only)
|
|||||||
input_file = ENV['INPUT']
|
input_file = ENV['INPUT']
|
||||||
if input_file.to_s == ""
|
if input_file.to_s == ""
|
||||||
puts "Input file is missing! Please provide input file in form INPUT=somefile.csv"
|
puts "Input file is missing! Please provide input file in form INPUT=somefile.csv"
|
||||||
|
puts RakeTasksHelper.task_error_message
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -275,6 +276,7 @@ def do_import(validate_only)
|
|||||||
if should_rollback
|
if should_rollback
|
||||||
puts "Import failed, please check the import log file for error details."
|
puts "Import failed, please check the import log file for error details."
|
||||||
logger.info "Rolling back because of errors"
|
logger.info "Rolling back because of errors"
|
||||||
|
puts RakeTasksHelper.task_error_message
|
||||||
end
|
end
|
||||||
|
|
||||||
raise ActiveRecord::Rollback
|
raise ActiveRecord::Rollback
|
||||||
@@ -284,6 +286,7 @@ def do_import(validate_only)
|
|||||||
puts "Import failed, please check the import log file for error details."
|
puts "Import failed, please check the import log file for error details."
|
||||||
puts "Error while importing: #{e}"
|
puts "Error while importing: #{e}"
|
||||||
logger.error "Error while importing: #{e}"
|
logger.error "Error while importing: #{e}"
|
||||||
|
puts RakeTasksHelper.task_error_message
|
||||||
end
|
end
|
||||||
puts "Import done"
|
puts "Import done"
|
||||||
logger.info "Import done"
|
logger.info "Import done"
|
||||||
|
|||||||
Reference in New Issue
Block a user