##// END OF EJS Templates
Search for image for every domain level starting from the lowest one. Cache this into memcached
Search for image for every domain level starting from the lowest one. Cache this into memcached

File last commit:

r1745:49bdf576 default
r1772:1342675d default
Show More
landing.py
42 lines | 1.3 KiB | text/x-python | PythonLexer
from datetime import datetime
from datetime import timedelta
from django.db.models import Count
from django.shortcuts import render
from django.utils.decorators import method_decorator
from django.views.decorators.csrf import csrf_protect
from boards import settings
from boards.models import Post
from boards.models import Tag, Attachment, STATUS_ACTIVE
from boards.views.base import BaseBoardView
PARAM_SECTION_STR = 'section_str'
PARAM_LATEST_THREADS = 'latest_threads'
PARAM_IMAGES = 'images'
TEMPLATE = 'boards/landing.html'
RANDOM_IMAGE_COUNT = 3
class LandingView(BaseBoardView):
@method_decorator(csrf_protect)
def get(self, request):
params = dict()
params[PARAM_SECTION_STR] = Tag.objects.get_tag_url_list(
Tag.objects.filter(required=True))
today = datetime.now() - timedelta(1)
max_landing_threads = settings.get_int('View', 'MaxFavoriteThreads')
ops = Post.objects.filter(thread__replies__pub_time__gt=today, opening=True, thread__status=STATUS_ACTIVE)\
.annotate(today_post_count=Count('thread__replies'))\
.order_by('-pub_time')[:max_landing_threads]
params[PARAM_LATEST_THREADS] = ops
params[PARAM_IMAGES] = Attachment.objects.get_random_images(
RANDOM_IMAGE_COUNT)
return render(request, TEMPLATE, params)