User left project event added

This commit is contained in:
Alex Denisov 2012-09-10 00:27:47 +03:00
parent a86bd87afc
commit 1f240b09ed
10 changed files with 75 additions and 10 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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)