Skip to content
Snippets Groups Projects
Commit 243bd020 authored by Jan Provaznik's avatar Jan Provaznik Committed by Thong Kuah
Browse files

Create an event on epic actions

Creates new event when an epic is created, closed, reopened or
commented.
parent 7bf4ef50
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -19,6 +19,7 @@ class Board < ApplicationRecord
def parent
@parent ||= group || project
end
alias_method :resource_parent, :parent
 
def group_board?
group_id.present?
Loading
Loading
Loading
Loading
@@ -277,6 +277,10 @@ module Issuable
end
end
 
def resource_parent
project
end
def milestone_available?
project_id == milestone&.project_id || project.ancestors_upto.compact.include?(milestone&.group)
end
Loading
Loading
Loading
Loading
@@ -51,6 +51,7 @@ class Event < ApplicationRecord
 
belongs_to :author, class_name: "User"
belongs_to :project
belongs_to :group
 
belongs_to :target, -> {
# If the association for "target" defines an "author" association we want to
Loading
Loading
Loading
Loading
@@ -260,6 +260,7 @@ class Milestone < ApplicationRecord
def parent
group || project
end
alias_method :resource_parent, :parent
 
def group_milestone?
group_id.present?
Loading
Loading
Loading
Loading
@@ -477,6 +477,7 @@ class Note < ApplicationRecord
def parent
project
end
alias_method :resource_parent, :parent
 
private
 
Loading
Loading
Loading
Loading
@@ -146,6 +146,7 @@ class Todo < ApplicationRecord
def parent
project
end
alias_method :resource_parent, :parent
 
def unmergeable?
action == UNMERGEABLE
Loading
Loading
Loading
Loading
@@ -95,16 +95,23 @@ class EventCreateService
private
 
def create_record_event(record, current_user, status)
create_event(record.project, current_user, status, target_id: record.id, target_type: record.class.name)
create_event(record.resource_parent, current_user, status, target_id: record.id, target_type: record.class.name)
end
 
def create_event(project, current_user, status, attributes = {})
def create_event(resource_parent, current_user, status, attributes = {})
attributes.reverse_merge!(
project: project,
action: status,
author_id: current_user.id
)
 
resource_parent_attr = case resource_parent
when Project
:project
when Group
:group
end
attributes[resource_parent_attr] = resource_parent if resource_parent_attr
Event.create!(attributes)
end
end
# frozen_string_literal: true
class AddGroupColumnToEvents < ActiveRecord::Migration[5.2]
DOWNTIME = false
def change
add_reference :events, :group, index: true, foreign_key: { to_table: :namespaces, on_delete: :cascade }
end
end
Loading
Loading
@@ -1310,9 +1310,11 @@ ActiveRecord::Schema.define(version: 2019_09_02_160015) do
t.datetime_with_timezone "updated_at", null: false
t.integer "action", limit: 2, null: false
t.string "target_type"
t.bigint "group_id"
t.index ["action"], name: "index_events_on_action"
t.index ["author_id", "project_id"], name: "index_events_on_author_id_and_project_id"
t.index ["created_at", "author_id"], name: "analytics_index_events_on_created_at_and_author_id"
t.index ["group_id"], name: "index_events_on_group_id"
t.index ["project_id", "created_at"], name: "index_events_on_project_id_and_created_at"
t.index ["project_id", "id"], name: "index_events_on_project_id_and_id"
t.index ["target_type", "target_id"], name: "index_events_on_target_type_and_target_id"
Loading
Loading
@@ -3838,6 +3840,7 @@ ActiveRecord::Schema.define(version: 2019_09_02_160015) do
add_foreign_key "epics", "users", column: "assignee_id", name: "fk_dccd3f98fc", on_delete: :nullify
add_foreign_key "epics", "users", column: "author_id", name: "fk_3654b61b03", on_delete: :cascade
add_foreign_key "epics", "users", column: "closed_by_id", name: "fk_aa5798e761", on_delete: :nullify
add_foreign_key "events", "namespaces", column: "group_id", on_delete: :cascade
add_foreign_key "events", "projects", on_delete: :cascade
add_foreign_key "events", "users", column: "author_id", name: "fk_edfd187b6f", on_delete: :cascade
add_foreign_key "fork_network_members", "fork_networks", on_delete: :cascade
Loading
Loading
Loading
Loading
@@ -26,6 +26,7 @@ issues:
events:
- author
- project
- group
- target
- push_event_payload
notes:
Loading
Loading
Loading
Loading
@@ -33,6 +33,7 @@ Event:
- target_type
- target_id
- project_id
- group_id
- created_at
- updated_at
- action
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment