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.

This commit is contained in:
Samuel Clay 2011-03-16 18:29:56 -04:00
parent 4569031e36
commit 8342741e07
6 changed files with 25 additions and 21 deletions

View file

@ -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))

View file

@ -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
}

View file

@ -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;

View file

@ -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, {

View file

@ -26,9 +26,9 @@ $(document).ready(function() {
</ul>
</div>
<div class="NB-modules-center" style="margin-left: {{ user.profile.feed_pane_size }}px">
{% if recommended_feed %}
{% render_recommended_feed recommended_feed %}
<div class="NB-modules-center" style="margin-left: {{ user_profile.feed_pane_size }}px">
{% if recommended_feeds %}
{% render_recommended_feed recommended_feeds %}
{% endif %}
</div>

View file

@ -2,8 +2,10 @@
<h5 class="NB-module-header">
Recommended Site
<div class="NB-module-header-right">
<a href="#" class="NB-module-direction NB-module-next-page NB-javascript {% if not has_next_page %}NB-disabled{% endif %}"></a>
<a href="#" class="NB-module-direction NB-module-previous-page {% if not has_previous_page %}NB-disabled{% endif %}"></a>
{% if has_next_page or has_previous_page %}
<a href="#" class="NB-module-direction NB-module-next-page NB-javascript {% if not has_next_page %}NB-disabled{% endif %}"></a>
<a href="#" class="NB-module-direction NB-module-previous-page {% if not has_previous_page %}NB-disabled{% endif %}"></a>
{% endif %}
<div class="NB-spinner NB-left"></div>
<div class="NB-module-recommended-date">
{{ recommended_feed.approved_date|date:"M j" }}