Esempio n. 1
0
 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 ''
Esempio n. 2
0
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}))
Esempio n. 3
0
 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 ''