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})
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})