From 9a57aaaaa9b3c2c7a92832ef9abfd234a3559a0c Mon Sep 17 00:00:00 2001 From: Sam Date: Wed, 5 Jun 2013 11:22:47 +1000 Subject: [PATCH] fix encoding for category excerpt fix missing secure category topics in categories page --- .../templates/featured_topics.js.handlebars | 2 +- app/models/category_featured_topic.rb | 8 +++++++- app/serializers/listable_topic_serializer.rb | 1 + spec/models/category_featured_topic_spec.rb | 18 ++++++++++++++++++ 4 files changed, 27 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/discourse/templates/featured_topics.js.handlebars b/app/assets/javascripts/discourse/templates/featured_topics.js.handlebars index fb5ee8d5c35..685bfb51b25 100644 --- a/app/assets/javascripts/discourse/templates/featured_topics.js.handlebars +++ b/app/assets/javascripts/discourse/templates/featured_topics.js.handlebars @@ -31,7 +31,7 @@ {{#if hasExcerpt}}
- {{excerpt}} + {{{excerpt}}} {{#if excerptTruncated}} {{#unless canClearPin}}{{i18n read_more}}{{/unless}} {{/if}} diff --git a/app/models/category_featured_topic.rb b/app/models/category_featured_topic.rb index 2bd61439180..32165840d57 100644 --- a/app/models/category_featured_topic.rb +++ b/app/models/category_featured_topic.rb @@ -17,7 +17,13 @@ class CategoryFeaturedTopic < ActiveRecord::Base CategoryFeaturedTopic.transaction do CategoryFeaturedTopic.delete_all(category_id: c.id) - query = TopicQuery.new(nil, per_page: SiteSetting.category_featured_topics) + + # fake an admin + admin = User.new + admin.admin = true + admin.id = -1 + + query = TopicQuery.new(admin, per_page: SiteSetting.category_featured_topics) results = query.list_category(c) if results.present? results.topic_ids.each_with_index do |topic_id, idx| diff --git a/app/serializers/listable_topic_serializer.rb b/app/serializers/listable_topic_serializer.rb index b48448a24a4..c5718b31de9 100644 --- a/app/serializers/listable_topic_serializer.rb +++ b/app/serializers/listable_topic_serializer.rb @@ -56,6 +56,7 @@ class ListableTopicSerializer < BasicTopicSerializer end def excerpt + # excerpt should be hoisted into topic, this is an N+1 query ... yuck object.posts.by_post_number.first.try(:excerpt, 220, strip_links: true) || nil end diff --git a/spec/models/category_featured_topic_spec.rb b/spec/models/category_featured_topic_spec.rb index c327d66c0f1..f40577bbf00 100644 --- a/spec/models/category_featured_topic_spec.rb +++ b/spec/models/category_featured_topic_spec.rb @@ -5,5 +5,23 @@ describe CategoryFeaturedTopic do it { should belong_to :category } it { should belong_to :topic } + it "should feature topics for a secure category" do + + # so much dancing, I am thinking fixures make sense here. + user = Fabricate(:user) + user.change_trust_level!(:basic) + + category = Fabricate(:category) + category.deny(:all) + category.allow(Group[:trust_level_1]) + category.save + + post = PostCreator.create(user, raw: "this is my new post 123 post", title: "hello world") + + CategoryFeaturedTopic.feature_topics_for(category) + CategoryFeaturedTopic.count.should == 1 + + end + end