##// END OF EJS Templates
Added template tag to render post the same way in all places (threads list, thread view, post view)
Added template tag to render post the same way in all places (threads list, thread view, post view)

File last commit:

r537:32f43bd2 default
r537:32f43bd2 default
Show More
board.py
70 lines | 1.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(*args, **kwargs):
post = args[0]
return { 'post': post }
@register.inclusion_tag('boards/post.html', name='post_view_truncated')
def post_view_truncated(*args, **kwargs):
post = args[0]
if len(args) > 1:
need_open_link = args[1]
else:
need_open_link = False
return {
'post': post,
'truncated': True,
'need_open_link': need_open_link
}