Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def custom_paginator(request, queryset):
- try:
- page_size = int(request.GET.get('records', 10))
- except ValueError:
- page_size = 10
- paginator = Paginator(queryset, page_size)
- try:
- page_number = int(request.GET.get('page', 1))
- except ValueError:
- page_number = 1
- try:
- page = paginator.page(page_number)
- except Exception:
- page = None
- return page_size, page, page_number, paginator
- def process_order(sorting_order, queryset):
- if not sorting_order:
- return queryset
- method, order = sorting_order.split(':')
- if method == 'name':
- if order == 'ascending':
- # return queryset.order_by('name')
- return queryset.order_by('first_name', 'last_name')
- else:
- # return queryset.order_by('-name')
- return queryset.order_by('-first_name', '-last_name')
- if method == 'status':
- if order == 'ascending':
- return queryset.order_by('agency__activation_state')
- else:
- return queryset.order_by('-agency__activation_state')
- elif method == 'title':
- if order == 'ascending':
- return queryset.order_by('agency__jobtitle')
- else:
- return queryset.order_by('-agency__jobtitle')
- return queryset
- def search_users_new(request):
- query = request.GET.get('q', '')
- search_filter = _build_search_filter(query)
- users_queryset = (
- users_impersonable(request)
- .filter(search_filter)
- .prefetch_related(
- 'agency',
- 'agency__employer',
- 'freelancer',
- 'freelancer__role',
- 'recruiter',
- 'network_hirer'
- )
- )
- sorting_order = request.GET.get('order')
- users_queryset = process_order(sorting_order, users_queryset)
- page_size, page, page_number, paginator = custom_paginator(request,
- users_queryset)
- template = 'backoffice/search_users_new.html'
- if request.is_ajax():
- template = 'backoffice/search_users_table.html'
- return render(request, template, {
- 'users': users_queryset,
- 'paginator': paginator,
- 'page': page,
- 'page_number': page_number,
- 'query': query,
- 'redirect_field': get_redir_field(request),
- 'breadcrumbs': [
- ('Backoffice', reverse('backoffice_index')),
- ('Search', None)
- ],
- 'page_size': page_size,
- })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement