Esempio n. 1
0
def profile_balance(request):
    user = User.objects.get(pk=request.user.pk)
    if request.method == 'POST':
        val = {}
        for i in request.POST:
            if request.POST[i] == '':
                val[i] = str(datetime.date.today())
            else:
                val[i] = request.POST[i]
        form = DateForm(val)
        if form.is_valid():
            balance = Balance.objects.filter(user=user.pk, date__range=(form.cleaned_data['date_from'], form.cleaned_data['date_to']))
        else:
            print form.errors
    else:
        balance = Balance.objects.filter(user=user.pk)
        print balance
    return render(request, 'beagent/ba-agent-denigi.html', {'user':user, 'balance': balance})
Esempio n. 2
0
def profile_view_tasks(request):
    date_range = None

    page = int(request.GET.get('page',1))
    per_page = int(request.GET.get('per_page',10))
    status = request.GET.get('status','')

    if request.method == 'POST':
        val = {}
        for i in request.POST:
            if request.POST[i] == '':
                val[i] = str(datetime.date.today())
            else:
                val[i] = request.POST[i]
        form = DateForm(val)
        if form.is_valid():
            date_range=(form.cleaned_data['date_from'], form.cleaned_data['date_to'])

    if request.user.type == 'agent':
        if not status:
            if not date_range:
                list = AgentTask.objects.filter(user=request.user.pk).extra(where=["status='performed' OR status='checkout'"])
            else:
                list = AgentTask.objects.filter(user=request.user.pk,date_start__range=date_range).extra(where=["status='performed' OR status='checkout'"])
        else:
            if not date_range:
                list = AgentTask.objects.filter(user=request.user.pk,status=status)
            else:
                list = AgentTask.objects.filter(user=request.user.pk,status=status,date_start__range=date_range)
        pagination = createPaginationBlock(page, per_page, list)

        return render(request, 'beagent/ba-agent-moi_zadachi.html', {'request':request, 'count_list':list.count(),'list':list[pagination['offset']:pagination['offset'] + pagination['per_page']],'pag':pagination})
    else:
        if not status:
            if not date_range:
                list = AgentTask.objects.filter(customer=request.user.pk).extra(where=["status='performed' OR status='payable'"])
            else:
                list = AgentTask.objects.filter(customer=request.user.pk,date_start__range=date_range).extra(where=["status='performed' OR status='payable'"])
        else:
            if not date_range:
                list = AgentTask.objects.filter(customer=request.user.pk,status=status)
            else:
                list = AgentTask.objects.filter(customer=request.user.pk,status=status,date_start__range=date_range)
        pagination = createPaginationBlock(page, per_page, list)
        res = []
        for i in list[pagination['offset']:pagination['offset'] + pagination['per_page']]:
            total_hours = i.date_finish - i.date_start
            now = datetime.datetime.utcnow().replace(tzinfo=utc)
            elapsed_hours = i.date_finish - now if i.date_finish > now else i.date_finish - i.date_finish
            res.append({
                'pk':i.pk,
                'campaign_name':i.task.campaign.name,
                'work_type':i.task.work_type,
                'status':i.get_status_display,
                'date_start':i.date_start,
                'last_event':i.last_event,
                'total_hours':total_hours.days*24 + total_hours.seconds/3600,
                'elapsed_hours':elapsed_hours.days*24 + elapsed_hours.seconds/3600,
                'name':i.customer.name,
                'surname':i.customer.surname,
                'rating':i.customer.rating,
                })


        return render(request, 'beagent/ba-reklamodatel-moi_zadachi.html', {'request':request, 'count_list':list.count(),'list':res,'pag':pagination})