diff --git a/app/assets/javascripts/discourse/components/directory-toggle.js.es6 b/app/assets/javascripts/discourse/components/directory-toggle.js.es6
index 3b6b35c96c9..f0e0192e178 100644
--- a/app/assets/javascripts/discourse/components/directory-toggle.js.es6
+++ b/app/assets/javascripts/discourse/components/directory-toggle.js.es6
@@ -4,8 +4,14 @@ import { iconHTML } from 'discourse/helpers/fa-icon';
export default Ember.Component.extend(StringBuffer, {
tagName: 'th',
classNames: ['sortable'],
+ attributeBindings: ['title'],
rerenderTriggers: ['order', 'asc'],
+ title: function() {
+ const labelKey = 'directory.' + this.get('field');
+ return I18n.t(labelKey + '_long', { defaultValue: I18n.t(labelKey) });
+ }.property('field'),
+
renderString(buffer) {
const icon = this.get('icon');
diff --git a/app/assets/javascripts/discourse/templates/users.hbs b/app/assets/javascripts/discourse/templates/users.hbs
index 83d9e8993f7..58a20209e0c 100644
--- a/app/assets/javascripts/discourse/templates/users.hbs
+++ b/app/assets/javascripts/discourse/templates/users.hbs
@@ -18,6 +18,8 @@
{{directory-toggle field="topic_count" order=order asc=asc}}
{{directory-toggle field="post_count" order=order asc=asc}}
{{directory-toggle field="topics_entered" order=order asc=asc}}
+ {{directory-toggle field="posts_read" order=order asc=asc}}
+ {{directory-toggle field="days_visited" order=order asc=asc}}
{{#if showTimeRead}}
{{i18n "directory.time_read"}} |
{{/if}}
@@ -31,6 +33,8 @@
{{number item.model.topic_count}} |
{{number item.model.post_count}} |
{{number item.model.topics_entered}} |
+ {{number item.model.posts_read}} |
+ {{number item.model.days_visited}} |
{{#if showTimeRead}}
{{unbound item.model.time_read}} |
{{/if}}
diff --git a/app/models/directory_item.rb b/app/models/directory_item.rb
index 0c9e5d67569..0597e7174e6 100644
--- a/app/models/directory_item.rb
+++ b/app/models/directory_item.rb
@@ -7,7 +7,9 @@ class DirectoryItem < ActiveRecord::Base
:likes_given,
:topics_entered,
:topic_count,
- :post_count]
+ :post_count,
+ :posts_read,
+ :days_visited]
end
def self.period_types
@@ -31,13 +33,15 @@ class DirectoryItem < ActiveRecord::Base
end
exec_sql "INSERT INTO directory_items
- (period_type, user_id, likes_received, likes_given, topics_entered, topic_count, post_count)
+ (period_type, user_id, likes_received, likes_given, topics_entered, days_visited, posts_read, topic_count, post_count)
SELECT
:period_type,
u.id,
SUM(CASE WHEN ua.action_type = :was_liked_type THEN 1 ELSE 0 END),
SUM(CASE WHEN ua.action_type = :like_type THEN 1 ELSE 0 END),
- (SELECT COUNT(topic_id) FROM topic_views AS v WHERE v.user_id = u.id AND v.viewed_at > :since),
+ COALESCE((SELECT COUNT(topic_id) FROM topic_views AS v WHERE v.user_id = u.id AND v.viewed_at >= :since), 0),
+ COALESCE((SELECT COUNT(id) FROM user_visits AS uv WHERE uv.user_id = u.id AND uv.visited_at >= :since), 0),
+ COALESCE((SELECT SUM(posts_read) FROM user_visits AS uv2 WHERE uv2.user_id = u.id AND uv2.visited_at >= :since), 0),
SUM(CASE WHEN ua.action_type = :new_topic_type THEN 1 ELSE 0 END),
SUM(CASE WHEN ua.action_type = :reply_type THEN 1 ELSE 0 END)
FROM users AS u
diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml
index d572ba63ec5..0f1a90ce619 100644
--- a/config/locales/client.en.yml
+++ b/config/locales/client.en.yml
@@ -242,11 +242,18 @@ en:
title: "Users"
likes_given: "Given"
likes_received: "Received"
- topics_entered: "Topics Entered"
+ topics_entered: "Entered"
+ topics_entered_long: "Topics Entered"
time_read: "Time Read"
topic_count: "Topics"
+ topic_count_long: "Topics Created"
post_count: "Replies"
+ post_count_long: "Replies Posted"
no_results: "No results were found."
+ days_visited: "Visits"
+ days_visited_long: "Days Visited"
+ posts_read: "Read"
+ posts_read_long: "Posts Read"
total_rows:
one: "1 user"
other: "%{count} users"
diff --git a/db/migrate/20150324184222_add_more_to_directory_items.rb b/db/migrate/20150324184222_add_more_to_directory_items.rb
new file mode 100644
index 00000000000..efc7e9477fd
--- /dev/null
+++ b/db/migrate/20150324184222_add_more_to_directory_items.rb
@@ -0,0 +1,6 @@
+class AddMoreToDirectoryItems < ActiveRecord::Migration
+ def change
+ add_column :directory_items, :days_visited, :integer, null: false, default: 0
+ add_column :directory_items, :posts_read, :integer, null: false, default: 0
+ end
+end