User left project event added
This commit is contained in:
parent
a86bd87afc
commit
1f240b09ed
10 changed files with 75 additions and 10 deletions
|
@ -8,9 +8,8 @@ class EventDecorator < ApplicationDecorator
|
|||
"#{self.author_name} #{self.action_name} MR ##{self.target_id}:" + self.merge_request_title
|
||||
elsif self.push?
|
||||
"#{self.author_name} #{self.push_action_name} #{self.ref_type} " + self.ref_name
|
||||
elsif self.joined?
|
||||
elsif self.membership_changed?
|
||||
"#{self.author_name} #{self.action_name} #{self.project.name}"
|
||||
|
||||
else
|
||||
""
|
||||
end
|
||||
|
|
|
@ -11,6 +11,7 @@ class Event < ActiveRecord::Base
|
|||
Commented = 6
|
||||
Merged = 7
|
||||
Joined = 8 # User joined project
|
||||
Left = 9 # User left project
|
||||
|
||||
belongs_to :project
|
||||
belongs_to :target, polymorphic: true
|
||||
|
@ -38,7 +39,7 @@ class Event < ActiveRecord::Base
|
|||
# - new issue
|
||||
# - merge request
|
||||
def allowed?
|
||||
push? || issue? || merge_request? || joined?
|
||||
push? || issue? || merge_request? || membership_changed?
|
||||
end
|
||||
|
||||
def push?
|
||||
|
@ -86,7 +87,15 @@ class Event < ActiveRecord::Base
|
|||
end
|
||||
|
||||
def joined?
|
||||
action == self.class::Joined
|
||||
action == Joined
|
||||
end
|
||||
|
||||
def left?
|
||||
action == Left
|
||||
end
|
||||
|
||||
def membership_changed?
|
||||
joined? || left?
|
||||
end
|
||||
|
||||
def issue
|
||||
|
@ -108,6 +117,8 @@ class Event < ActiveRecord::Base
|
|||
"merged"
|
||||
elsif joined?
|
||||
'joined'
|
||||
elsif left?
|
||||
'left'
|
||||
else
|
||||
"opened"
|
||||
end
|
||||
|
|
|
@ -23,7 +23,7 @@ class UsersProject < ActiveRecord::Base
|
|||
def self.bulk_delete(project, user_ids)
|
||||
UsersProject.transaction do
|
||||
UsersProject.where(:user_id => user_ids, :project_id => project.id).each do |users_project|
|
||||
users_project.delete
|
||||
users_project.destroy
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -12,4 +12,13 @@ class UsersProjectObserver < ActiveRecord::Observer
|
|||
def after_update(users_project)
|
||||
Notify.project_access_granted_email(users_project.id).deliver
|
||||
end
|
||||
|
||||
def after_destroy(users_project)
|
||||
Event.create(
|
||||
project_id: users_project.project.id,
|
||||
action: Event::Left,
|
||||
author_id: users_project.user.id
|
||||
)
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
.event_feed
|
||||
= render "events/event_push", event: event
|
||||
|
||||
- elsif event.joined?
|
||||
- elsif event.membership_changed?
|
||||
.event_feed
|
||||
= render "events/event_joined", event: event
|
||||
= render "events/event_membership_changed", event: event
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
= image_tag gravatar_icon(event.author_email), class: "avatar"
|
||||
%strong #{event.author_name}
|
||||
%span.event_label{class: event.action_name}= event.action_name
|
||||
project
|
||||
%strong= link_to event.project.name, event.project
|
||||
%span.cgray
|
||||
= time_ago_in_words(event.created_at)
|
Loading…
Add table
Add a link
Reference in a new issue