def order_list(request): from website.forms import OrderListFilterForm form = OrderListFilterForm(request.GET or None) if is_auth_manager(request.user): del(form.fields['office']) del(form.fields['staff']) query = Q() if request.GET.get('order', False): query = query & Q(pk=request.GET['order']) else: if request.GET.get('tourist', False): query = query & Q(tourist__icontains=request.GET['tourist']) if request.GET.get('country', False): query = query & Q(country__id=request.GET['country']) if request.GET.get('office', False): query = query & Q(staff__office__id=request.GET['office']) if request.GET.get('staff', False): query = query & Q(staff__id=request.GET['staff']) if request.GET.get('dt1', False): dt = datetime.datetime.strptime(request.GET['dt1'], '%d.%m.%Y').date() query = query & Q(dt_in__gte=dt) else: query = query & Q(dt_in__gte=datetime.date.today()) if request.GET.get('dt2', False): dt = datetime.datetime.strptime(request.GET['dt2'], '%d.%m.%Y').date() query = query & Q(dt_in__lte=dt) if is_auth_manager(request.user): # Фильтрация по менеджеру if request.GET.get('forders', False): query = query & Q(staff__office=request.account.office) else: query = query & Q(staff=request.account) queryset = Order.objects.filter(query) object_list = get_paginator(request, queryset, rows_on_page=30) return render(request, 'order_list.html', {'object_list': object_list, 'form': form})
def process_view(self, request, view_func, view_args, view_kwargs): request.PROJECT_TITLE = settings.PROJECT_TITLE if not view_func.__module__ in ('website.views', ): return None request = self.common_actions(request) if request.user.is_authenticated(): try: request.account = request.user.get_profile() except Staff.DoesNotExist: if request.path != settings.LOGIN_URL: messages.error(request, u'К учетной записи %s не привязан ни один сотрудник. Обратитесь к администратору.' % request.user) return redirect(settings.LOGIN_URL) request.is_auth_manager = is_auth_manager(request.user) request.is_auth_direction = is_auth_direction(request.user) return None