From f62c421c91e82bcde6a208626b775ad605ac985b Mon Sep 17 00:00:00 2001 From: Neil Lalonde Date: Fri, 14 Jun 2013 11:18:27 -0400 Subject: [PATCH] Render category descriptions differently on the categories page --- .../templates/featured_topics.js.handlebars | 48 +++++++++++-------- .../application/topic-list.css.scss | 5 ++ app/models/category_featured_topic.rb | 2 +- .../category_detailed_serializer.rb | 5 ++ spec/models/category_featured_topic_spec.rb | 3 +- 5 files changed, 41 insertions(+), 22 deletions(-) diff --git a/app/assets/javascripts/discourse/templates/featured_topics.js.handlebars b/app/assets/javascripts/discourse/templates/featured_topics.js.handlebars index afc1a07b66c..8189782865d 100644 --- a/app/assets/javascripts/discourse/templates/featured_topics.js.handlebars +++ b/app/assets/javascripts/discourse/templates/featured_topics.js.handlebars @@ -13,34 +13,42 @@ {{i18n age}} + {{#if description_excerpt}} + + + {{{description_excerpt}}} + + + {{/if}} + {{#each topics}}
{{topicStatus topic=this}} {{{topicLink this}}} - {{#if unread}} - {{unbound unread}} - {{/if}} - {{#if new_posts}} - {{unbound new_posts}} - {{/if}} - {{#if unseen}} - - {{/if}} - {{#if hasExcerpt}} -
- {{{excerpt}}} - {{#if excerptTruncated}} - {{#unless canClearPin}}{{i18n read_more}}{{/unless}} - {{/if}} - {{#if canClearPin}} - {{i18n topic.clear_pin.title}} - {{/if}} -
- {{/if}} + {{#if unread}} + {{unbound unread}} + {{/if}} + {{#if new_posts}} + {{unbound new_posts}} + {{/if}} + {{#if unseen}} + + {{/if}} + {{#if hasExcerpt}} +
+ {{{excerpt}}} + {{#if excerptTruncated}} + {{#unless canClearPin}}{{i18n read_more}}{{/unless}} + {{/if}} + {{#if canClearPin}} + {{i18n topic.clear_pin.title}} + {{/if}} +
+ {{/if}}
{{number posts_count}} diff --git a/app/assets/stylesheets/application/topic-list.css.scss b/app/assets/stylesheets/application/topic-list.css.scss index c06854f5d77..a562f9700a0 100644 --- a/app/assets/stylesheets/application/topic-list.css.scss +++ b/app/assets/stylesheets/application/topic-list.css.scss @@ -54,6 +54,11 @@ vertical-align: top; margin-top: 2px; } + &.category-description { + td { + color: lighten($topic-list-td-color, 5%); + } + } } th, td { diff --git a/app/models/category_featured_topic.rb b/app/models/category_featured_topic.rb index 32165840d57..4e7b55078e1 100644 --- a/app/models/category_featured_topic.rb +++ b/app/models/category_featured_topic.rb @@ -23,7 +23,7 @@ class CategoryFeaturedTopic < ActiveRecord::Base admin.admin = true admin.id = -1 - query = TopicQuery.new(admin, per_page: SiteSetting.category_featured_topics) + query = TopicQuery.new(admin, per_page: SiteSetting.category_featured_topics, except_topic_id: c.topic_id) results = query.list_category(c) if results.present? results.topic_ids.each_with_index do |topic_id, idx| diff --git a/app/serializers/category_detailed_serializer.rb b/app/serializers/category_detailed_serializer.rb index a11ae6b971c..2d8841f4723 100644 --- a/app/serializers/category_detailed_serializer.rb +++ b/app/serializers/category_detailed_serializer.rb @@ -10,6 +10,7 @@ class CategoryDetailedSerializer < ApplicationSerializer :topics_month, :topics_year, :description, + :description_excerpt, :is_uncategorized has_many :featured_users, serializer: BasicUserSerializer @@ -39,4 +40,8 @@ class CategoryDetailedSerializer < ApplicationSerializer return displayable_topics.present? end + def description_excerpt + PrettyText.excerpt(description,300) if description + end + end diff --git a/spec/models/category_featured_topic_spec.rb b/spec/models/category_featured_topic_spec.rb index f40577bbf00..6baa36e97d1 100644 --- a/spec/models/category_featured_topic_spec.rb +++ b/spec/models/category_featured_topic_spec.rb @@ -16,7 +16,8 @@ describe CategoryFeaturedTopic do category.allow(Group[:trust_level_1]) category.save - post = PostCreator.create(user, raw: "this is my new post 123 post", title: "hello world") + uncategorized_post = PostCreator.create(user, raw: "this is my new post 123 post", title: "hello world") + category_post = PostCreator.create(user, raw: "I put this post in the category", title: "categorize THIS", category: category.name) CategoryFeaturedTopic.feature_topics_for(category) CategoryFeaturedTopic.count.should == 1