mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-09-18 21:50:56 +00:00
Adding a subscribed note in recommended feeds.
This commit is contained in:
parent
152cdcac56
commit
2e437fcee1
6 changed files with 65 additions and 20 deletions
|
@ -17,7 +17,7 @@ from django.core.mail import mail_admins
|
|||
from collections import defaultdict
|
||||
from operator import itemgetter
|
||||
from mongoengine.queryset import OperationError
|
||||
from apps.recommendations.models import RecommendedFeed, RecommendedFeedUserFeedback
|
||||
from apps.recommendations.models import RecommendedFeed
|
||||
from apps.analyzer.models import MClassifierTitle, MClassifierAuthor, MClassifierFeed, MClassifierTag
|
||||
from apps.analyzer.models import apply_classifier_titles, apply_classifier_feeds, apply_classifier_authors, apply_classifier_tags
|
||||
from apps.analyzer.models import get_classifiers_for_user
|
||||
|
@ -67,8 +67,9 @@ 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)[0]
|
||||
recommended_feed_feedback = RecommendedFeedUserFeedback.objects.filter(recommendation=recommended_feed)
|
||||
recommended_feed = RecommendedFeed.objects.filter(is_public=True).select_related('feed')
|
||||
if recommended_feed: recommended_feed = recommended_feed[0]
|
||||
# recommended_feed_feedback = RecommendedFeedUserFeedback.objects.filter(recommendation=recommended_feed)
|
||||
|
||||
howitworks_page = random.randint(0, 5)
|
||||
return render_to_response('reader/feeds.xhtml', {
|
||||
|
@ -84,7 +85,7 @@ def index(request):
|
|||
'train_count': active_count - train_count,
|
||||
'account_images': range(1, 4),
|
||||
'recommended_feed': recommended_feed,
|
||||
'recommended_feed_feedback': recommended_feed_feedback,
|
||||
# 'recommended_feed_feedback': recommended_feed_feedback,
|
||||
}, context_instance=RequestContext(request))
|
||||
|
||||
@never_cache
|
||||
|
|
|
@ -1,10 +1,18 @@
|
|||
from django import template
|
||||
from apps.reader.models import UserSubscription
|
||||
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):
|
||||
return {
|
||||
'recommended_feed': recommended_feed,
|
||||
'user': context['user'],
|
||||
}
|
||||
user = get_user(context['user'])
|
||||
|
||||
usersub = UserSubscription.objects.filter(user=user, feed=recommended_feed.feed)
|
||||
|
||||
if recommended_feed.feed:
|
||||
return {
|
||||
'recommended_feed': recommended_feed,
|
||||
'usersub': usersub,
|
||||
'user': context['user'],
|
||||
}
|
|
@ -3425,7 +3425,7 @@ background: transparent;
|
|||
/* ============================ */
|
||||
|
||||
.NB-module-recommended {
|
||||
|
||||
overflow: hidden;
|
||||
}
|
||||
.NB-module-recommended .NB-module-recommended-date {
|
||||
line-height: 14px;
|
||||
|
@ -3443,13 +3443,20 @@ background: transparent;
|
|||
.NB-module-recommended .NB-recommended {
|
||||
padding: 0 12px;
|
||||
}
|
||||
|
||||
.NB-module-recommended .NB-javascript.NB-module-direction,
|
||||
.NB-module-recommended .NB-javascript.NB-modal-submit-button,
|
||||
.NB-module-recommended .NB-javascript.NB-recommended-statistics,
|
||||
.NB-module-recommended .NB-javascript.NB-recommended-intelligence {
|
||||
opacity: .2;
|
||||
}
|
||||
.NB-module-recommended .NB-recommended-intelligence {
|
||||
margin: 2px 8px 0 0;
|
||||
float: right;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
cursor: pointer;
|
||||
background: transparent url(http://nb.local.host:8000/media/img/icons/silk/bricks.png) no-repeat 50% 50%;
|
||||
background: transparent url(../img/icons/silk/bricks.png) no-repeat 50% 50%;
|
||||
}
|
||||
.NB-module-recommended .NB-recommended-statistics {
|
||||
margin: 2px 0 0 0;
|
||||
|
@ -3457,7 +3464,7 @@ background: transparent;
|
|||
width: 16px;
|
||||
height: 16px;
|
||||
cursor: pointer;
|
||||
background: transparent url(http://nb.local.host:8000/media/img/icons/silk/chart_curve.png) no-repeat 50% 50%;
|
||||
background: transparent url(../img/icons/silk/chart_curve.png) no-repeat 50% 50%;
|
||||
}
|
||||
.NB-module-recommended .NB-recommended-favicon {
|
||||
float: left;
|
||||
|
@ -3474,6 +3481,7 @@ background: transparent;
|
|||
color: #505050;
|
||||
padding-bottom: 8px;
|
||||
border-bottom: 1px solid #E0E0E0;
|
||||
overflow: hidden;
|
||||
}
|
||||
.NB-module-recommended .NB-modal-submit {
|
||||
margin: 8px 0 0 0;
|
||||
|
@ -3490,6 +3498,14 @@ background: transparent;
|
|||
margin-left: 0 !important;
|
||||
margin-right: 8px !important;
|
||||
}
|
||||
.NB-module-recommended .NB-recommended-added {
|
||||
padding: 6px 0 0 20px;
|
||||
background: transparent url('../img/icons/silk/accept.png') no-repeat 0 6px;
|
||||
font-size: 12px;
|
||||
font-weight: bold;
|
||||
color: #123B00;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/* ========= */
|
||||
/* = Menus = */
|
||||
|
|
|
@ -28,7 +28,8 @@
|
|||
$starred_header: $('.NB-feeds-header-starred'),
|
||||
$river_header: $('.NB-feeds-header-river'),
|
||||
$taskbar: $('.taskbar_nav'),
|
||||
$feed_floater: $('.NB-feed-story-view-floater')
|
||||
$feed_floater: $('.NB-feed-story-view-floater'),
|
||||
$recommended_feeds: $('.NB-module-recommended')
|
||||
};
|
||||
this.flags = {
|
||||
'feed_view_images_loaded': {},
|
||||
|
@ -72,7 +73,6 @@
|
|||
// = Initialization =
|
||||
// ==================
|
||||
|
||||
|
||||
this.unload_feed_iframe();
|
||||
this.unload_story_iframe();
|
||||
this.apply_resizable_layout();
|
||||
|
@ -92,6 +92,7 @@
|
|||
this.apply_story_styling();
|
||||
this.apply_tipsy_titles();
|
||||
this.add_url_from_querystring();
|
||||
this.load_recommended_feeds();
|
||||
};
|
||||
|
||||
NEWSBLUR.Reader.prototype = {
|
||||
|
@ -4707,6 +4708,18 @@
|
|||
}
|
||||
},
|
||||
|
||||
// =====================
|
||||
// = Recommended Feeds =
|
||||
// =====================
|
||||
|
||||
load_recommended_feeds: function() {
|
||||
var $module = this.$s.$recommended_feeds;
|
||||
$('.NB-javascript', $module).removeClass('NB-javascript');
|
||||
// _.delay(function() {
|
||||
// $('.NB-javascript', $module).animate({'opacity': 1}, {'duration': 1000, 'queue': false});
|
||||
// }, 1500);
|
||||
},
|
||||
|
||||
// ==========
|
||||
// = Events =
|
||||
// ==========
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<h5 class="NB-module-header">
|
||||
Recommended Site
|
||||
<div class="NB-module-header-right">
|
||||
<a href="#" class="NB-module-direction NB-module-next-page"></a>
|
||||
<a href="#" class="NB-module-direction NB-module-next-page NB-javascript"></a>
|
||||
<a href="#" class="NB-module-direction NB-module-previous-page NB-disabled"></a>
|
||||
<div class="NB-module-recommended-date">
|
||||
{{ recommended_feed.approved_date|date:"M j" }}
|
||||
|
@ -13,8 +13,8 @@
|
|||
</h5>
|
||||
|
||||
<div class="NB-recommended">
|
||||
<div class="NB-recommended-statistics"></div>
|
||||
<div class="NB-recommended-intelligence"></div>
|
||||
<div class="NB-recommended-statistics NB-javascript"></div>
|
||||
<div class="NB-recommended-intelligence NB-javascript"></div>
|
||||
<img class="NB-recommended-favicon" src="data:image/png;base64,{{ recommended_feed.feed.icon.data }}" />
|
||||
<div class="NB-recommended-title">{{ recommended_feed.feed.feed_title }}</div>
|
||||
{# <div class="NB-recommended-link">{{ recommended_feed.feed.feed_link }}</div> #}
|
||||
|
@ -25,8 +25,12 @@
|
|||
<br />
|
||||
<b>{{ recommended_feed.feed.average_stories_per_month }}</b> {{ recommended_feed.feed.average_stories_per_month|pluralize:"story,stories" }} per month
|
||||
</div>
|
||||
<div class="NB-recommended-try NB-modal-submit-green NB-modal-submit-button">Try</div>
|
||||
<div class="NB-recommended-add NB-modal-submit-close NB-modal-submit-button">Add</div>
|
||||
{% if usersub %}
|
||||
<div class="NB-recommended-added">Subscribed</div>
|
||||
{% else %}
|
||||
<div class="NB-recommended-try NB-modal-submit-green NB-modal-submit-button NB-javascript">Try</div>
|
||||
<div class="NB-recommended-add NB-modal-submit-close NB-modal-submit-button NB-javascript">Add</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -28,9 +28,12 @@ def ajax_login_required(function=None):
|
|||
return _dec(function)
|
||||
|
||||
def get_user(request):
|
||||
if request.user.is_authenticated():
|
||||
user = request.user
|
||||
if not hasattr(request, 'user'):
|
||||
user = request
|
||||
else:
|
||||
user = request.user
|
||||
|
||||
if user.is_anonymous():
|
||||
user = cache.get('user:%s' % DEFAULT_USER, None)
|
||||
if not user:
|
||||
user = User.objects.get(username=DEFAULT_USER)
|
||||
|
|
Loading…
Add table
Reference in a new issue