def render(self, context): ctype = ContentType.objects.get_for_model(self.obj.resolve(context)) tags = object_pk=self.obj.resolve(context).tagscorekeeper_set.all() tags_by_score = choose_by_score(tags)[:20] top_tags = [(TagScoreKeeper.objects.get(pk=tag_id), score) for tag_id, score in tags_by_score] context[self.var_name] = top_tags return ''
def index(request, tag_name=None, sort_by="lotto", page_num=1): #link_list = Link.objects.filter(date_submitted__gte=(datetime.now() - timedelta(hours=24))).annotate(score=SumWithDefault('votes__vote', default=0)).order_by('-score') page_num = int(page_num) start_rank = (page_num - 1) * default_links_per_page curr_page = next_page = prev_page = "" end = page_num*default_links_per_page; start = end-default_links_per_page; possible_links = Link.objects.all() if tag_name: proper_tag_name = tag_name.replace('-', ' ') tag = Tag.objects.get(name=proper_tag_name) possible_links = TaggedItem.objects.get_by_model(possible_links, tag) curr_page += '/tags/' + tag_name if sort_by == "lotto": recent_links = possible_links.order_by('-date_submitted')[:1000] links_by_lotto = choose_by_lotto(recent_links) links = [(Link.objects.get(pk=link_id), score) for link_id, score in links_by_lotto] elif sort_by == "new": recent_links = possible_links #.filter(date_submitted__gte=(datetime.now() - timedelta(hours=24))) new_links = recent_links.order_by('-date_submitted')[start:end] links = [(link, Vote.objects.get_score(link)['score']) for link in new_links] curr_page += '/new' if end < len(recent_links): next_page += curr_page + '/page' + str(page_num+1) if page_num > 1: prev_page += curr_page + '/page' + str(page_num-1) elif sort_by == "top": recent_links = possible_links #.filter(date_submitted__gte=(datetime.now() - timedelta(hours=24))) sorted_links = choose_by_score(recent_links)[start:end] links = [(Link.objects.get(pk=link_id), score) for link_id, score in sorted_links] curr_page +='/top' if end < len(recent_links): next_page += curr_page + '/page' + str(page_num+1) if page_num > 1: prev_page += curr_page + '/page' + str(page_num-1) if tag_name: return render_to_response('tag_index.html', RequestContext(request, {'links': links, 'tag_name':proper_tag_name, 'sort_by': sort_by, 'start_rank': start_rank, 'next_page': next_page, 'prev_page': prev_page})) return render_to_response('index.html', RequestContext(request, {'links': links, 'sort_by': sort_by, 'start_rank': start_rank, 'next_page': next_page, 'prev_page': prev_page}))
def render(self, context): additional_links = self.obj.resolve(context).additional_links.all() additional_links_by_score = choose_by_score(additional_links) top_additional_links = [(Link.objects.get(pk=link_id), score) for link_id, score in additional_links_by_score] context[self.var_name] = top_additional_links return ''