mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2024-09-20 14:45:56 +08:00
Merge pull request #2770 from okriuchykhin/ok_SCI_4881
Create new activities for exporting assigned items (live & snapshots) [SCI-4881]
This commit is contained in:
commit
121644decf
|
@ -4,8 +4,7 @@ class MyModuleRepositoriesController < ApplicationController
|
|||
include ApplicationHelper
|
||||
|
||||
before_action :load_my_module
|
||||
before_action :load_repository, except: %i(repositories_dropdown_list repositories_list_html export_repository)
|
||||
before_action :load_repository_or_snapshot, only: :export_repository
|
||||
before_action :load_repository, except: %i(repositories_dropdown_list repositories_list_html)
|
||||
before_action :check_my_module_view_permissions
|
||||
before_action :check_repository_view_permissions, except: %i(repositories_dropdown_list repositories_list_html)
|
||||
before_action :check_assign_repository_records_permissions, only: :update
|
||||
|
@ -120,6 +119,18 @@ class MyModuleRepositoriesController < ApplicationController
|
|||
def export_repository
|
||||
if params[:header_ids]
|
||||
RepositoryZipExport.generate_zip(params, @repository, current_user)
|
||||
|
||||
Activities::CreateActivityService.call(
|
||||
activity_type: :export_inventory_items_assigned_to_task,
|
||||
owner: current_user,
|
||||
subject: @repository,
|
||||
team: current_team,
|
||||
message_items: {
|
||||
my_module: @my_module.id,
|
||||
repository: @repository.id
|
||||
}
|
||||
)
|
||||
|
||||
render json: { message: t('zip_export.export_request_success') }, status: :ok
|
||||
else
|
||||
render json: { message: t('zip_export.export_error') }, status: :unprocessable_entity
|
||||
|
@ -138,12 +149,6 @@ class MyModuleRepositoriesController < ApplicationController
|
|||
render_404 unless @repository
|
||||
end
|
||||
|
||||
def load_repository_or_snapshot
|
||||
@repository = Repository.accessible_by_teams(current_team).find_by(id: params[:id])
|
||||
@repository ||= RepositorySnapshot.find_by(id: params[:id])
|
||||
render_404 unless @repository
|
||||
end
|
||||
|
||||
def check_my_module_view_permissions
|
||||
render_403 unless can_read_experiment?(@my_module.experiment)
|
||||
end
|
||||
|
|
|
@ -101,6 +101,28 @@ class MyModuleRepositorySnapshotsController < ApplicationController
|
|||
render json: {}
|
||||
end
|
||||
|
||||
def export_repository_snapshot
|
||||
if params[:header_ids]
|
||||
RepositoryZipExport.generate_zip(params, @repository_snapshot, current_user)
|
||||
|
||||
Activities::CreateActivityService.call(
|
||||
activity_type: :export_inventory_snapshot_items_assigned_to_task,
|
||||
owner: current_user,
|
||||
subject: @repository_snapshot,
|
||||
team: current_team,
|
||||
message_items: {
|
||||
my_module: @my_module.id,
|
||||
repository_snapshot: @repository_snapshot.id,
|
||||
created_at: @repository_snapshot.created_at
|
||||
}
|
||||
)
|
||||
|
||||
render json: { message: t('zip_export.export_request_success') }, status: :ok
|
||||
else
|
||||
render json: { message: t('zip_export.export_error') }, status: :unprocessable_entity
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def load_my_module
|
||||
|
|
|
@ -12,7 +12,7 @@ module GlobalActivitiesHelper
|
|||
if value.is_a? String
|
||||
value
|
||||
elsif value['type'] == 'Time' # use saved date for printing
|
||||
l(Time.at(value['value']), format: :full_date)
|
||||
l(Time.at(value['value']), format: :full)
|
||||
else
|
||||
no_links ? generate_name(value) : generate_link(value, activity)
|
||||
end
|
||||
|
|
|
@ -7,11 +7,12 @@ module RepositoryZipExport
|
|||
# Fetch rows in the same order as in the currently viewed datatable
|
||||
if params[:my_module_id]
|
||||
rows = if repository.is_a?(RepositorySnapshot)
|
||||
repository.repository_rows
|
||||
else
|
||||
repository.repository_rows.joins(:my_module_repository_rows)
|
||||
.where(my_module_repository_rows: { my_module_id: params[:my_module_id] })
|
||||
end
|
||||
repository.repository_rows
|
||||
else
|
||||
repository.repository_rows
|
||||
.joins(:my_module_repository_rows)
|
||||
.where(my_module_repository_rows: { my_module_id: params[:my_module_id] })
|
||||
end
|
||||
else
|
||||
ordered_row_ids = params[:row_ids]
|
||||
id_row_map = RepositoryRow.where(id: ordered_row_ids,
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
data-default-order="<%= default_snapshot_table_order_as_js_array %>"
|
||||
data-default-table-columns="<%= default_snapshot_table_columns %>"
|
||||
data-load-state-url="<%= repository_load_table_state_path(@repository_snapshot) %>"
|
||||
data-export-url="<%= export_repository_my_module_repository_path(@my_module ,@repository_snapshot) %>"
|
||||
data-export-url="<%= export_repository_snapshot_my_module_repository_snapshot_path(@my_module, @repository_snapshot) %>"
|
||||
data-versions-sidebar-url="<%= full_view_sidebar_my_module_repository_snapshots_path(@my_module, @repository_snapshot.parent_id) %>"
|
||||
>
|
||||
<thead>
|
||||
|
|
|
@ -143,9 +143,8 @@ class Extends
|
|||
step: nil
|
||||
}
|
||||
|
||||
ACTIVITY_MESSAGE_ITEMS_TYPES =
|
||||
ACTIVITY_SUBJECT_TYPES + %w(User Tag RepositoryColumn RepositoryRow Step Asset TinyMceAsset Repository)
|
||||
.freeze
|
||||
ACTIVITY_MESSAGE_ITEMS_TYPES = ACTIVITY_SUBJECT_TYPES + %w(User Tag RepositoryColumn RepositoryRow Step
|
||||
Asset TinyMceAsset Repository RepositorySnapshot).freeze
|
||||
|
||||
ACTIVITY_TYPES = {
|
||||
create_project: 0,
|
||||
|
@ -287,7 +286,9 @@ class Extends
|
|||
archive_inventory_item: 142,
|
||||
restore_inventory_item: 143,
|
||||
archive_inventory: 144,
|
||||
restore_inventory: 145
|
||||
restore_inventory: 145,
|
||||
export_inventory_items_assigned_to_task: 146,
|
||||
export_inventory_snapshot_items_assigned_to_task: 147
|
||||
}
|
||||
|
||||
ACTIVITY_GROUPS = {
|
||||
|
|
|
@ -173,6 +173,8 @@ en:
|
|||
delete_chemical_structure_on_protocol_html: "%{user} deleted chemical structure %{asset_name} on protocol %{protocol}."
|
||||
delete_chemical_structure_on_task_html: "%{user} deleted chemical structure %{asset_name} on task %{my_module}."
|
||||
protocol_description_in_task_edited_html: "%{user} edited protocol description on task %{my_module}."
|
||||
export_inventory_items_assigned_to_task_html: "%{user} exported inventory item(s) assigned to task %{my_module} from inventory %{repository}: Live version."
|
||||
export_inventory_snapshot_items_assigned_to_task_html: "%{user} exported inventory item(s) assigned to task %{my_module} from inventory %{repository_snapshot}: Snapshot of %{created_at}."
|
||||
|
||||
activity_name:
|
||||
create_project: "Project created"
|
||||
|
@ -311,6 +313,8 @@ en:
|
|||
delete_chemical_structure_on_protocol: "Chemical structure on protocol deleted"
|
||||
delete_chemical_structure_on_task: "Chemical structure on task deleted"
|
||||
protocol_description_in_task_edited: "Protocol description in task edited"
|
||||
export_inventory_items_assigned_to_task: "Task-assigned inventory items exported (live version)"
|
||||
export_inventory_snapshot_items_assigned_to_task: "Task-assigned inventory items exported (snapshot)"
|
||||
|
||||
activity_group:
|
||||
projects: "Projects"
|
||||
|
|
|
@ -396,6 +396,7 @@ Rails.application.routes.draw do
|
|||
member do
|
||||
get :full_view_table
|
||||
post :index_dt
|
||||
post :export_repository_snapshot
|
||||
get :status
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue