diff --git a/app/helpers/events_helper.rb b/app/helpers/events_helper.rb
index 825f81bfc..6a8ebe03f 100644
--- a/app/helpers/events_helper.rb
+++ b/app/helpers/events_helper.rb
@@ -1,9 +1,9 @@
module EventsHelper
def event_column(event)
case event.action
- when "closed"
+ when "card_closed"
3
- when "published"
+ when "card_published"
1
else
2
@@ -32,9 +32,9 @@ module EventsHelper
def render_column_headers(day_timeline)
headers = {
- "Added" => day_timeline.events.where(action: "published").count,
+ "Added" => day_timeline.events.where(action: "card_published").count,
"Updated" => nil,
- "Closed" => day_timeline.events.where(action: "closed").count
+ "Closed" => day_timeline.events.where(action: "card_closed").count
}
headers.map do |header, count|
@@ -45,46 +45,46 @@ module EventsHelper
def event_action_sentence(event)
case event.action
- when "assigned"
+ when "card_assigned"
if event.assignees.include?(Current.user)
"#{ event.creator == Current.user ? "You" : event.creator.name } will handle #{ event.eventable.title }".html_safe
else
"#{ event.creator == Current.user ? "You" : event.creator.name } assigned #{ event.assignees.pluck(:name).to_sentence } to #{ event.eventable.title }".html_safe
end
- when "unassigned"
+ when "card_unassigned"
"#{ event.creator == Current.user ? "You" : event.creator.name } unassigned #{ event.assignees.include?(Current.user) ? "yourself" : event.assignees.pluck(:name).to_sentence } from #{ event.eventable.title }".html_safe
- when "commented"
+ when "card_commented"
"#{ event.creator == Current.user ? "You" : event.creator.name } commented on #{ event.eventable.title }".html_safe
- when "published"
+ when "card_published"
"#{ event.creator == Current.user ? "You" : event.creator.name } added #{ event.eventable.title }".html_safe
- when "closed"
+ when "card_closed"
"#{ event.creator == Current.user ? "You" : event.creator.name } closed #{ event.eventable.title }".html_safe
- when "staged"
+ when "card_staged"
"#{event.creator == Current.user ? "You" : event.creator.name} moved #{ event.eventable.title } to the #{event.stage_name} stage".html_safe
- when "unstaged"
+ when "card_unstaged"
"#{event.creator == Current.user ? "You" : event.creator.name} moved #{ event.eventable.title } out ofthe #{event.stage_name} stage".html_safe
- when "due_date_added"
+ when "card_due_date_added"
"#{event.creator == Current.user ? "You" : event.creator.name} set the date to #{event.particulars.dig('particulars', 'due_date').to_date.strftime('%B %-d')} on #{ event.eventable.title }".html_safe
- when "due_date_changed"
+ when "card_due_date_changed"
"#{event.creator == Current.user ? "You" : event.creator.name} changed the date to #{event.particulars.dig('particulars', 'due_date').to_date.strftime('%B %-d')} on #{ event.eventable.title }".html_safe
- when "due_date_removed"
+ when "card_due_date_removed"
"#{event.creator == Current.user ? "You" : event.creator.name} removed the date on #{ event.eventable.title }"
- when "title_changed"
+ when "card_title_changed"
"#{event.creator == Current.user ? "You" : event.creator.name} renamed #{ event.eventable.title } (was: '#{event.particulars.dig('particulars', 'old_title')})'".html_safe
end
end
def event_action_icon(event)
case event.action
- when "assigned"
- "assigned"
- when "staged"
+ when "card_assigned"
+ "card_assigned"
+ when "card_staged"
"bolt"
- when "unstaged"
+ when "card_unstaged"
"bolt"
- when "commented"
+ when "card_commented"
"comment"
- when "title_changed"
+ when "card_title_changed"
"rename"
else
"person"
diff --git a/app/helpers/notifications_helper.rb b/app/helpers/notifications_helper.rb
index cbb1774a0..344e5c0f4 100644
--- a/app/helpers/notifications_helper.rb
+++ b/app/helpers/notifications_helper.rb
@@ -1,8 +1,8 @@
module NotificationsHelper
def event_notification_title(event)
case event_notification_action(event)
- when "commented" then "RE: " + event.eventable.title
- when "assigned" then "Assigned to you: " + event.eventable.title
+ when "card_commented" then "RE: " + event.eventable.title
+ when "card_assigned" then "Assigned to you: " + event.eventable.title
else event.eventable.title
end
end
@@ -11,9 +11,9 @@ module NotificationsHelper
name = event.creator.name
case event_notification_action(event)
- when "closed" then "Closed by #{name}"
- when "published" then "Added by #{name}"
- when "commented" then comment_notification_body(event)
+ when "card_closed" then "Closed by #{name}"
+ when "card_published" then "Added by #{name}"
+ when "card_commented" then comment_notification_body(event)
else name
end
end
@@ -49,7 +49,7 @@ module NotificationsHelper
private
def event_notification_action(event)
if event.initial_assignment?
- "assigned"
+ "card_assigned"
else
event.action
end
diff --git a/app/models/card/eventable.rb b/app/models/card/eventable.rb
index 7ac190f3d..51c760fde 100644
--- a/app/models/card/eventable.rb
+++ b/app/models/card/eventable.rb
@@ -31,18 +31,18 @@ module Card::Eventable
def track_due_date_change
if due_on.present?
if due_on_before_last_save.nil?
- track_event("due_date_added", particulars: { due_date: due_on })
+ track_event("card_due_date_added", particulars: { due_date: due_on })
else
- track_event("due_date_changed", particulars: { due_date: due_on })
+ track_event("card_due_date_changed", particulars: { due_date: due_on })
end
elsif due_on_before_last_save.present?
- track_event("due_date_removed")
+ track_event("card_due_date_removed")
end
end
def track_title_change
if title_before_last_save.present?
- track_event "title_changed", particulars: { old_title: title_before_last_save, new_title: title }
+ track_event "card_title_changed", particulars: { old_title: title_before_last_save, new_title: title }
end
end
end
diff --git a/app/models/event.rb b/app/models/event.rb
index 3b2dca64c..1cf31aa13 100644
--- a/app/models/event.rb
+++ b/app/models/event.rb
@@ -24,6 +24,6 @@ class Event < ApplicationRecord
# TODO: This doesn't belong here anymore
def initial_assignment?
- action == "published" && eventable.assigned_to?(creator)
+ action == "card_published" && eventable.assigned_to?(creator)
end
end
diff --git a/app/models/event_summary.rb b/app/models/event_summary.rb
index 241d3cc3c..f04841e66 100644
--- a/app/models/event_summary.rb
+++ b/app/models/event_summary.rb
@@ -13,23 +13,23 @@ class EventSummary < ApplicationRecord
def summarize(event)
case event.action
- when "assigned"
+ when "card_assigned"
"Assigned to #{event.assignees.pluck(:name).to_sentence}."
- when "unassigned"
+ when "card_unassigned"
"Unassigned from #{event.assignees.pluck(:name).to_sentence}."
- when "staged"
+ when "card_staged"
"#{event.creator.name} moved this to '#{event.stage_name}'."
- when "closed"
+ when "card_closed"
"Closed by #{ event.creator.name }"
- when "unstaged"
+ when "card_unstaged"
"#{event.creator.name} removed this from '#{event.stage_name}'."
- when "due_date_added"
+ when "card_due_date_added"
"#{event.creator.name} set due date to #{event.particulars.dig('particulars', 'due_date').to_date.strftime('%B %-d')}."
- when "due_date_changed"
+ when "card_due_date_changed"
"#{event.creator.name} changed due date to #{event.particulars.dig('particulars', 'due_date').to_date.strftime('%B %-d')}."
- when "due_date_removed"
+ when "card_due_date_removed"
"#{event.creator.name} removed the date."
- when "title_changed"
+ when "card_title_changed"
"#{event.creator.name} changed title from '#{event.particulars.dig('particulars', 'old_title')}' to '#{event.particulars.dig('particulars', 'new_title')}'."
end
end
diff --git a/app/models/eventable.rb b/app/models/eventable.rb
index 183c638d5..e14803f09 100644
--- a/app/models/eventable.rb
+++ b/app/models/eventable.rb
@@ -7,7 +7,7 @@ module Eventable
def track_event(action, creator: Current.user, collection: self.collection, **particulars)
if should_track_event?
- collection.events.create!(action:, creator:, collection:, eventable: self, particulars:)
+ collection.events.create!(action: "#{eventable_prefix}_#{action}", creator:, collection:, eventable: self, particulars:)
end
end
@@ -18,4 +18,8 @@ module Eventable
def should_track_event?
true
end
+
+ def eventable_prefix
+ self.class.name.demodulize.underscore
+ end
end
diff --git a/app/models/notifier/event_notifier.rb b/app/models/notifier/event_notifier.rb
index e7b11b4d8..eb7e77cb5 100644
--- a/app/models/notifier/event_notifier.rb
+++ b/app/models/notifier/event_notifier.rb
@@ -5,11 +5,11 @@ class Notifier::EventNotifier < Notifier
private
def recipients
case source.action
- when "assigned"
+ when "card_assigned"
source.assignees.excluding(source.collection.access_only_users)
- when "published"
+ when "card_published"
watchers_and_subscribers(include_only_watching: true).without(creator, *card.mentionees)
- when "commented"
+ when "card_commented"
watchers_and_subscribers.without(creator, *source.comment.mentionees)
else
watchers_and_subscribers.without(creator)
diff --git a/app/views/events/_event.html.erb b/app/views/events/_event.html.erb
index a27058abe..867324c66 100644
--- a/app/views/events/_event.html.erb
+++ b/app/views/events/_event.html.erb
@@ -22,7 +22,7 @@
<% end %>
- <% if event.action == "commented" && !strip_tags(event&.comment&.body_html).blank? %>
+ <% if event.action == "card_commented" && !strip_tags(event&.comment&.body_html).blank? %>
<%= strip_tags(event.comment.body_html).truncate(200) -%>
diff --git a/test/fixtures/events.yml b/test/fixtures/events.yml
index 11c8b46e9..bf65e5486 100644
--- a/test/fixtures/events.yml
+++ b/test/fixtures/events.yml
@@ -2,7 +2,7 @@ logo_published:
creator: david
collection: writebook
eventable: logo (Card)
- action: published
+ action: card_published
summary: logo_initial_activity
created_at: <%= 1.week.ago %>
@@ -10,7 +10,7 @@ logo_assignment_jz:
creator: david
collection: writebook
eventable: logo (Card)
- action: assigned
+ action: card_assigned
summary: logo_initial_activity
particulars: <%= { assignee_ids: [ ActiveRecord::FixtureSet.identify(:jz) ] }.to_json %>
created_at: <%= 1.week.ago + 1.hour %>
@@ -19,7 +19,7 @@ logo_assignment_km:
creator: david
collection: writebook
eventable: logo (Card)
- action: assigned
+ action: card_assigned
summary: logo_second_activity
particulars: <%= { assignee_ids: [ ActiveRecord::FixtureSet.identify(:kevin) ] }.to_json %>
created_at: <%= 1.day.ago %>
@@ -28,7 +28,7 @@ layout_published:
creator: david
collection: writebook
eventable: layout (Card)
- action: published
+ action: card_published
summary: layout_initial_activity
created_at: <%= 1.week.ago %>
@@ -36,7 +36,7 @@ layout_commented:
creator: david
collection: writebook
eventable: layout (Card)
- action: commented
+ action: card_commented
summary: layout_initial_activity
particulars: <%= { comment_id: ActiveRecord::FixtureSet.identify(:layout_overflowing_david) }.to_json %>
created_at: <%= 1.week.ago %>
@@ -45,7 +45,7 @@ layout_assignment_jz:
creator: david
collection: writebook
eventable: layout (Card)
- action: assigned
+ action: card_assigned
summary: layout_initial_activity
particulars: <%= { assignee_ids: [ ActiveRecord::FixtureSet.identify(:jz) ] }.to_json %>
created_at: <%= 1.hour.ago %>
@@ -54,7 +54,7 @@ text_published:
creator: kevin
collection: writebook
eventable: text (Card)
- action: published
+ action: card_published
summary: text_initial_activity
created_at: <%= 1.week.ago %>
@@ -62,7 +62,7 @@ shipping_published:
creator: kevin
collection: writebook
eventable: shipping (Card)
- action: published
+ action: card_published
summary: shipping_initial_activity
created_at: <%= 1.week.ago %>
@@ -70,6 +70,6 @@ shipping_closed:
creator: kevin
collection: writebook
eventable: shipping (Card)
- action: closed
+ action: card_closed
summary: shipping_initial_activity
created_at: <%= 2.days.ago %>
diff --git a/test/integration/card_messages.rb b/test/integration/card_messages.rb
index 0253e45f3..257619ede 100644
--- a/test/integration/card_messages.rb
+++ b/test/integration/card_messages.rb
@@ -24,6 +24,6 @@ class CardMessagesTest < ActionDispatch::IntegrationTest
assert_equal 3, card.messages.count
assert_predicate card.messages.last, :event_summary?
assert_equal 1, card.messages.last.event_summary.events.count
- assert_equal "assigned", card.messages.last.messageable.events.last.action
+ assert_equal "card_assigned", card.messages.last.messageable.events.last.action
end
end
diff --git a/test/models/card/staged_test.rb b/test/models/card/staged_test.rb
index 492374fb5..ce12a75f3 100644
--- a/test/models/card/staged_test.rb
+++ b/test/models/card/staged_test.rb
@@ -4,7 +4,7 @@ class Card::StagedTest < ActiveSupport::TestCase
setup { Current.session = sessions(:david) }
test "change stage" do
- assert_difference -> { Event.where(action: :staged).count }, +1 do
+ assert_difference -> { Event.where(action: :card_staged).count }, +1 do
cards(:logo).change_stage_to(workflow_stages(:qa_in_progress))
assert_equal workflow_stages(:qa_in_progress), cards(:logo).reload.stage
end
diff --git a/test/models/card_test.rb b/test/models/card_test.rb
index 3d251e278..39add0d99 100644
--- a/test/models/card_test.rb
+++ b/test/models/card_test.rb
@@ -25,14 +25,14 @@ class CardTest < ActiveSupport::TestCase
cards(:logo).toggle_assignment users(:kevin)
end
assert_not cards(:logo).assigned_to?(users(:kevin))
- assert_equal "unassigned", Event.last.action
+ assert_equal "card_unassigned", Event.last.action
assert_equal [ users(:kevin) ], Event.last.assignees
assert_difference %w[ cards(:logo).assignees.count Event.count ], +1 do
cards(:logo).toggle_assignment users(:kevin)
end
assert cards(:logo).assigned_to?(users(:kevin))
- assert_equal "assigned", Event.last.action
+ assert_equal "card_assigned", Event.last.action
assert_equal [ users(:kevin) ], Event.last.assignees
end
@@ -74,7 +74,7 @@ class CardTest < ActiveSupport::TestCase
assert_equal cards(:logo, :layout, :text), Card.open
end
- test "unassigned" do
+ test "card_unassigned" do
assert_equal cards(:shipping, :text), Card.unassigned
end