Patch #30421 » add-issue-tracking-table-on-profile-page.diff
| app/controllers/users_controller.rb (working copy) | ||
|---|---|---|
| 78 | 78 |
# show projects based on current user visibility |
| 79 | 79 |
@memberships = @user.memberships.preload(:roles, :project).where(Project.visible_condition(User.current)).to_a |
| 80 | 80 | |
| 81 |
@issue_counts = {}
|
|
| 82 |
@issue_counts[:assigned] = {
|
|
| 83 |
:total => Issue.visible.assigned_to(@user).count, |
|
| 84 |
:open => Issue.visible.open.assigned_to(@user).count |
|
| 85 |
} |
|
| 86 |
@issue_counts[:reported] = {
|
|
| 87 |
:total => Issue.visible.where(:author_id => @user.id).count, |
|
| 88 |
:open => Issue.visible.open.where(:author_id => @user.id).count |
|
| 89 |
} |
|
| 90 | ||
| 81 | 91 |
respond_to do |format| |
| 82 | 92 |
format.html {
|
| 83 | 93 |
events = Redmine::Activity::Fetcher.new(User.current, :author => @user).events(nil, nil, :limit => 10) |
| app/views/users/show.html.erb (working copy) | ||
|---|---|---|
| 23 | 23 |
</ul> |
| 24 | 24 | |
| 25 | 25 |
<h3><%=l(:label_issue_plural)%></h3> |
| 26 |
<ul> |
|
| 27 |
<li><%= link_to l(:label_assigned_issues), |
|
| 28 |
issues_path(:set_filter => 1, :assigned_to_id => ([@user.id] + @user.group_ids).join("|"), :sort => 'priority:desc,updated_on:desc') %>:
|
|
| 29 |
<%= Issue.visible.open.assigned_to(@user).count %> |
|
| 30 |
<li><%= link_to l(:label_reported_issues), |
|
| 31 |
issues_path(:set_filter => 1, :status_id => '*', :author_id => @user.id) %>: |
|
| 32 |
<%= Issue.visible.where(:author_id => @user.id).count %> |
|
| 33 |
</ul> |
|
| 34 | 26 | |
| 27 |
<table class="list issue-report"> |
|
| 28 |
<thead> |
|
| 29 |
<tr> |
|
| 30 |
<th></th> |
|
| 31 |
<th><%=l(:label_open_issues_plural)%></th> |
|
| 32 |
<th><%=l(:label_closed_issues_plural)%></th> |
|
| 33 |
<th><%=l(:label_total)%></th> |
|
| 34 |
</tr> |
|
| 35 |
</thead> |
|
| 36 |
<tbody> |
|
| 37 |
<% assigned_to_ids = ([@user.id] + @user.group_ids).join("|") %>
|
|
| 38 |
<% sort_cond = 'priority:desc,updated_on:desc' %> |
|
| 39 |
<tr> |
|
| 40 |
<td class="name"> |
|
| 41 |
<%= link_to l(:label_assigned_issues), |
|
| 42 |
issues_path(:set_filter => 1, :assigned_to_id => assigned_to_ids, :sort => sort_cond) %> |
|
| 43 |
</td> |
|
| 44 |
<td> |
|
| 45 |
<%= link_to @issue_counts[:assigned][:open], |
|
| 46 |
issues_path(:set_filter => 1, :assigned_to_id => assigned_to_ids, :sort => sort_cond) %> |
|
| 47 |
</td> |
|
| 48 |
<td> |
|
| 49 |
<%= link_to @issue_counts[:assigned][:total] - @issue_counts[:assigned][:open], |
|
| 50 |
issues_path(:set_filter => 1, :status_id => 'c', :assigned_to_id => assigned_to_ids, :sort => sort_cond) %> |
|
| 51 |
</td> |
|
| 52 |
<td class="total"> |
|
| 53 |
<%= link_to @issue_counts[:assigned][:total], |
|
| 54 |
issues_path(:set_filter => 1, :status_id => '*', :assigned_to_id => assigned_to_ids, :sort => sort_cond) %> |
|
| 55 |
</td> |
|
| 56 |
</tr> |
|
| 57 |
<tr> |
|
| 58 |
<td class="name"> |
|
| 59 |
<%= link_to l(:label_reported_issues), |
|
| 60 |
issues_path(:set_filter => 1, :author_id => @user.id, :sort => sort_cond) %> |
|
| 61 |
</td> |
|
| 62 |
<td> |
|
| 63 |
<%= link_to @issue_counts[:reported][:open], |
|
| 64 |
issues_path(:set_filter => 1, :author_id => @user.id, :sort => sort_cond) %> |
|
| 65 |
</td> |
|
| 66 |
<td> |
|
| 67 |
<%= link_to @issue_counts[:reported][:total] - @issue_counts[:reported][:open], |
|
| 68 |
issues_path(:set_filter => 1, :status_id => 'c', :author_id => @user.id, :sort => sort_cond) %> |
|
| 69 |
</td> |
|
| 70 |
<td class="total"> |
|
| 71 |
<%= link_to @issue_counts[:reported][:total], |
|
| 72 |
issues_path(:set_filter => 1, :status_id => '*', :author_id => @user.id, :sort => sort_cond) %> |
|
| 73 |
</td> |
|
| 74 |
</tr> |
|
| 75 |
</tbody> |
|
| 76 |
</table> |
|
| 77 | ||
| 35 | 78 |
<% unless @memberships.empty? %> |
| 36 | 79 |
<h3><%=l(:label_project_plural)%></h3> |
| 37 | 80 |
<ul> |
| test/functional/users_controller_test.rb (working copy) | ||
|---|---|---|
| 185 | 185 |
assert_select 'h2', :text => /John Smith/ |
| 186 | 186 |
end |
| 187 | 187 | |
| 188 |
def test_show_issues_counts |
|
| 189 |
@request.session[:user_id] = 2 |
|
| 190 |
get :show, :params => {:id => 2}
|
|
| 191 |
assert_select 'table.list.issue-report>tbody' do |
|
| 192 |
assert_select 'tr:nth-of-type(1)' do |
|
| 193 |
assert_select 'td:nth-of-type(1)>a', :text => 'Assigned issues' |
|
| 194 |
assert_select 'td:nth-of-type(2)>a', :text => '1' |
|
| 195 |
assert_select 'td:nth-of-type(3)>a', :text => '0' |
|
| 196 |
assert_select 'td:nth-of-type(4)>a', :text => '1' |
|
| 197 |
end |
|
| 198 |
assert_select 'tr:nth-of-type(2)' do |
|
| 199 |
assert_select 'td:nth-of-type(1)>a', :text => 'Reported issues' |
|
| 200 |
assert_select 'td:nth-of-type(2)>a', :text => '11' |
|
| 201 |
assert_select 'td:nth-of-type(3)>a', :text => '2' |
|
| 202 |
assert_select 'td:nth-of-type(4)>a', :text => '13' |
|
| 203 |
end |
|
| 204 |
end |
|
| 205 |
end |
|
| 206 | ||
| 188 | 207 |
def test_new |
| 189 | 208 |
get :new |
| 190 | 209 |
assert_response :success |
- « Previous
- 1
- 2
- 3
- Next »