if to:
datefilter.add(Q(date__lt=to), Q.AND)
- mlist = Message.objects.defer('bodytxt', 'rawtxt', 'cc', 'to').select_related().filter(datefilter).extra(where=["threadid IN (SELECT threadid FROM list_threads WHERE listid=%s)" % l.listid]).order_by('date')[:200]
+ mlist = Message.objects.defer('bodytxt', 'cc', 'to').select_related().filter(datefilter).extra(where=["threadid IN (SELECT threadid FROM list_threads WHERE listid=%s)" % l.listid]).order_by('date')[:200]
threads = set([m.threadid for m in mlist])
r = render_to_response('datelist.html', {
# Need to sort this backwards in the database to get the LIMIT applied
# properly, and then manually resort it in the correct order. We can do
# the second sort safely in python since it's not a lot of items..
- mlist = sorted(Message.objects.defer('bodytxt', 'rawtxt', 'cc', 'to').select_related().filter(date__lte=d).extra(where=["threadid IN (SELECT threadid FROM list_threads WHERE listid=%s)" % l.listid]).order_by('-date')[:200], key=lambda m: m.date)
+ mlist = sorted(Message.objects.defer('bodytxt', 'cc', 'to').select_related().filter(date__lte=d).extra(where=["threadid IN (SELECT threadid FROM list_threads WHERE listid=%s)" % l.listid]).order_by('-date')[:200], key=lambda m: m.date)
threads = set([m.threadid for m in mlist])
r = render_to_response('datelist.html', {
def message(request, msgid):
try:
- m = Message.objects.defer('rawtxt').get(messageid=msgid)
+ m = Message.objects.get(messageid=msgid)
except Message.DoesNotExist, e:
raise Http404('Message does not exist')
def message_flat(request, msgid):
try:
- msg = Message.objects.defer('rawtxt').get(messageid=msgid)
+ msg = Message.objects.get(messageid=msgid)
except Message.DoesNotExist, e:
raise Http404('Message does not exist')
- allmsg = Message.objects.defer('rawtxt').filter(threadid=msg.threadid).order_by('date')
+ allmsg = Message.objects.filter(threadid=msg.threadid).order_by('date')
# XXX: need to get the complete list of lists!
r = render_to_response('message_flat.html', {
return r
def message_raw(request, msgid):
- try:
- msg = Message.objects.defer('subject', 'mailfrom', 'to', 'cc', 'bodytxt').get(messageid=msgid)
- except Message.DoesNotExist, e:
+ curs = connection.cursor()
+ curs.execute("SELECT threadid, rawtxt FROM messages WHERE messageid=%(messageid)s", {
+ 'messageid': msgid,
+ })
+ row = curs.fetchall()
+ if len(row) != 1:
raise Http404('Message does not exist')
- r = HttpResponse(msg.rawtxt, content_type='text/plain')
- r['X-pgthread'] = ":%s:" % msg.threadid
+
+ r = HttpResponse(row[0][1], content_type='text/plain')
+ r['X-pgthread'] = ":%s:" % row[0][0]
return r
def testview(request, seqid):