##// END OF EJS Templates
Added debug suffix to the site name when DEBUG is set to true. Optimized post...
Added debug suffix to the site name when DEBUG is set to true. Optimized post template tag if additional parameters are provided

File last commit:

r583:cf14ad32 default
r583:cf14ad32 default
Show More
board.py
112 lines | 2.6 KiB | text/x-python | PythonLexer
from django.core.urlresolvers import reverse
from django.shortcuts import get_object_or_404
from boards.models import Post
from boards.views import thread, api
from django import template
register = template.Library()
actions = [
{
'name': 'google',
'link': 'http://google.com/searchbyimage?image_url=%s',
},
{
'name': 'iqdb',
'link': 'http://iqdb.org/?url=%s',
},
]
@register.simple_tag(name='post_url')
def post_url(*args, **kwargs):
post_id = args[0]
post = get_object_or_404(Post, id=post_id)
if not post.is_opening():
link = reverse('thread', kwargs={
'post_id': post.thread_new.get_opening_post().id}) + '#' + str(
post_id)
else:
link = reverse('thread', kwargs={'post_id': post_id})
return link
@register.simple_tag(name='image_actions')
def image_actions(*args, **kwargs):
image_link = args[0]
if len(args) > 1:
image_link = 'http://' + args[1] + image_link # TODO https?
result = ''
for action in actions:
result += '[<a href="' + action['link'] % image_link + '">' + \
action['name'] + '</a>]'
return result
@register.inclusion_tag('boards/post.html', name='post_view')
def post_view(post, moderator=False, **kwargs):
"""
Get post
"""
if 'is_opening' in kwargs:
is_opening = kwargs['is_opening']
else:
is_opening = post.is_opening()
if 'thread' in kwargs:
thread = kwargs['thread']
else:
thread = post.thread_new
if 'can_bump' in kwargs:
can_bump = kwargs['can_bump']
else:
can_bump = thread.can_bump()
return {
'post': post,
'moderator': moderator,
'is_opening': is_opening,
'thread': thread,
'bumpable': can_bump,
}
@register.inclusion_tag('boards/post.html', name='post_view_truncated')
def post_view_truncated(post, need_open_link=False, moderator=False, **kwargs):
"""
Get post with truncated text. If the 'open' or 'reply' link is needed, pass
the second parameter as True.
"""
if 'is_opening' in kwargs:
is_opening = kwargs['is_opening']
else:
is_opening = post.is_opening()
if 'thread' in kwargs:
thread = kwargs['thread']
else:
thread = post.thread_new
if 'can_bump' in kwargs:
can_bump = kwargs['can_bump']
else:
can_bump = thread.can_bump()
return {
'post': post,
'truncated': True,
'need_open_link': need_open_link,
'moderator': moderator,
'is_opening': is_opening,
'thread': thread,
'bumpable': can_bump,
}