示例#1
0
def manage_subscriptions(request, mailbox_slug):
    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 handle_unauth(request)

    info = MailboxInfo.get(mb)

    subs = []
    for sub in Subscription.view(mb, Subscription.by_type,
                                 include_docs=True):
        subs.append(sub)

    ctx = {}
    ctx['mailbox'] = mb
    ctx['mailbox_slug'] = mailbox_slug
    ctx['mailbox_title'] = info.title or mailbox_slug
    ctx['subscriptions'] = sorted(subs, key=attrgetter('title'))

    if request.headers.get('X-Requested-With') == 'XMLHttpRequest': 
        return render_to_response('radar/subscriptions_table.html', 
                                  TemplateContext(request, ctx))
    else: 
        return render_to_response('radar/subscriptions.html', 
                                  TemplateContext(request, ctx))
示例#2
0
def _get_subscriptions_json(request, mailbox_slug):

    ctx = request.context
    mb = ctx.get_mailbox(mailbox_slug)
    if mb is None:
        return HttpResponse(status=404)

    subs = []
    for sub in Subscription.view(mb, Subscription.by_type,
                                 include_docs=True):
        subs.append(_sub_json(sub))

    return HttpResponse(json.dumps(subs),
                        content_type="application/json")