From 8342741e07e36ba3f43fe1e55dc367f794b91428 Mon Sep 17 00:00:00 2001 From: Samuel Clay Date: Wed, 16 Mar 2011 18:29:56 -0400 Subject: [PATCH] Recommended feeds all ready to go. Now updates feed live when adding and unread counts need to come in. Also handling cases of 0, 1, or > 1 recommend feeds and paging needs to be handled. --- apps/reader/views.py | 5 ++--- .../templatetags/recommendations_tags.py | 10 +++++----- media/css/reader.css | 4 ++-- media/js/newsblur/reader.js | 15 +++++++++------ templates/reader/feeds.xhtml | 6 +++--- .../recommendations/render_recommended_feed.xhtml | 6 ++++-- 6 files changed, 25 insertions(+), 21 deletions(-) diff --git a/apps/reader/views.py b/apps/reader/views.py index 7c84b528e..8feaaa0c8 100644 --- a/apps/reader/views.py +++ b/apps/reader/views.py @@ -67,8 +67,7 @@ def index(request): active_count = UserSubscription.objects.filter(user=request.user, active=True).count() train_count = UserSubscription.objects.filter(user=request.user, active=True, is_trained=False, feed__stories_last_month__gte=1).count() - recommended_feed = RecommendedFeed.objects.filter(is_public=True).select_related('feed') - if recommended_feed: recommended_feed = recommended_feed[0] + recommended_feeds = RecommendedFeed.objects.filter(is_public=True).select_related('feed') # recommended_feed_feedback = RecommendedFeedUserFeedback.objects.filter(recommendation=recommended_feed) howitworks_page = random.randint(0, 5) @@ -84,7 +83,7 @@ def index(request): 'active_count': active_count, 'train_count': active_count - train_count, 'account_images': range(1, 4), - 'recommended_feed': recommended_feed, + 'recommended_feeds': recommended_feeds, # 'recommended_feed_feedback': recommended_feed_feedback, }, context_instance=RequestContext(request)) diff --git a/apps/recommendations/templatetags/recommendations_tags.py b/apps/recommendations/templatetags/recommendations_tags.py index 3be364faf..aa07f0243 100644 --- a/apps/recommendations/templatetags/recommendations_tags.py +++ b/apps/recommendations/templatetags/recommendations_tags.py @@ -5,16 +5,16 @@ from utils.user_functions import get_user register = template.Library() @register.inclusion_tag('recommendations/render_recommended_feed.xhtml', takes_context=True) -def render_recommended_feed(context, recommended_feed): +def render_recommended_feed(context, recommended_feeds): user = get_user(context['user']) - usersub = UserSubscription.objects.filter(user=user, feed=recommended_feed.feed) + usersub = UserSubscription.objects.filter(user=user, feed=recommended_feeds[0].feed) - if recommended_feed.feed: + if recommended_feeds[0].feed: return { - 'recommended_feed': recommended_feed, + 'recommended_feed': recommended_feeds and recommended_feeds[0], 'usersub': usersub, 'user': context['user'], - 'has_next_page': True + 'has_next_page': len(recommended_feeds) > 1 } \ No newline at end of file diff --git a/media/css/reader.css b/media/css/reader.css index e047a871a..f2a98e001 100644 --- a/media/css/reader.css +++ b/media/css/reader.css @@ -3236,7 +3236,7 @@ background: transparent; margin-right: -12px; padding-right: 8px; - background: transparent url('../img/icons/silk/control_play_blue.png') no-repeat 4px center; + background: transparent url('../img/icons/silk/control_play.png') no-repeat 4px center; } .NB-module .NB-module-next-page.NB-javascript { opacity: .2; @@ -3253,7 +3253,7 @@ background: transparent; } .NB-module .NB-module-previous-page { padding-left: 4px; - background: transparent url('../img/icons/silk/control_play_left_blue.png') no-repeat 8px center; + background: transparent url('../img/icons/silk/control_play_left.png') no-repeat 8px center; } .NB-module .NB-module-previous-page:link { background: transparent url('../img/icons/silk/control_play_left.png') no-repeat 8px center; diff --git a/media/js/newsblur/reader.js b/media/js/newsblur/reader.js index 23296ab64..be79191fb 100644 --- a/media/js/newsblur/reader.js +++ b/media/js/newsblur/reader.js @@ -54,7 +54,9 @@ 'iframe_story_positions_keys': [], 'feed_view_story_positions_keys': [], 'river_feeds_with_unreads': [], - 'mouse_position_y': parseInt(this.model.preference('lock_mouse_indicator'), 10) + 'mouse_position_y': parseInt(this.model.preference('lock_mouse_indicator'), 10), + '$feed_in_feed_list': {}, + '$feed_counts_in_feed_list': {} }; this.FEED_REFRESH_INTERVAL = (1000 * 60) * 1; // 1 minute @@ -766,9 +768,6 @@ $('.NB-callout-ftux .NB-callout-text').text('Loading feeds...'); this.$s.$feed_link_loader.css({'display': 'block'}); this.model.load_feeds($.rescope(this.make_feeds, this)); - if (this.flags['showing_feed_in_tryfeed_view']) { - this.hide_tryfeed_view(); - } } }, @@ -814,6 +813,10 @@ _.delay(_.bind(this.update_starred_count, this), 250); } + if (this.flags['showing_feed_in_tryfeed_view']) { + this.hide_tryfeed_view(); + this.force_feed_refresh(); + } this.add_url_from_querystring(); }, @@ -1366,8 +1369,8 @@ 'feed_title_floater_feed_id': null, 'feed_title_floater_story_id': null, 'last_feed_view_story_feed_id': null, - $feed_in_feed_list: {}, - $feed_counts_in_feed_list: {} + '$feed_in_feed_list': {}, + '$feed_counts_in_feed_list': {} }); $.extend(this.counts, { diff --git a/templates/reader/feeds.xhtml b/templates/reader/feeds.xhtml index a9707df2d..43d424b27 100644 --- a/templates/reader/feeds.xhtml +++ b/templates/reader/feeds.xhtml @@ -26,9 +26,9 @@ $(document).ready(function() { -
- {% if recommended_feed %} - {% render_recommended_feed recommended_feed %} +
+ {% if recommended_feeds %} + {% render_recommended_feed recommended_feeds %} {% endif %}
diff --git a/templates/recommendations/render_recommended_feed.xhtml b/templates/recommendations/render_recommended_feed.xhtml index 08318c4ea..3e5c8192d 100644 --- a/templates/recommendations/render_recommended_feed.xhtml +++ b/templates/recommendations/render_recommended_feed.xhtml @@ -2,8 +2,10 @@
Recommended Site
- - + {% if has_next_page or has_previous_page %} + + + {% endif %}