Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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))