def edit_profile_whiteLists(request): page = int(request.GET.get('page',1)) per_page = int(request.GET.get('per_page',10)) if request.GET.get('search'): search = request.GET.get('search','').split(' ') if not search or (type(search) == 'list' and len(search) > 2): return render_json(u'Error in search word') else: if len(search) == 2: list_users = User.objects.filter((Q(name=search[0]) & Q(surname=search[1]) | Q(name=search[1]) & Q(surname=search[0]))).values_list('pk', flat=True) else: list_users = User.objects.filter((Q(name=search[0]) | Q(surname=search[0]))).values_list('pk', flat=True) list = UserList.objects.filter(object__in=list_users, user=request.user.pk) pagination = createPaginationBlock(page, per_page, list) return render(request, 'beagent/ba-reklamodatel-profile-whitelist.html', {'request':request, 'count_list':list.count(),'list':list[pagination['offset']:pagination['offset'] + pagination['per_page']],'pag':pagination}) if request.user.type == 'advertiser': list = UserList.objects.filter(user=request.user.pk, type='white') pagination = createPaginationBlock(page, per_page, list) return render(request, 'beagent/ba-reklamodatel-profile-whitelist.html', {'request':request, 'count_list':list.count(),'list':list[pagination['offset']:pagination['offset'] + pagination['per_page']],'pag':pagination}) elif request.user.type == 'agent': return redirect(SITE_URL+'cabinet/profile/black_list')
def view_agent_invitations(request): if request.user.type == 'agent': page = int(request.GET.get('page',1)) per_page = int(request.GET.get('per_page',10)) res = [] balance = 0 platforms = AdvertisingPlatform.objects.filter(user=request.user.pk) list = Invitation.objects.filter(platform__in=platforms,status='new') pagination = createPaginationBlock(page, per_page, list) for i in list: balance += i.task.sum for i in list[pagination['offset']:pagination['offset'] + pagination['per_page']]: res.append({ 'id':i.pk, 'campaign':i.campaign.name, 'balance':i.task.sum, 'platform':i.platform.address, 'platform_type':i.platform.type, 'sender_name':i.campaign.user.name, 'sender_surname':i.campaign.user.surname, 'sender_rating':i.campaign.user.rating, 'task':i.task.work_type, }) return render(request, 'beagent/ba-agent-priglashenia.html', {'request':request, 'count_list':list.count(),'result':res,'pag':pagination,'balance':balance}) else: return render(request, 'beagent/404.html')
def view_agent_platforms(request): if request.user.type == 'agent': page = int(request.GET.get('page',1)) per_page = int(request.GET.get('per_page',10)) status = request.GET.get('status','') res = [] if status: list = AdvertisingPlatform.objects.filter(user=request.user.pk,status=status) else: list = AdvertisingPlatform.objects.filter(user=request.user.pk) pagination = createPaginationBlock(page, per_page, list) for i in list[pagination['offset']:pagination['offset'] + pagination['per_page']]: count = Invitation.objects.filter(status='new',platform=i.id).count() res.append({ 'id':i.id, 'inventation':count, 'address':i.address, 'type':i.type, 'status':i.status, }) return render(request, 'beagent/ba-agent-moi_ploshadki.html', {'request':request, 'count_list':list.count(),'result':res,'pag':pagination}) else: return render(request, 'beagent/404.html')
def profile_messages(request): page = int(request.GET.get('page',1)) per_page = int(request.GET.get('per_page',10)) list = Message.objects.filter(receiver=request.user.pk).order_by('-last_answer') pagination = createPaginationBlock(page, per_page, list) return render(request, 'beagent/ba-agent-soobshenia.html', {'request':request, 'count_list':list.count(),'list':list[pagination['offset']:pagination['offset'] + pagination['per_page']],'pag':pagination})
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})