BUGFIX: Top page wasn't display any topics

This commit is contained in:
Régis Hanol 2014-01-07 00:37:14 +01:00
parent 6e2797112d
commit 871adc0b0f
3 changed files with 21 additions and 17 deletions

View File

@ -29,7 +29,6 @@ Discourse.TopController = Discourse.ObjectController.extend({
} else {
return true;
}
}.property(),
}.property()
});

View File

@ -1,6 +1,7 @@
Discourse.ListTopRoute = Discourse.Route.extend({
activate: function() {
this._super();
// will mark the "top" navigation item as selected
this.controllerFor('list').setProperties({
filterMode: 'top',
@ -8,8 +9,11 @@ Discourse.ListTopRoute = Discourse.Route.extend({
});
},
model: function() {
return Discourse.TopList.find();
setupController: function() {
var topController = this.controllerFor("top");
Discourse.TopList.find().then(function (result) {
topController.set("model", result);
});
},
renderTemplate: function() {
@ -17,6 +21,7 @@ Discourse.ListTopRoute = Discourse.Route.extend({
},
deactivate: function() {
this._super();
// Clear any filters when we leave the route
Discourse.URL.set('queryParams', null);
}

View File

@ -37,10 +37,10 @@ class TopTopic < ActiveRecord::Base
def self.update_posts_count_for(period)
sql = "SELECT topic_id, GREATEST(COUNT(*), 1) AS count
FROM posts p
WHERE p.created_at >= :from
AND p.deleted_at IS NULL
AND NOT p.hidden
FROM posts
WHERE created_at >= :from
AND deleted_at IS NULL
AND NOT hidden
AND post_type = #{Post.types[:regular]}
AND user_id <> #{Discourse.system_user.id}
GROUP BY topic_id"
@ -50,8 +50,8 @@ class TopTopic < ActiveRecord::Base
def self.update_views_count_for(period)
sql = "SELECT parent_id as topic_id, COUNT(*) AS count
FROM views v
WHERE v.viewed_at >= :from
FROM views
WHERE viewed_at >= :from
GROUP BY topic_id"
TopTopic.update_top_topics(period, "views", sql)
@ -59,10 +59,10 @@ class TopTopic < ActiveRecord::Base
def self.update_likes_count_for(period)
sql = "SELECT topic_id, GREATEST(SUM(like_count), 1) AS count
FROM posts p
WHERE p.created_at >= :from
AND p.deleted_at IS NULL
AND NOT p.hidden
FROM posts
WHERE created_at >= :from
AND deleted_at IS NULL
AND NOT hidden
GROUP BY topic_id"
TopTopic.update_top_topics(period, "likes", sql)
@ -71,9 +71,9 @@ class TopTopic < ActiveRecord::Base
def self.compute_top_score_for(period)
# log(views) + (posts * likes)
exec_sql("UPDATE top_topics
SET #{period}_score = CASE #{period}_views_count
WHEN 0 THEN 0
ELSE log(#{period}_views_count) + (#{period}_posts_count * #{period}_likes_count)
SET #{period}_score = CASE
WHEN #{period}_views_count = 0 THEN 0
ELSE log(#{period}_views_count) + (#{period}_posts_count * #{period}_likes_count)
END")
end