mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-09-06 21:24:23 +08:00
Merge pull request #8114 from aignatov-bio/ai-sci-11388-add-activities-for-forms
Add activities to form templates [SCI-11388]
This commit is contained in:
commit
b0463b06b6
5 changed files with 64 additions and 2 deletions
|
@ -18,6 +18,7 @@ class FormFieldsController < ApplicationController
|
|||
)
|
||||
)
|
||||
if @form_field.save
|
||||
log_activity(:form_block_added, block_name: @form_field.name)
|
||||
render json: @form_field, serializer: FormFieldSerializer, user: current_user
|
||||
else
|
||||
render json: { error: @form_field.errors.full_messages }, status: :unprocessable_entity
|
||||
|
@ -28,6 +29,7 @@ class FormFieldsController < ApplicationController
|
|||
def update
|
||||
ActiveRecord::Base.transaction do
|
||||
if @form_field.update(form_field_params.merge({ last_modified_by: current_user }))
|
||||
log_activity(:form_block_edited, block_name: @form_field.name)
|
||||
render json: @form_field, serializer: FormFieldSerializer, user: current_user
|
||||
else
|
||||
render json: { error: @form_field.errors.full_messages }, status: :unprocessable_entity
|
||||
|
@ -38,6 +40,7 @@ class FormFieldsController < ApplicationController
|
|||
def destroy
|
||||
ActiveRecord::Base.transaction do
|
||||
if @form_field.destroy
|
||||
log_activity(:form_block_deleted, block_name: @form_field.name)
|
||||
render json: {}
|
||||
else
|
||||
render json: { error: @form_field.errors.full_messages }, status: :unprocessable_entity
|
||||
|
@ -51,6 +54,7 @@ class FormFieldsController < ApplicationController
|
|||
@form_field = @form.form_fields.find(data[:id])
|
||||
@form_field.insert_at!(data[:position].to_i)
|
||||
end
|
||||
log_activity(:form_block_rearranged)
|
||||
end
|
||||
|
||||
render json: params[:form_field_positions], status: :ok
|
||||
|
@ -79,4 +83,16 @@ class FormFieldsController < ApplicationController
|
|||
def form_field_params
|
||||
params.require(:form_field).permit(:name, :description, { data: [:type, :unit, :time, :range, validations: {}, options: []] }, :required, :allow_not_applicable, :uid)
|
||||
end
|
||||
|
||||
def log_activity(type_of, message_items = {})
|
||||
Activities::CreateActivityService
|
||||
.call(activity_type: type_of,
|
||||
owner: current_user,
|
||||
team: @form.team,
|
||||
subject: @form,
|
||||
message_items: {
|
||||
form: @form.id,
|
||||
user: current_user.id
|
||||
}.merge(message_items))
|
||||
end
|
||||
end
|
||||
|
|
|
@ -38,6 +38,7 @@ class FormsController < ApplicationController
|
|||
)
|
||||
|
||||
if @form.save
|
||||
log_activity(@form, :form_created)
|
||||
render json: @form, serializer: FormSerializer, user: current_user
|
||||
else
|
||||
render json: { error: @form.errors.full_messages }, status: :unprocessable_entity
|
||||
|
@ -48,6 +49,7 @@ class FormsController < ApplicationController
|
|||
def update
|
||||
ActiveRecord::Base.transaction do
|
||||
if @form.update(form_params.merge({ last_modified_by: current_user }))
|
||||
log_activity(@form, :form_name_changed)
|
||||
render json: @form, serializer: FormSerializer, user: current_user
|
||||
else
|
||||
render json: { error: @form.errors.full_messages }, status: :unprocessable_entity
|
||||
|
@ -73,6 +75,7 @@ class FormsController < ApplicationController
|
|||
published_by: current_user,
|
||||
published_on: DateTime.now
|
||||
)
|
||||
log_activity(@form, :form_published, { version_number: 1 })
|
||||
|
||||
render json: @form, serializer: FormSerializer, user: current_user
|
||||
end
|
||||
|
@ -99,6 +102,7 @@ class FormsController < ApplicationController
|
|||
forms.each do |form|
|
||||
form.transaction do
|
||||
form.archive!(current_user)
|
||||
log_activity(form, :form_archived)
|
||||
counter += 1
|
||||
rescue StandardError => e
|
||||
Rails.logger.error e.message
|
||||
|
@ -123,6 +127,7 @@ class FormsController < ApplicationController
|
|||
forms.each do |form|
|
||||
form.transaction do
|
||||
form.restore!(current_user)
|
||||
log_activity(form, :form_restored)
|
||||
counter += 1
|
||||
rescue StandardError => e
|
||||
Rails.logger.error e.message
|
||||
|
@ -189,4 +194,16 @@ class FormsController < ApplicationController
|
|||
def form_params
|
||||
params.require(:form).permit(:name, :description)
|
||||
end
|
||||
|
||||
def log_activity(form, type_of, message_items = {})
|
||||
Activities::CreateActivityService
|
||||
.call(activity_type: type_of,
|
||||
owner: current_user,
|
||||
team: form.team,
|
||||
subject: form,
|
||||
message_items: {
|
||||
form: form.id,
|
||||
user: current_user.id
|
||||
}.merge(message_items))
|
||||
end
|
||||
end
|
||||
|
|
|
@ -118,6 +118,8 @@ module GlobalActivitiesHelper
|
|||
else
|
||||
storage_location_path(obj, team: activity.team.id)
|
||||
end
|
||||
when Form
|
||||
path = form_path(obj, team: obj.team.id)
|
||||
else
|
||||
return current_value
|
||||
end
|
||||
|
|
|
@ -534,7 +534,16 @@ class Extends
|
|||
form_access_revoked: 333,
|
||||
form_access_granted_all_team_members: 334,
|
||||
form_access_changed_all_team_members: 335,
|
||||
form_access_revoked_all_team_members: 336
|
||||
form_access_revoked_all_team_members: 336,
|
||||
form_created: 337,
|
||||
form_archived: 338,
|
||||
form_restored: 339,
|
||||
form_published: 340,
|
||||
form_name_changed: 341,
|
||||
form_block_added: 342,
|
||||
form_block_edited: 343,
|
||||
form_block_deleted: 344,
|
||||
form_block_rearranged: 345
|
||||
}
|
||||
|
||||
ACTIVITY_GROUPS = {
|
||||
|
@ -558,7 +567,7 @@ class Extends
|
|||
storage_locations: [*309..315],
|
||||
container_storage_locations: [*316..322, 326],
|
||||
storage_location_repository_rows: [*323..325],
|
||||
forms: [331, 332, 333, 334, 335, 336]
|
||||
forms: [331, 332, 333, 334, 335, 336, *337..345]
|
||||
}
|
||||
|
||||
TOP_LEVEL_ASSIGNABLES = %w(Project Team Protocol Repository Form).freeze
|
||||
|
|
|
@ -350,6 +350,15 @@ en:
|
|||
form_access_granted_all_team_members_html: "%{user} granted access to all team members of %{team} team with user role %{role} to form template %{form}."
|
||||
form_access_changed_all_team_members_html: "%{user} changed %{team}'s role on form template %{form} to %{role}."
|
||||
form_access_revoked_all_team_members_html: "%{user} removed %{team} team members with user role %{role} from form template %{form}."
|
||||
form_created_html: "%{user} created form %{form} in Form templates."
|
||||
form_archived_html: "%{user} archived form %{form} in Form templates."
|
||||
form_restored_html: "%{user} restored form %{form} from archive in Form templates."
|
||||
form_published_html: "%{user} published form %{form} version %{version_number}."
|
||||
form_name_changed_html: "%{user} edited form name in Form templates."
|
||||
form_block_added_html: "%{user} created form block %{block_name} in form %{form} in Form templates."
|
||||
form_block_edited_html: "%{user} edited form block %{block_name} in form %{form} in Form templates."
|
||||
form_block_deleted_html: "%{user} deleted form block %{block_name} in form %{form} in Form templates."
|
||||
form_block_rearranged_html: "%{user} rearranged form blocks in form %{form} in Form templates."
|
||||
activity_name:
|
||||
create_project: "Project created"
|
||||
rename_project: "Project renamed"
|
||||
|
@ -651,6 +660,15 @@ en:
|
|||
task_result_restore_asset_version: "Result file version restored"
|
||||
repository_column_restore_asset_version: "Inventroy item file version restored"
|
||||
protocol_step_restore_asset_version: "Protocol step file version restored"
|
||||
form_created: "Form created"
|
||||
form_archived: "Form archived"
|
||||
form_restored: "Form restored from archive"
|
||||
form_published: "Form published"
|
||||
form_name_changed: "Form name edited"
|
||||
form_block_added: "Form block added"
|
||||
form_block_edited: "Form block edited"
|
||||
form_block_deleted: "Form block deleted"
|
||||
form_block_rearranged: "Form block rearranged"
|
||||
activity_group:
|
||||
projects: "Projects"
|
||||
task_results: "Task results"
|
||||
|
|
Loading…
Add table
Reference in a new issue