mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-02-26 16:53:12 +08:00
Merge pull request #1628 from urbanrotnik/ur-sci-3282-fix-dates-for-activities
Show date value without link [SCI-3282]
This commit is contained in:
commit
76e016f164
4 changed files with 42 additions and 21 deletions
|
@ -168,15 +168,17 @@ class MyModulesController < ApplicationController
|
||||||
if due_date_changes
|
if due_date_changes
|
||||||
# rubocop:disable Metrics/BlockNesting # temporary solution
|
# rubocop:disable Metrics/BlockNesting # temporary solution
|
||||||
type_of = if due_date_changes[0].nil? # set due_date
|
type_of = if due_date_changes[0].nil? # set due_date
|
||||||
|
message_items = { my_module_duedate: @my_module.due_date }
|
||||||
:set_task_due_date
|
:set_task_due_date
|
||||||
elsif due_date_changes[1].nil? # remove due_date
|
elsif due_date_changes[1].nil? # remove due_date
|
||||||
|
message_items = { my_module_duedate: due_date_changes[0] }
|
||||||
:remove_task_due_date
|
:remove_task_due_date
|
||||||
else # change due_date
|
else # change due_date
|
||||||
|
message_items = { my_module_duedate: @my_module.due_date }
|
||||||
:change_task_due_date
|
:change_task_due_date
|
||||||
end
|
end
|
||||||
# rubocop:enable Metrics/BlockNesting
|
# rubocop:enable Metrics/BlockNesting
|
||||||
log_activity(type_of, @my_module, my_module_duedate: { id: @my_module.id,
|
log_activity(type_of, @my_module, message_items)
|
||||||
value_for: 'due_date' })
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -11,6 +11,8 @@ module GlobalActivitiesHelper
|
||||||
parameters[key] =
|
parameters[key] =
|
||||||
if value.is_a? String
|
if value.is_a? String
|
||||||
value
|
value
|
||||||
|
elsif value[:type] == 'Time' # use saved date for printing
|
||||||
|
l(Time.at(value[:value]), format: :full_date)
|
||||||
else
|
else
|
||||||
no_links ? generate_name(value) : generate_link(value, activity)
|
no_links ? generate_name(value) : generate_link(value, activity)
|
||||||
end
|
end
|
||||||
|
@ -80,9 +82,6 @@ module GlobalActivitiesHelper
|
||||||
value = obj.public_send(message_item[:value_for] || 'name')
|
value = obj.public_send(message_item[:value_for] || 'name')
|
||||||
value = t('global_activities.index.no_name') if value.blank?
|
value = t('global_activities.index.no_name') if value.blank?
|
||||||
|
|
||||||
# format if is datetime format
|
|
||||||
value = l(value, format: :full_date) if value.methods.include? :strftime
|
|
||||||
|
|
||||||
value
|
value
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -38,25 +38,29 @@ module Activities
|
||||||
|
|
||||||
def enrich_message_items
|
def enrich_message_items
|
||||||
@message_items.each do |k, v|
|
@message_items.each do |k, v|
|
||||||
|
if v.is_a? Time
|
||||||
|
@activity.message_items[k] = {
|
||||||
|
type: 'Time',
|
||||||
|
value: v.to_i
|
||||||
|
}
|
||||||
|
next
|
||||||
|
end
|
||||||
|
|
||||||
const = try_to_constantize k
|
const = try_to_constantize k
|
||||||
if const
|
if const
|
||||||
if v.is_a?(Hash) # Value is array, so you have getter specified
|
if v.is_a?(Hash) # Value is array, so you have getter specified
|
||||||
id = v[:id]
|
id = v[:id]
|
||||||
getter_method = v[:value_for]
|
getter_method = v[:value_for]
|
||||||
|
value_type = v[:value_type]
|
||||||
else
|
else
|
||||||
id = v
|
id = v
|
||||||
getter_method = 'name'
|
getter_method = 'name'
|
||||||
end
|
end
|
||||||
|
|
||||||
obj = const.find id
|
obj = const.find id
|
||||||
@activity.message_items[k] = {
|
@activity.message_items[k] = { type: const.to_s, value: obj.public_send(getter_method).to_s, id: id }
|
||||||
type: const.to_s,
|
@activity.message_items[k][:value_for] = getter_method
|
||||||
value: obj.public_send(getter_method).to_s,
|
@activity.message_items[k][:value_type] = value_type unless value_type.nil?
|
||||||
id: id
|
|
||||||
}
|
|
||||||
|
|
||||||
@activity.message_items[k].merge!(value_for: getter_method)
|
|
||||||
|
|
||||||
else
|
else
|
||||||
@activity.message_items[k] = v.to_s
|
@activity.message_items[k] = v.to_s
|
||||||
end
|
end
|
||||||
|
|
|
@ -103,8 +103,8 @@ describe Activities::CreateActivityService do
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when message item is an object with custom value getter' do
|
context 'when message item is an object with custom value getter' do
|
||||||
it 'adds project due date to message items as hash' do
|
it 'adds project visibility to message items as hash' do
|
||||||
project.update_attribute(:due_date, Date.tomorrow)
|
project.update_attribute(:visibility, 'hidden')
|
||||||
|
|
||||||
activity = Activities::CreateActivityService
|
activity = Activities::CreateActivityService
|
||||||
.call(activity_type: :create_project,
|
.call(activity_type: :create_project,
|
||||||
|
@ -112,15 +112,31 @@ describe Activities::CreateActivityService do
|
||||||
subject: project,
|
subject: project,
|
||||||
team: team,
|
team: team,
|
||||||
message_items: {
|
message_items: {
|
||||||
project_duedate: { id: project.id,
|
project_visibility: { id: project.id, value_for: 'visibility' }
|
||||||
value_for: 'due_date' }
|
|
||||||
}).activity
|
}).activity
|
||||||
|
|
||||||
expect(activity.message_items)
|
expect(activity.message_items)
|
||||||
.to include(project_duedate: { id: project.id,
|
.to include(project_visibility: { id: project.id,
|
||||||
type: 'Project',
|
type: 'Project',
|
||||||
value_for: 'due_date',
|
value_for: 'visibility',
|
||||||
value: project.due_date.to_s })
|
value: project.visibility })
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when message item is an Time object' do
|
||||||
|
it 'adds time value and type to message items as hash' do
|
||||||
|
project.update_attribute(:visibility, 'hidden')
|
||||||
|
project.update_attribute(:due_date, Time.now)
|
||||||
|
|
||||||
|
activity = Activities::CreateActivityService.call(activity_type: :create_project,
|
||||||
|
owner: user,
|
||||||
|
subject: project,
|
||||||
|
team: team,
|
||||||
|
message_items: {
|
||||||
|
project_duedate: project.due_date
|
||||||
|
}).activity
|
||||||
|
|
||||||
|
expect(activity.message_items).to include(project_duedate: { type: 'Time', value: project.due_date.to_i })
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue