2011-04-09 11:13:02 -04:00
|
|
|
import datetime
|
2011-03-13 16:24:49 -04:00
|
|
|
from utils import log as logging
|
2011-03-19 18:35:44 -04:00
|
|
|
from django.http import HttpResponse
|
2011-03-13 16:24:49 -04:00
|
|
|
from django.template import RequestContext
|
2011-04-07 10:30:05 -04:00
|
|
|
from django.shortcuts import render_to_response, get_object_or_404
|
2011-03-13 16:24:49 -04:00
|
|
|
from apps.recommendations.models import RecommendedFeed
|
|
|
|
from apps.reader.models import UserSubscription
|
2011-04-07 10:30:05 -04:00
|
|
|
from apps.rss_feeds.models import Feed
|
|
|
|
from utils import json_functions as json
|
|
|
|
from utils.user_functions import get_user, ajax_login_required
|
2011-03-13 16:24:49 -04:00
|
|
|
|
|
|
|
|
|
|
|
def load_recommended_feed(request):
|
|
|
|
user = get_user(request)
|
|
|
|
page = int(request.REQUEST.get('page', 0))
|
|
|
|
usersub = None
|
2011-04-09 11:13:02 -04:00
|
|
|
refresh = request.REQUEST.get('refresh')
|
|
|
|
now = datetime.datetime.now
|
2011-03-13 16:24:49 -04:00
|
|
|
|
2011-04-09 11:13:02 -04:00
|
|
|
recommended_feeds = RecommendedFeed.objects.filter(is_public=True, approved_date__lte=now)[page:page+2]
|
2011-03-22 19:30:50 -04:00
|
|
|
if recommended_feeds and request.user.is_authenticated():
|
2011-03-13 16:24:49 -04:00
|
|
|
usersub = UserSubscription.objects.filter(user=user, feed=recommended_feeds[0].feed)
|
2011-04-09 11:13:02 -04:00
|
|
|
if refresh != 'true':
|
2011-03-20 20:16:28 -04:00
|
|
|
logging.user(request.user, "~FBBrowse recommended feed: ~SBPage #%s" % (page+1))
|
2011-03-13 16:24:49 -04:00
|
|
|
|
2011-03-16 19:20:38 -04:00
|
|
|
recommended_feed = recommended_feeds and recommended_feeds[0]
|
|
|
|
|
|
|
|
if recommended_feed:
|
|
|
|
return render_to_response('recommendations/render_recommended_feed.xhtml', {
|
|
|
|
'recommended_feed' : recommended_feed,
|
|
|
|
'description' : recommended_feed.description or recommended_feed.feed.data.feed_tagline,
|
|
|
|
'usersub' : usersub,
|
|
|
|
'has_next_page' : len(recommended_feeds) > 1,
|
|
|
|
'has_previous_page' : page != 0,
|
2011-03-19 18:35:44 -04:00
|
|
|
}, context_instance=RequestContext(request))
|
|
|
|
else:
|
2011-04-07 10:30:05 -04:00
|
|
|
return HttpResponse("")
|
|
|
|
|
|
|
|
@json.json_view
|
2011-04-24 14:13:01 -04:00
|
|
|
def load_feed_info(request, feed_id):
|
2011-04-07 10:30:05 -04:00
|
|
|
feed = get_object_or_404(Feed, pk=feed_id)
|
|
|
|
previous_recommendation = None
|
2011-04-24 14:13:01 -04:00
|
|
|
if request.user.is_authenticated():
|
|
|
|
recommended_feed = RecommendedFeed.objects.filter(user=request.user, feed=feed)
|
|
|
|
if recommended_feed:
|
|
|
|
previous_recommendation = recommended_feed[0].created_date
|
2011-04-07 10:30:05 -04:00
|
|
|
|
|
|
|
return {
|
2011-04-07 10:36:25 -04:00
|
|
|
'subscriber_count': feed.num_subscribers,
|
2011-04-07 10:30:05 -04:00
|
|
|
'tagline': feed.data.feed_tagline,
|
|
|
|
'previous_recommendation': previous_recommendation
|
|
|
|
}
|
|
|
|
|
|
|
|
@ajax_login_required
|
|
|
|
@json.json_view
|
|
|
|
def save_recommended_feed(request):
|
|
|
|
feed_id = request.POST['feed_id']
|
|
|
|
feed = get_object_or_404(Feed, pk=int(feed_id))
|
|
|
|
tagline = request.POST['tagline']
|
|
|
|
twitter = request.POST.get('twitter')
|
|
|
|
code = 1
|
|
|
|
|
|
|
|
recommended_feed, created = RecommendedFeed.objects.get_or_create(
|
|
|
|
feed=feed,
|
|
|
|
user=request.user,
|
|
|
|
defaults=dict(
|
|
|
|
description=tagline,
|
|
|
|
twitter=twitter
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
return dict(code=code if created else -1)
|