Beispiel #1
0
def error_page(request):
    available_projects = request.registry.settings['projects']
    selected_project = get_selected_project(request)

    search = request.GET.get('search', '')
    show = request.GET.get('show', 'open')  # open, resolved, mine
    order_by = request.GET.get('order_by', 'date')
    direction = request.GET.get('direction', 'desc')

    if show not in ['open', 'resolved', 'mine']:
        show = 'open'

    errors = get_errors(request)

    return {
        'search': search,
        'errors': errors,
        'selected_project': selected_project,
        'available_projects': available_projects,
        'show': show,
        'order_by': order_by,
        'direction': direction,
        'tags': Tag.objects(),
        'users': User.objects(),
    }
Beispiel #2
0
def list(request):
    available_projects = request.registry.settings['projects']
    selected_project = get_selected_project(request)

    search = request.params.get('search', '')
    show = request.GET.getall('show')
    tags = request.GET.getall('tags')
    users = request.GET.getall('users')
    order_by = request.params.get('order', False)
    direction = request.params.get('direction', False)

    errors = Error.objects.find_for_list(selected_project, request.user, show)

    if search:
        errors = errors.search(search)

    if tags:
        errors.filter(tags__in=tags)

    if users:
        errors.filter(claimedby__in=users)
 
    if order_by != False and errors.count():
        if direction and direction == 'desc':
            order_by = '-' + order_by
        errors.order_by(order_by)

    page = request.params.get('page', '1')
    paginator = Paginator(errors, size_per_page=20, current_page=page)

    params = {
        'search': search,
        'errors': paginator.get_current_page(),
        'paginator': paginator,
        'selected_project': selected_project,
        'available_projects': available_projects,
        'show': show,
        'tags': Tag.objects(),
        'users': User.objects(),
        'get_error_count': lambda x: Error.objects.find_for_list(selected_project, request.user, x).count()
    }

    return render_to_response('error-list.html', params)