~widelands-dev/widelands-website/django_staticfiles

« back to all changes in this revision

Viewing changes to pybb/unread.py

  • Committer: Holger Rapp
  • Date: 2010-09-26 13:30:30 UTC
  • Revision ID: sirver@gmx.de-20100926133030-ceirjf83vde91tyt
Added a simple events model to display dates on the homepage

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
from pybb.models import Topic, Post, Read
2
2
 
3
 
 
4
3
def cache_unreads(qs, user):
5
 
    if not len(qs) or not user.is_authenticated:
 
4
    if not len(qs) or not user.is_authenticated():
6
5
        return qs
7
6
    if isinstance(qs[0], Topic):
8
7
        reads = Read.objects.filter(topic__pk__in=set(x.id for x in qs),
9
 
                                    user=user).select_related()
 
8
            user=user).select_related()
10
9
        read_map = dict((x.topic.id, x) for x in reads)
11
10
 
12
11
        for topic in qs:
14
13
        return qs
15
14
    elif isinstance(qs[0], Post):
16
15
        ids = set(x.topic.id for x in qs)
17
 
        reads = Read.objects.filter(
18
 
            topic__pk__in=ids, user=user).select_related()
 
16
        reads = Read.objects.filter(topic__pk__in=ids, user=user).select_related()
19
17
        read_map = dict((x.topic.id, x) for x in reads)
20
18
 
21
19
        for post in qs:
22
20
            post.topic._read = read_map.get(post.topic.id, None)
23
21
        return qs
24
22
    else:
25
 
        raise Exception(
26
 
            'cache_unreads could process only Post or Topic querysets')
 
23
        raise Exception('cache_unreads could process only Post or Topic querysets')