def atom_feed_latest(request, mailbox_slug): """ renders the mailbox as an atom feed """ ctx = request.context mb = ctx.get_mailbox(mailbox_slug) if mb is None: return HttpResponse(status=404) if not ctx.user.has_perm(PERM_READ, mb): return HttpResponse(status=401) # number of entries try: limit = min(int(request.GET.get('limit', DEFAULT_ATOM_ENTRIES)), MAX_ATOM_ENTRIES) except: return HttpResponse(status=400) params = {'limit': limit, 'include_docs': True, 'reduce': False, 'descending': True} # starting point in time if 'startkey' in request.GET: params['startkey'] = request.GET['startkey'] latest_messages = Message.view(mb, Message.by_timestamp, **params) return _render_atom_feed(request, mb, latest_messages)
def view_mailbox(request, mailbox_slug): ctx = request.context mb = ctx.get_mailbox(mailbox_slug) if mb is None: return HttpResponse(status=404) params = {'limit': 10, 'include_docs': True, 'reduce': False, 'descending': True} info = MailboxInfo.get(mb) items = Message.view(mb, Message.by_timestamp, **params) ctx = {} ctx['mailbox_slug'] = mailbox_slug ctx['mailbox_title'] = info.title or mailbox_slug ctx['items'] = items return render_to_response('radar/view_mailbox.html', TemplateContext(request, ctx))