Source code for openassembly.pirate_messages.templatetags.messagetags
from django import template
from django import forms
from django.http import HttpResponse, HttpResponseRedirect
from django.utils import simplejson
from pirate_messages.models import Message, MessageForm, Notification
from django.db import transaction
from django.middleware import csrf
from django.contrib.contenttypes.models import ContentType
from django.utils.encoding import smart_str
#from ajaxapi.views import clean_html
from pirate_forum.models import get_rangelist
from django.contrib.auth.models import User
import datetime
from pirate_signals.models import notification_send
from django.shortcuts import get_object_or_404
from django.db.models import Q
from pirate_core.views import HttpRedirectException, namespace_get
from customtags.decorators import block_decorator
register = template.Library()
block = block_decorator(register)
get_namespace = namespace_get('pp_messages')
@block
[docs]def pp_get_messages(context, nodelist, *args, **kwargs):
context.push()
namespace = get_namespace(context)
sender = kwargs.get('sender', None)
user = kwargs.get('user', None)
start = kwargs.get('start', 0)
end = kwargs.get('end', 10)
newest = kwargs.get('newest', None)
if sender is not None:
read = Message.objects.filter(Q(receiver=user, sender=sender) | Q(receiver=sender, sender=user)).order_by('-created_dt')
unread = Message.objects.filter(read=False, receiver=user, sender=sender)
for mes in unread:
mes.read = True
mes.save()
count = unread.count()
rcount = read.count()
if count == 0:
has_mail = False
else:
has_mail = True
read = read[start:end]
namespace['has_mail'] = has_mail
namespace['unreadcount'] = count
namespace['readcount'] = rcount
namespace['count'] = rcount + count
namespace['all'] = read
namespace['unread'] = unread
namespace['rangelist'] = get_rangelist(start, end, count)
output = nodelist.render(context)
context.pop()
return output
@block