def index(): filter_list = list(filters.all()) try: page = int(request.args.get('p', 1)) except (TypeError, ValueError): page = 1 event_list = Group.objects.all() sort = request.args.get('sort') if sort == 'date': event_list = event_list.order_by('-last_seen') elif sort == 'new': event_list = event_list.order_by('-first_seen') elif sort == 'count': event_list = event_list.order_by('-count') else: sort = 'priority' event_list = event_list.order_by('-score') any_filter = False # for filter_ in filters: # if not filter_.is_set(): # continue # any_filter = True # event_list = filter_.get_query_set(event_list) today = datetime.datetime.now() has_realtime = page == 1 return render_template('sentry/index.html', **{ 'has_realtime': has_realtime, 'event_list': event_list, 'today': today, 'sort': sort, 'any_filter': any_filter, 'request': request, 'filter_list': filter_list, })
def ajax_handler(): op = request.form.get('op') if op == 'poll': filters = [] for filter_ in filters.all(): filters.append(filter_(request)) event_list = Group.objects sort = request.args.get('sort') if sort == 'date': event_list = event_list.order_by('-last_seen') elif sort == 'new': event_list = event_list.order_by('-first_seen') elif sort == 'count': event_list = event_list.order_by('-count') else: sort = 'priority' event_list = event_list.order_by('-score') # for filter_ in filters: # if not filter_.is_set(): # continue # event_list = filter_.get_query_set(event_list) data = [ (m.pk, { 'html': render_template('sentry/partial/group.html', **{ 'group': m, 'priority': p, 'request': request, }), 'count': m.times_seen, 'priority': p, }) for m, p in with_priority(event_list[0:15])] elif op == 'resolve': gid = request.REQUEST.get('gid') if not gid: abort(403) try: group = Group.objects.get(pk=gid) except Group.DoesNotExist: abort(403) group.update(status=1) if not request.is_ajax(): return redirect(request.environ['HTTP_REFERER']) data = [ (m.pk, { 'html': render_template('sentry/partial/group.html', **{ 'group': m, 'request': request, }), 'count': m.times_seen, }) for m in [group]] else: abort(400) return Response(simplejson.dumps(data), mimetype='application/json')