예제 #1
0
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})
예제 #2
0
 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