def latest_closed_reckonings_feed(request): try: syndicationFeed = Rss201rev2Feed(title = "The Reckoner! Finished Reckonings Feed!", link = "".join((settings.SITE_ROOT,"/finished-reckonings",)), description = "The freshest finished reckonings on The Reckoner! Check out the results!", subtitle = "The freshest finished reckonings on The Reckoner! Check out the results!", feed_url = "".join((settings.SITE_ROOT,"/feed/finished-reckonings",))) reckoning_response = client_get_closed_reckonings(sort_by="closingDate", ascending=False, page=0, size=15, session_id=request.user.session_id) if (reckoning_response.status.success): if (reckoning_response.reckonings): for reckoning in reckoning_response.reckonings: syndicationFeed.add_item(title=reckoning.question, link="".join((settings.SITE_ROOT,reckoning.getURL(),)), description=reckoning.description, pubdate=reckoning.closing_date, author_name="The Reckoner!", author_link=settings.SITE_ROOT) return HttpResponse(syndicationFeed.writeString("utf-8"), mimetype="text/xml") else: logger.error("Error from getting Closed Reckonings RSS feed: " + reckoning_response.status.message) except Exception: logger.error("Exception when showing and processing Closed Reckoning RSS Feed:") logger.error(traceback.print_exc(8)) raise Exception return HttpResponse("", mimetype="text/xml")
def home_page(request): errors={} try: if request.method == 'POST': if 'postvote' in request.POST: if (request.user.has_perm('VOTE')): if ('answer' in request.POST): errors.update(post_reckoning_vote(request)) reckoning = None user_vote = None highlighted_response = client_get_reckonings(sort_by="postingDate", page="0", size="1", highlighted=True, session_id=request.user.session_id) if (highlighted_response.reckonings): reckoning = computeReckoningAnswerPercentages(highlighted_response.reckonings[0]) user_vote = get_user_reckoning_vote(request, reckoning.id) recent_reckoning_response = client_get_open_reckonings(page="0", size="6", session_id=request.user.session_id) popular_reckoning_response = client_get_open_reckonings(sort_by="views", page="0", size="4", session_id=request.user.session_id) last_call_response = client_get_open_reckonings(sort_by="closingDate", ascending=True, page="0", size="4", session_id=request.user.session_id) recent_finished_response = client_get_closed_reckonings(sort_by="closingDate", ascending=False, page="0", size="4", session_id=request.user.session_id) c = RequestContext(request, {'reckoning' : reckoning, 'popular_reckonings' : popular_reckoning_response.reckonings, 'recent_reckonings' : recent_reckoning_response.reckonings, 'last_call_reckonings' : last_call_response.reckonings, 'finished_reckonings' : recent_finished_response.reckonings, 'user_vote' : user_vote, 'errors' : errors}) return render_to_response('index.html', c) except Exception: logger.error("Exception when rending home page:") logger.error(traceback.print_exc(8)) raise Exception
def createClosedReckoningSitemap(request): ''' Function responsible for returning Closed Reckoning URLs to be included in The Reckoner sitemap, as used for search engine traversal. Return value is a SiteMap object. ''' siteMapUrlList = [] # Closed Reckonings closed_reckonings_response = client_get_closed_reckonings(sort_by="postingDate", ascending=False, size=50000, session_id=request.user.session_id) if (closed_reckonings_response.status.success): for reckoning in closed_reckonings_response.reckonings: siteMapUrlList.append(SiteMapUrl(loc="".join((settings.SITE_ROOT,reckoning.getURL(),)), changefreq='monthly', priority='0.6')) return SiteMap(urls = siteMapUrlList)