##// END OF EJS Templates
Get mimetype for file in the form and use it for both images and attachments
Get mimetype for file in the form and use it for both images and attachments

File last commit:

r1302:57fd9a18 default
r1371:ca879451 default
Show More
feed.py
81 lines | 2.8 KiB | text/x-python | PythonLexer
from django.core.urlresolvers import reverse
from django.shortcuts import render
from boards.abstracts.paginator import get_paginator
from boards.abstracts.settingsmanager import get_settings_manager
from boards.models import Post
from boards.views.base import BaseBoardView
from boards.views.posting_mixin import PostMixin
POSTS_PER_PAGE = 10
PARAMETER_CURRENT_PAGE = 'current_page'
PARAMETER_PAGINATOR = 'paginator'
PARAMETER_POSTS = 'posts'
PARAMETER_ADDITONAL_ATTRS = 'additional_attrs'
PARAMETER_PREV_LINK = 'prev_page_link'
PARAMETER_NEXT_LINK = 'next_page_link'
TEMPLATE = 'boards/feed.html'
DEFAULT_PAGE = 1
class FeedView(PostMixin, BaseBoardView):
def get(self, request):
page = request.GET.get('page', DEFAULT_PAGE)
tripcode = request.GET.get('tripcode', None)
params = self.get_context_data(request=request)
settings_manager = get_settings_manager(request)
posts = Post.objects.exclude(
threads__tags__in=settings_manager.get_hidden_tags()).order_by(
'-pub_time').prefetch_related('images', 'thread', 'threads')
if tripcode:
posts = posts.filter(tripcode=tripcode)
paginator = get_paginator(posts, POSTS_PER_PAGE)
paginator.current_page = int(page)
params[PARAMETER_POSTS] = paginator.page(page).object_list
additional_params = dict()
if tripcode:
additional_params['tripcode'] = tripcode
params[PARAMETER_ADDITONAL_ATTRS] = '&tripcode=' + tripcode
self.get_page_context(paginator, params, page, additional_params)
return render(request, TEMPLATE, params)
# TODO Dedup this into PagedMixin
def get_page_context(self, paginator, params, page, additional_params):
"""
Get pagination context variables
"""
params[PARAMETER_PAGINATOR] = paginator
current_page = paginator.page(int(page))
params[PARAMETER_CURRENT_PAGE] = current_page
if current_page.has_previous():
params[PARAMETER_PREV_LINK] = self.get_previous_page_link(
current_page)
for param in additional_params.keys():
params[PARAMETER_PREV_LINK] += '&{}={}'.format(
param, additional_params[param])
if current_page.has_next():
params[PARAMETER_NEXT_LINK] = self.get_next_page_link(current_page)
for param in additional_params.keys():
params[PARAMETER_NEXT_LINK] += '&{}={}'.format(
param, additional_params[param])
def get_previous_page_link(self, current_page):
return reverse('feed') + '?page={}'.format(
current_page.previous_page_number())
def get_next_page_link(self, current_page):
return reverse('feed') + '?page={}'.format(
current_page.next_page_number())