Skip to content

Commit

Permalink
FEATURE: show added date when looking at group members
Browse files Browse the repository at this point in the history
  • Loading branch information
SamSaffron committed Nov 1, 2018
1 parent aa04462 commit ceafcbc
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 3 deletions.
5 changes: 4 additions & 1 deletion app/assets/javascripts/discourse/templates/group-index.hbs
Expand Up @@ -25,6 +25,7 @@
<thead>
{{group-index-toggle order=order desc=desc field='username_lower' i18nKey='username'}}
<th class='group-owner'>{{i18n "groups.members.owner"}}</th>
{{group-index-toggle order=order desc=desc field='added_at' i18nKey='groups.member_added'}}
{{group-index-toggle order=order desc=desc field='last_posted_at' i18nKey='last_post'}}
{{group-index-toggle order=order desc=desc field='last_seen_at' i18nKey='last_seen'}}
<th></th>
Expand All @@ -44,7 +45,9 @@
</strong>
{{/if}}
</td>

<td>
<span class="text">{{bound-date m.added_at}}</span>
</td>
<td>
<span class="text">{{bound-date m.last_posted_at}}</span>
</td>
Expand Down
4 changes: 4 additions & 0 deletions app/controllers/groups_controller.rb
Expand Up @@ -216,6 +216,8 @@ def members

if params[:order] && %w{last_posted_at last_seen_at}.include?(params[:order])
order = "#{params[:order]} #{dir} NULLS LAST"
elsif params[:order] == 'added_at'
order = "group_users.created_at #{dir}"
end

users = group.users.human_users
Expand All @@ -231,6 +233,8 @@ def members
end
end

users = users.select('users.*, group_users.created_at as added_at')

members = users
.order('NOT group_users.owner')
.order(order)
Expand Down
6 changes: 5 additions & 1 deletion app/serializers/group_user_serializer.rb
@@ -1,3 +1,7 @@
class GroupUserSerializer < BasicUserSerializer
attributes :name, :title, :last_posted_at, :last_seen_at
attributes :name, :title, :last_posted_at, :last_seen_at, :added_at

def include_added_at
object.respond_to? :added_at
end
end
1 change: 1 addition & 0 deletions config/locales/client.en.yml
Expand Up @@ -413,6 +413,7 @@ en:
remove_user_as_group_owner: "Revoke owner"

groups:
member_added: "Added"
add_members:
title: "Add Members"
description: "Manage the membership of this group"
Expand Down
15 changes: 14 additions & 1 deletion spec/requests/groups_controller_spec.rb
Expand Up @@ -360,7 +360,15 @@ def expect_type_to_return_right_groups(type, expected_group_ids)
end

it "ensures that membership can be paginated" do
5.times { group.add(Fabricate(:user)) }

freeze_time

first_user = Fabricate(:user)
group.add(first_user)

freeze_time 1.day.from_now

4.times { group.add(Fabricate(:user)) }
usernames = group.users.map { |m| m.username }.sort

get "/groups/#{group.name}/members.json", params: { limit: 3 }
Expand All @@ -378,6 +386,11 @@ def expect_type_to_return_right_groups(type, expected_group_ids)
members = JSON.parse(response.body)["members"]

expect(members.map { |m| m['username'] }).to eq(usernames[3..5])

get "/groups/#{group.name}/members.json", params: { order: 'added_at', desc: true }
members = JSON.parse(response.body)["members"]

expect(members.last['added_at']).to eq(first_user.created_at.as_json)
end
end

Expand Down

1 comment on commit ceafcbc

@discoursebot
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This commit has been mentioned on Discourse Meta. There might be relevant details there:

https://meta.discourse.org/t/add-a-sortable-group-join-date-and-options-to-hide-group-detail-page-items/100826/4

Please sign in to comment.