mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-09-10 23:25:31 +08:00
Add activities to inventories [SCI-5578] (#6588)
* Add activities for stock consumption and inventories export and inventory item file edit [SCI-5578] * Improve check for creating inventory item asset activity [5578] * Improve query for inventory items in consumption export [SCI-5578]
This commit is contained in:
parent
d2662e9274
commit
7a916b7d11
5 changed files with 64 additions and 13 deletions
|
@ -48,6 +48,19 @@ module AssetsActions
|
||||||
asset_name: { id: asset.id, value_for: 'file_name' },
|
asset_name: { id: asset.id, value_for: 'file_name' },
|
||||||
action: action
|
action: action
|
||||||
})
|
})
|
||||||
|
elsif asset.repository_cell.present?
|
||||||
|
repository = asset.repository_cell.repository_row.repository
|
||||||
|
Activities::CreateActivityService
|
||||||
|
.call(activity_type: :edit_image_on_inventory_item,
|
||||||
|
owner: current_user,
|
||||||
|
subject: repository,
|
||||||
|
team: repository.team,
|
||||||
|
message_items: {
|
||||||
|
repository: repository.id,
|
||||||
|
repository_row: asset.repository_cell.repository_row.id,
|
||||||
|
asset_name: { id: asset.id, value_for: 'file_name' },
|
||||||
|
action: action
|
||||||
|
})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -357,6 +357,7 @@ class RepositoriesController < ApplicationController
|
||||||
if repositories.present? && current_user.has_available_exports?
|
if repositories.present? && current_user.has_available_exports?
|
||||||
current_user.increase_daily_exports_counter!
|
current_user.increase_daily_exports_counter!
|
||||||
RepositoriesExportJob.perform_later(repositories.pluck(:id), user_id: current_user.id, team_id: current_team.id)
|
RepositoriesExportJob.perform_later(repositories.pluck(:id), user_id: current_user.id, team_id: current_team.id)
|
||||||
|
log_activity(:export_inventories, inventories: repositories.pluck(:name).join(', '))
|
||||||
render json: { message: t('zip_export.export_request_success') }
|
render json: { message: t('zip_export.export_request_success') }
|
||||||
else
|
else
|
||||||
render json: { message: t('zip_export.export_error') }, status: :unprocessable_entity
|
render json: { message: t('zip_export.export_error') }, status: :unprocessable_entity
|
||||||
|
@ -364,14 +365,18 @@ class RepositoriesController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def export_repository_stock_items
|
def export_repository_stock_items
|
||||||
row_ids = @repository.repository_rows.where(id: params[:row_ids]).pluck(:id)
|
repository_rows = @repository.repository_rows.where(id: params[:row_ids]).pluck(:id, :name)
|
||||||
if row_ids.any?
|
if repository_rows.any?
|
||||||
RepositoryStockZipExportJob.perform_later(
|
RepositoryStockZipExportJob.perform_later(
|
||||||
user_id: current_user.id,
|
user_id: current_user.id,
|
||||||
params: {
|
params: {
|
||||||
repository_row_ids: row_ids
|
repository_row_ids: repository_rows.map { |row| row[0] }
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
log_activity(
|
||||||
|
:export_inventory_stock_consumption,
|
||||||
|
inventory_items: repository_rows.map { |row| row[1] }.join(', ')
|
||||||
|
)
|
||||||
render json: { message: t('zip_export.export_request_success') }
|
render json: { message: t('zip_export.export_request_success') }
|
||||||
else
|
else
|
||||||
render json: { message: t('zip_export.export_error') }, status: :unprocessable_entity
|
render json: { message: t('zip_export.export_error') }, status: :unprocessable_entity
|
||||||
|
@ -532,14 +537,23 @@ class RepositoriesController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def log_activity(type_of, message_items = {})
|
def log_activity(type_of, message_items = {})
|
||||||
message_items = { repository: @repository.id }.merge(message_items)
|
if @repository.present?
|
||||||
|
message_items = { repository: @repository.id }.merge(message_items)
|
||||||
|
|
||||||
Activities::CreateActivityService
|
Activities::CreateActivityService
|
||||||
.call(activity_type: type_of,
|
.call(activity_type: type_of,
|
||||||
owner: current_user,
|
owner: current_user,
|
||||||
subject: @repository,
|
subject: @repository,
|
||||||
team: @repository.team,
|
team: @repository.team,
|
||||||
message_items: message_items)
|
message_items: message_items)
|
||||||
|
else
|
||||||
|
Activities::CreateActivityService
|
||||||
|
.call(activity_type: type_of,
|
||||||
|
owner: current_user,
|
||||||
|
subject: @current_team,
|
||||||
|
team: @current_team,
|
||||||
|
message_items: message_items)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def set_breadcrumbs_items
|
def set_breadcrumbs_items
|
||||||
|
|
|
@ -149,6 +149,19 @@ module WopiUtil
|
||||||
asset_name: { id: @asset.id, value_for: 'file_name' },
|
asset_name: { id: @asset.id, value_for: 'file_name' },
|
||||||
action: action
|
action: action
|
||||||
})
|
})
|
||||||
|
elsif @assoc.is_a?(RepositoryCell)
|
||||||
|
repository = @assoc.repository_row.repository
|
||||||
|
Activities::CreateActivityService
|
||||||
|
.call(activity_type: :edit_wopi_file_on_inventory_item,
|
||||||
|
owner: current_user,
|
||||||
|
subject: repository,
|
||||||
|
team: repository.team,
|
||||||
|
message_items: {
|
||||||
|
repository: repository.id,
|
||||||
|
repository_row: @assoc.repository_row.id,
|
||||||
|
asset_name: { id: @asset.id, value_for: 'file_name' },
|
||||||
|
action: action
|
||||||
|
})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -485,7 +485,11 @@ class Extends
|
||||||
sequence_on_result_edited: 288,
|
sequence_on_result_edited: 288,
|
||||||
sequence_on_result_deleted: 289,
|
sequence_on_result_deleted: 289,
|
||||||
sequence_on_result_moved: 290,
|
sequence_on_result_moved: 290,
|
||||||
move_chemical_structure_on_result: 291
|
move_chemical_structure_on_result: 291,
|
||||||
|
export_inventories: 292,
|
||||||
|
edit_image_on_inventory_item: 293,
|
||||||
|
edit_wopi_file_on_inventory_item: 294,
|
||||||
|
export_inventory_stock_consumption: 295
|
||||||
}
|
}
|
||||||
|
|
||||||
ACTIVITY_GROUPS = {
|
ACTIVITY_GROUPS = {
|
||||||
|
@ -499,7 +503,7 @@ class Extends
|
||||||
experiment: [*27..31, 57, 141, 165],
|
experiment: [*27..31, 57, 141, 165],
|
||||||
reports: [48, 50, 49, 163, 164],
|
reports: [48, 50, 49, 163, 164],
|
||||||
inventories: [70, 71, 105, 144, 145, 72, 73, 74, 102, 142, 143, 75, 76, 77,
|
inventories: [70, 71, 105, 144, 145, 72, 73, 74, 102, 142, 143, 75, 76, 77,
|
||||||
78, 96, 107, 113, 114, *133..136, 180, 181, 182],
|
78, 96, 107, 113, 114, *133..136, 180, 181, 182, *292..295],
|
||||||
protocol_repository: [80, 103, 89, 87, 79, 90, 91, 88, 85, 86, 84, 81, 82,
|
protocol_repository: [80, 103, 89, 87, 79, 90, 91, 88, 85, 86, 84, 81, 82,
|
||||||
83, 101, 112, 123, 125, 117, 119, 129, 131, 170, 173, 179, 187, 186,
|
83, 101, 112, 123, 125, 117, 119, 129, 131, 170, 173, 179, 187, 186,
|
||||||
190, 191, *204..215, 220, 221, 223, 227, 228, 229, *230..235,
|
190, 191, *204..215, 220, 221, 223, 227, 228, 229, *230..235,
|
||||||
|
|
|
@ -316,6 +316,10 @@ en:
|
||||||
result_text_moved_html: "%{user} moved text <strong>%{text_name}</strong> from result %{result_original} to result %{result_destination}."
|
result_text_moved_html: "%{user} moved text <strong>%{text_name}</strong> from result %{result_original} to result %{result_destination}."
|
||||||
result_table_moved_html: "%{user} moved table <strong>%{table_name}</strong> from result %{result_original} to result %{result_destination}."
|
result_table_moved_html: "%{user} moved table <strong>%{table_name}</strong> from result %{result_original} to result %{result_destination}."
|
||||||
move_chemical_structure_on_result_html: "%{user} moved chemical structure <strong>%{file}</strong> from result %{result_original} to result %{result_destination}."
|
move_chemical_structure_on_result_html: "%{user} moved chemical structure <strong>%{file}</strong> from result %{result_original} to result %{result_destination}."
|
||||||
|
export_inventories_html: "%{user} exported inventory %{inventories}"
|
||||||
|
edit_image_on_inventory_item_html: "%{user} edited image %{asset_name} on inventory item %{repository_row} in inventory %{repository}: %{action}."
|
||||||
|
edit_wopi_file_on_inventory_item_html: "%{user} edited Office online file %{asset_name} on inventory item %{repository_row} in inventory %{repository}: %{action}."
|
||||||
|
export_inventory_stock_consumption_html: "%{user} exported stock consumption for inventory item(s) %{inventory_items} in inventory %{repository}."
|
||||||
activity_name:
|
activity_name:
|
||||||
create_project: "Project created"
|
create_project: "Project created"
|
||||||
rename_project: "Project renamed"
|
rename_project: "Project renamed"
|
||||||
|
@ -586,7 +590,10 @@ en:
|
||||||
result_text_moved: "Result text moved"
|
result_text_moved: "Result text moved"
|
||||||
result_table_moved: "Result table moved"
|
result_table_moved: "Result table moved"
|
||||||
move_chemical_structure_on_result: "Chemical structure on result moved"
|
move_chemical_structure_on_result: "Chemical structure on result moved"
|
||||||
|
export_inventories: "Inventories exported"
|
||||||
|
edit_image_on_inventory_item: "Inventory item image edited"
|
||||||
|
edit_wopi_file_on_inventory_item: "Inventory item wopi file edited"
|
||||||
|
export_inventory_stock_consumption: "Inventory stock consumptions exported"
|
||||||
activity_group:
|
activity_group:
|
||||||
projects: "Projects"
|
projects: "Projects"
|
||||||
task_results: "Task results"
|
task_results: "Task results"
|
||||||
|
|
Loading…
Add table
Reference in a new issue