Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
1f240b09
G
gitlab-foss
项目概览
李少辉-开发者
/
gitlab-foss
通知
15
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
gitlab-foss
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
1f240b09
编写于
9月 10, 2012
作者:
A
Alex Denisov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
User left project event added
上级
a86bd87a
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
75 addition
and
10 deletion
+75
-10
app/decorators/event_decorator.rb
app/decorators/event_decorator.rb
+1
-2
app/models/event.rb
app/models/event.rb
+13
-2
app/models/users_project.rb
app/models/users_project.rb
+1
-1
app/observers/users_project_observer.rb
app/observers/users_project_observer.rb
+9
-0
app/views/events/_event.html.haml
app/views/events/_event.html.haml
+2
-2
app/views/events/_event_membership_changed.html.haml
app/views/events/_event_membership_changed.html.haml
+1
-0
features/dashboard/dashboard.feature
features/dashboard/dashboard.feature
+7
-2
features/step_definitions/dashboard_steps.rb
features/step_definitions/dashboard_steps.rb
+10
-0
spec/models/event_spec.rb
spec/models/event_spec.rb
+12
-1
spec/observers/users_project_observer_spec.rb
spec/observers/users_project_observer_spec.rb
+19
-0
未找到文件。
app/decorators/event_decorator.rb
浏览文件 @
1f240b09
...
...
@@ -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
.
join
ed?
elsif
self
.
membership_chang
ed?
"
#{
self
.
author_name
}
#{
self
.
action_name
}
#{
self
.
project
.
name
}
"
else
""
end
...
...
app/models/event.rb
浏览文件 @
1f240b09
...
...
@@ -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?
||
join
ed?
push?
||
issue?
||
merge_request?
||
membership_chang
ed?
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
...
...
app/models/users_project.rb
浏览文件 @
1f240b09
...
...
@@ -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
.
de
lete
users_project
.
de
stroy
end
end
end
...
...
app/observers/users_project_observer.rb
浏览文件 @
1f240b09
...
...
@@ -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
app/views/events/_event.html.haml
浏览文件 @
1f240b09
...
...
@@ -11,7 +11,7 @@
.event_feed
=
render
"events/event_push"
,
event:
event
-
elsif
event
.
join
ed?
-
elsif
event
.
membership_chang
ed?
.event_feed
=
render
"events/event_
join
ed"
,
event:
event
=
render
"events/event_
membership_chang
ed"
,
event:
event
app/views/events/_event_
join
ed.html.haml
→
app/views/events/_event_
membership_chang
ed.html.haml
浏览文件 @
1f240b09
=
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
)
...
...
features/dashboard/dashboard.feature
浏览文件 @
1f240b09
...
...
@@ -15,9 +15,14 @@ Feature: Dashboard
And
I click
"Create Merge Request"
link
Then
I see prefilled new Merge Request page
@current
Scenario
:
I
should see User joined Project event
Given
user with name
"John Doe"
joined project
"Shop"
When
I visit dashboard page
Then
I should see
"John Doe joined Shop"
event
Then
I should see
"John Doe joined project Shop"
event
Scenario
:
I
should see User left Project event
Given
user with name
"John Doe"
joined project
"Shop"
And
user with name
"John Doe"
left project
"Shop"
When
I visit dashboard page
Then
I should see
"John Doe left project Shop"
event
features/step_definitions/dashboard_steps.rb
浏览文件 @
1f240b09
...
...
@@ -120,6 +120,16 @@ Given /^user with name "(.*?)" joined project "(.*?)"$/ do |user_name, project_n
)
end
Given
/^user with name "(.*?)" left project "(.*?)"$/
do
|
user_name
,
project_name
|
user
=
User
.
find_by_name
user_name
project
=
Project
.
find_by_name
project_name
Event
.
create
(
project:
project
,
author_id:
user
.
id
,
action:
Event
::
Left
)
end
Then
/^I should see "(.*?)" event$/
do
|
event_text
|
page
.
should
have_content
(
event_text
)
end
...
...
spec/models/event_spec.rb
浏览文件 @
1f240b09
...
...
@@ -50,7 +50,7 @@ describe Event do
it
{
@event
.
author
.
should
==
@user
}
end
describe
"
New team mamber
"
do
describe
"
Joined project team
"
do
let
(
:project
)
{
Factory
.
create
:project
}
let
(
:new_user
)
{
Factory
.
create
:user
}
it
"should create event"
do
...
...
@@ -60,4 +60,15 @@ describe Event do
}.
to
change
{
Event
.
count
}.
by
(
1
)
end
end
describe
"Left project team"
do
let
(
:project
)
{
Factory
.
create
:project
}
let
(
:new_user
)
{
Factory
.
create
:user
}
it
"should create event"
do
UsersProject
.
bulk_import
(
project
,
[
new_user
.
id
],
UsersProject
::
DEVELOPER
)
UsersProject
.
observers
.
enable
:users_project_observer
expect
{
UsersProject
.
bulk_delete
(
project
,
[
new_user
.
id
])
}.
to
change
{
Event
.
count
}.
by
(
1
)
end
end
end
spec/observers/users_project_observer_spec.rb
浏览文件 @
1f240b09
...
...
@@ -45,4 +45,23 @@ describe UsersProjectObserver do
subject
.
after_update
(
users_project
)
end
end
describe
"#after_destroy"
do
it
"should called when UsersProject destroyed"
do
subject
.
should_receive
(
:after_destroy
)
UsersProject
.
observers
.
enable
:users_project_observer
do
UsersProject
.
bulk_delete
(
users_project
.
project
,
[
users_project
.
user
.
id
]
)
end
end
it
"should create new event"
do
Event
.
should_receive
(
:create
).
with
(
project_id:
users_project
.
project
.
id
,
action:
Event
::
Left
,
author_id:
users_project
.
user
.
id
)
subject
.
after_destroy
(
users_project
)
end
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录