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))
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")