mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-10-06 11:57:16 +08:00
Improve experiment preview image generation [SCI-3177]
This commit is contained in:
parent
782d1dfc2d
commit
f9832013b0
8 changed files with 17 additions and 13 deletions
|
@ -186,7 +186,7 @@ class CanvasController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
# Create workflow image
|
# Create workflow image
|
||||||
@experiment.delay.generate_workflow_img
|
@experiment.generate_workflow_img
|
||||||
|
|
||||||
flash[:success] = t('experiments.canvas.update.success_flash')
|
flash[:success] = t('experiments.canvas.update.success_flash')
|
||||||
redirect_to canvas_experiment_path(@experiment)
|
redirect_to canvas_experiment_path(@experiment)
|
||||||
|
|
|
@ -237,10 +237,14 @@ class ExperimentsController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def updated_img
|
def updated_img
|
||||||
|
if @experiment.workflowimg.present? && !@experiment.workflowimg.exists?
|
||||||
|
@experiment.workflowimg = nil
|
||||||
|
@experiment.save
|
||||||
|
@experiment.generate_workflow_img
|
||||||
|
end
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.json do
|
format.json do
|
||||||
if @experiment.workflowimg_updated_at.to_i >=
|
if @experiment.workflowimg.present?
|
||||||
params[:timestamp].to_time.to_i
|
|
||||||
render json: {}, status: 200
|
render json: {}, status: 200
|
||||||
else
|
else
|
||||||
render json: {}, status: 404
|
render json: {}, status: 404
|
||||||
|
|
|
@ -49,8 +49,6 @@ class Experiment < ApplicationRecord
|
||||||
experiment.validates :archived_on, presence: true
|
experiment.validates :archived_on, presence: true
|
||||||
end
|
end
|
||||||
|
|
||||||
after_touch { update_column(:workflowimg_updated_at, updated_at) }
|
|
||||||
|
|
||||||
scope :is_archived, ->(is_archived) { where("archived = ?", is_archived) }
|
scope :is_archived, ->(is_archived) { where("archived = ?", is_archived) }
|
||||||
|
|
||||||
def self.search(
|
def self.search(
|
||||||
|
@ -222,7 +220,11 @@ class Experiment < ApplicationRecord
|
||||||
end
|
end
|
||||||
|
|
||||||
def generate_workflow_img
|
def generate_workflow_img
|
||||||
Experiments::GenerateWorkflowImageService.call(experiment_id: id)
|
if workflowimg.present?
|
||||||
|
self.workflowimg = nil
|
||||||
|
save
|
||||||
|
end
|
||||||
|
Experiments::GenerateWorkflowImageService.delay.call(experiment_id: id)
|
||||||
end
|
end
|
||||||
|
|
||||||
# Get projects where user is either owner or user in the same team
|
# Get projects where user is either owner or user in the same team
|
||||||
|
@ -423,7 +425,7 @@ class Experiment < ApplicationRecord
|
||||||
# to other experiment
|
# to other experiment
|
||||||
def generate_workflow_img_for_moved_modules(to_move)
|
def generate_workflow_img_for_moved_modules(to_move)
|
||||||
Experiment.where(id: to_move.values.uniq).each do |exp|
|
Experiment.where(id: to_move.values.uniq).each do |exp|
|
||||||
exp.delay.generate_workflow_img
|
exp.generate_workflow_img
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -184,7 +184,7 @@ class MyModule < ApplicationRecord
|
||||||
raise ActiveRecord::Rollback
|
raise ActiveRecord::Rollback
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
experiment.delay.generate_workflow_img
|
experiment.generate_workflow_img
|
||||||
restored
|
restored
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ module Experiments
|
||||||
@errors.merge!(@c_exp.errors.to_hash) unless @c_exp.valid?
|
@errors.merge!(@c_exp.errors.to_hash) unless @c_exp.valid?
|
||||||
|
|
||||||
@c_exp = nil unless succeed?
|
@c_exp = nil unless succeed?
|
||||||
@c_exp.delay.generate_workflow_img if succeed?
|
@c_exp.generate_workflow_img if succeed?
|
||||||
track_activity if succeed?
|
track_activity if succeed?
|
||||||
|
|
||||||
self
|
self
|
||||||
|
|
|
@ -80,8 +80,6 @@ module Experiments
|
||||||
file.close
|
file.close
|
||||||
@exp.save
|
@exp.save
|
||||||
@exp.touch(:workflowimg_updated_at)
|
@exp.touch(:workflowimg_updated_at)
|
||||||
rescue StandardError => ex
|
|
||||||
logger.error ex.message
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -565,7 +565,7 @@ class TeamImporter
|
||||||
my_module_group.save!
|
my_module_group.save!
|
||||||
@my_module_group_mappings[orig_module_group_id] = my_module_group.id
|
@my_module_group_mappings[orig_module_group_id] = my_module_group.id
|
||||||
end
|
end
|
||||||
experiment.delay.generate_workflow_img
|
experiment.generate_workflow_img
|
||||||
create_my_modules(experiment_json['my_modules'], experiment, user_id)
|
create_my_modules(experiment_json['my_modules'], experiment, user_id)
|
||||||
experiment
|
experiment
|
||||||
end
|
end
|
||||||
|
|
|
@ -1398,7 +1398,7 @@ module FirstTimeDataGenerator
|
||||||
)
|
)
|
||||||
|
|
||||||
# create thumbnail
|
# create thumbnail
|
||||||
experiment.delay.generate_workflow_img
|
experiment.generate_workflow_img
|
||||||
end
|
end
|
||||||
|
|
||||||
# Used for delayed jobs
|
# Used for delayed jobs
|
||||||
|
|
Loading…
Add table
Reference in a new issue