コード例 #1
0
ファイル: views.py プロジェクト: giam-forte/ExpertBilling
def index(request):

    if not request.user.account.has_perm("billservice.view_cashier"):
        return {"status": False}

    if request.method == "GET" and request.GET:
        data = request.GET

        # pageitems = 100
        form = CashierAccountForm(request.GET)
        if form.is_valid():

            res = Account.objects.all()

            contract = form.cleaned_data.get("contract")
            username = form.cleaned_data.get("username")
            fullname = form.cleaned_data.get("fullname")
            city = form.cleaned_data.get("city")
            street = form.cleaned_data.get("street")
            house = form.cleaned_data.get("house")

            if contract:
                res = res.filter(contract__istartswith=contract)

            if username:
                res = res.filter(username__istartswith=username)

            if fullname:
                res = res.filter(fullname__istartswith=fullname)

            if city:
                res = res.filter(city=city)

            if street:
                res = res.filter(street__istartswith=street)

            if house:
                res = res.filter(house__istartswith=house)

            table = AccountsCashierReportTable(res)
            table_to_report = RequestConfig(
                request, paginate=False if request.GET.get("paginate") == "False" else True
            ).configure(table)
            if table_to_report:
                return create_report_http_response(table_to_report, request)

            return {"table": table, "form": form, "resultTab": True}

        else:
            return {"status": False, "form": form}
    else:
        res = Account.objects.filter(status=1)
        table = AccountsCashierReportTable(res)
        table_to_report = RequestConfig(
            request, paginate=False if request.GET.get("paginate") == "False" else True
        ).configure(table)
        if table_to_report:
            return create_report_http_response(table_to_report, request)
        form = CashierAccountForm()
        return {"form": form, "table": table}
コード例 #2
0
ファイル: staff.py プロジェクト: brat002/ebscab
def dashboard(request):
    """
    A quick summary overview for users: A list of their own tickets, a table
    showing ticket counts by queue/status, and a list of unassigned tickets
    with options for them to 'Take' ownership of said tickets.
    """

    tickets = Ticket.objects.filter(
            assigned_to=request.user,
        ).exclude(
            status=Ticket.CLOSED_STATUS,
        )

    ticket_table = UnpagedTicketTable(tickets)
    table_to_report = RequestConfig(request, paginate=False ).configure(ticket_table)
    if table_to_report:
        return create_report_http_response(table_to_report, request)
            
    unassigned_tickets = Ticket.objects.filter(
            assigned_to__isnull=True,
        ).exclude(
            status=Ticket.CLOSED_STATUS,
        )

    
    unassigned_ticket_table = UnassignedTicketTable(unassigned_tickets)
    table_to_report = RequestConfig(request, paginate=False ).configure(unassigned_ticket_table)
    if table_to_report:
        return create_report_http_response(table_to_report, request)
    # The following query builds a grid of queues & ticket statuses,
    # to be displayed to the user. EG:
    #          Open  Resolved
    # Queue 1    10     4
    # Queue 2     4    12

    cursor = connection.cursor()
    cursor.execute("""
        SELECT      q.id as queue,
                    q.title AS name,
                    COUNT(CASE t.status WHEN '1' THEN t.id WHEN '2' THEN t.id END) AS open,
                    COUNT(CASE t.status WHEN '3' THEN t.id END) AS resolved
            FROM    helpdesk_ticket t,
                    helpdesk_queue q
            WHERE   q.id =  t.queue_id
            GROUP BY queue, name
            ORDER BY q.id;
    """)
    dash_tickets = query_to_dict(cursor.fetchall(), cursor.description)

    return render_to_response('helpdesk/dashboard.html',
        RequestContext(request, {
            'user_tickets': tickets,
            'unassigned_tickets': unassigned_tickets,
            'dash_tickets': dash_tickets,
            'ticket_table': ticket_table,
            'unassigned_ticket_table': unassigned_ticket_table
        }))
コード例 #3
0
ファイル: staff.py プロジェクト: ra3sad/ExpertBilling
def dashboard(request):
    """
    A quick summary overview for users: A list of their own tickets, a table
    showing ticket counts by queue/status, and a list of unassigned tickets
    with options for them to 'Take' ownership of said tickets.
    """

    tickets = Ticket.objects.filter(assigned_to=request.user, ).exclude(
        status=Ticket.CLOSED_STATUS, )

    ticket_table = UnpagedTicketTable(tickets)
    table_to_report = RequestConfig(request,
                                    paginate=False).configure(ticket_table)
    if table_to_report:
        return create_report_http_response(table_to_report, request)

    unassigned_tickets = Ticket.objects.filter(
        assigned_to__isnull=True, ).exclude(status=Ticket.CLOSED_STATUS, )

    unassigned_ticket_table = UnassignedTicketTable(unassigned_tickets)
    table_to_report = RequestConfig(
        request, paginate=False).configure(unassigned_ticket_table)
    if table_to_report:
        return create_report_http_response(table_to_report, request)
    # The following query builds a grid of queues & ticket statuses,
    # to be displayed to the user. EG:
    #          Open  Resolved
    # Queue 1    10     4
    # Queue 2     4    12

    cursor = connection.cursor()
    cursor.execute("""
        SELECT      q.id as queue,
                    q.title AS name,
                    COUNT(CASE t.status WHEN '1' THEN t.id WHEN '2' THEN t.id END) AS open,
                    COUNT(CASE t.status WHEN '3' THEN t.id END) AS resolved
            FROM    helpdesk_ticket t,
                    helpdesk_queue q
            WHERE   q.id =  t.queue_id
            GROUP BY queue, name
            ORDER BY q.id;
    """)
    dash_tickets = query_to_dict(cursor.fetchall(), cursor.description)

    return render_to_response(
        'helpdesk/dashboard.html',
        RequestContext(
            request, {
                'user_tickets': tickets,
                'unassigned_tickets': unassigned_tickets,
                'dash_tickets': dash_tickets,
                'ticket_table': ticket_table,
                'unassigned_ticket_table': unassigned_ticket_table
            }))
コード例 #4
0
def shedulelog(request):
    if not (request.user.account.has_perm("billservice.view_shedulelog")):
        messages.error(request, _(u"У вас нет прав на доступ в этот раздел."), extra_tags="alert-danger")
        return HttpResponseRedirect("/ebsadmin/")

    if request.method == "GET" and request.GET:
        data = request.GET

        # pageitems = 100
        form = SheduleLogSearchForm(data)
        if form.is_valid():

            account = form.cleaned_data.get("account")

            res = SheduleLog.objects.all()
            if account:
                res = res.filter(accounttarif__account__id__in=account)

            table = SheduleLogTable(res)
            table_to_report = RequestConfig(
                request, paginate=False if request.GET.get("paginate") == "False" else True
            ).configure(table)
            if table_to_report:
                return create_report_http_response(table_to_report, request)

            return {"table": table, "form": form, "resultTab": True}

        else:
            return {"status": False, "form": form}
    else:
        form = SheduleLogSearchForm()
        return {"form": form}
コード例 #5
0
def shedulelog(request):
    if not (request.user.account.has_perm('billservice.view_shedulelog')):
        messages.error(request,
                       _(u'У вас нет прав на доступ в этот раздел.'),
                       extra_tags='alert-danger')
        return HttpResponseRedirect('/ebsadmin/')

    if request.method == 'GET' and request.GET:
        data = request.GET

        #pageitems = 100
        form = SheduleLogSearchForm(data)
        if form.is_valid():

            account = form.cleaned_data.get('account')

            res = SheduleLog.objects.all()
            if account:
                res = res.filter(accounttarif__account__id__in=account)

            table = SheduleLogTable(res)
            table_to_report = RequestConfig(
                request,
                paginate=False if request.GET.get('paginate') == 'False' else
                True).configure(table)
            if table_to_report:
                return create_report_http_response(table_to_report, request)

            return {"table": table, 'form': form, 'resultTab': True}

        else:
            return {'status': False, 'form': form}
    else:
        form = SheduleLogSearchForm()
        return {'form': form}
コード例 #6
0
ファイル: admin_dashboard.py プロジェクト: brat002/ebscab
def admin_dashboard(request):
 
    accounts_count = Account.objects.count()
    res = Comment.objects.all().order_by('-created')
    table = CommentTable(res)

    table_to_report = RequestConfig(request, paginate=False if request.GET.get('paginate')=='False' else True).configure(table)
    if table_to_report:
        return create_report_http_response(table_to_report, request)
    
    sessions_count = ActiveSession.objects.filter(session_status='ACTIVE').count()
    systemusers_count = SystemUser.objects.all().count()
    
    accounts_today = Account.objects.filter(created__gte=datetime.datetime.now()-datetime.timedelta(seconds=86400)).count()
    transactions_today = Transaction.objects.filter(created__gte=datetime.datetime.now()-datetime.timedelta(seconds=86400)).count()
    
    accounts_minus = Account.objects.filter(ballance__lte=0).count()
    accounts_plus = Account.objects.filter(ballance__gt=0).count()
    
    accounts_inactive = Account.objects.filter(~Q(status = 1)).count()
    
    registrationrequest_count= RegistrationRequest.objects.all().count()
    
    return { 'accounts_count':accounts_count, 
            'comment_table': table, 
            'sessions_count': sessions_count, 
            'systemusers_count': systemusers_count,
            'accounts_today': accounts_today,
            'transactions_today': transactions_today,
            'accounts_minus': accounts_minus,
            'accounts_plus': accounts_plus,
            'accounts_inactive': accounts_inactive,
            'registrationrequest_count': registrationrequest_count
            } 
コード例 #7
0
def render_report(request, slug):
    class AccountTransactionsSumm(TableReport):
        username = django_tables.Column()
        summ = FormatFloatColumn()
        class Meta:
            attrs = {'class': 'table table-striped table-bordered table-condensed"'}
    name = rep.get(slug)[1]
    if request.GET and request.method=='GET':
        form = AccountBallanceForm(request.GET)
        if form.is_valid():
            date_start = form.cleaned_data.get('date_start')
            date_end = form.cleaned_data.get('date_end')
            accounts = form.cleaned_data.get('accounts')
            res = Account.objects.all()
            if accounts:
                res = res.filter(id__in=[a.id for a in accounts])
            res =res.extra(
                select={
                    'summ': "SELECT sum(summ) FROM billservice_transaction WHERE account_id=billservice_account.id and created between '%s' and '%s' " % (date_start, date_end)
                },
                where=["(SELECT sum(summ) FROM billservice_transaction WHERE account_id=billservice_account.id and created between '%s' and '%s' )<>0" % (date_start, date_end)]
            )
            table = AccountTransactionsSumm(res)
            table_to_report = RequestConfig(request, paginate=True if not request.GET.get('paginate')=='False' else False).configure(table)
            if table_to_report:
                return create_report_http_response(table_to_report, request)
            #print res[0].SUMM
            return {'form': form, 'table': table, 'name': name, 'slug': slug}
            
    form = AccountBallanceForm()
    return {'form': form, 'name': name, 'slug': slug}
コード例 #8
0
def accountaddonservicereport(request, slug):
    class AccountAddonServiceReport(TableReport):
        class Meta:
            model = AccountAddonService
            attrs = {'class': 'table table-striped table-bordered table-condensed"'}
            
    name = rep.get(slug)[1]
    if request.GET and request.method=='GET':
        form = AccountBallanceForm(request.GET)
        if form.is_valid():
            date_start = form.cleaned_data.get('date_start')
            date_end = form.cleaned_data.get('date_end')
            accounts = form.cleaned_data.get('accounts')
            
            res = AccountAddonService.objects.all()
            if date_start:
                res = res.filter(activated__gte=date_start)
                
            if date_end:
                res = res.filter(deactivated__lte=date_end)
                
            if accounts:
                res = res.filter(account__in=accounts)
            table = AccountAddonServiceReport(res)
            table_to_report = RequestConfig(request, paginate=True if not request.GET.get('paginate')=='False' else False).configure(table)
            if table_to_report:
                return create_report_http_response(table_to_report, request)
            #print res[0].SUMM
            return {'form': form, 'table': table, 'name': name, 'slug': slug}
        else:
            return {'form': form, 'name': name, 'slug': slug}
    form = AccountBallanceForm()
    return {'form': form, 'name': name, 'slug': slug}
コード例 #9
0
ファイル: suppagreement.py プロジェクト: ra3sad/ExpertBilling
def suppagreement(request):
    if not (request.user.account.has_perm('billservice.view_suppagreement')):
        messages.error(request,
                       _(u'У вас нет прав на доступ в этот раздел.'),
                       extra_tags='alert-danger')
        return HttpResponseRedirect('/ebsadmin/')

    res = SuppAgreement.objects.all().extra(
        select={
            'accounts_count':
            'SELECT count(*) FROM billservice_accountsuppagreement WHERE suppagreement_id=billservice_suppagreement.id'
        })
    table = SuppAgreementTable(res)
    table_to_report = RequestConfig(
        request,
        paginate=False
        if request.GET.get('paginate') == 'False' else True).configure(table)
    if table_to_report:
        return create_report_http_response(table_to_report, request)
    return {
        "list_url": reverse('suppagreement'),
        "list_header": _(u'Вид дополнительного соглашения'),
        "add_btn_url": reverse('suppagreement_edit'),
        "table": table
    }
コード例 #10
0
 def process_response(self, request, response):
     table_to_report = getattr(request, REQUEST_VARIABLE, None)
     current_content_type = response.get('Content-Type', None)
     if table_to_report and current_content_type not in\
             REPORT_CONTENT_TYPES:
         return create_report_http_response(table_to_report, request)
     return response
コード例 #11
0
ファイル: sms.py プロジェクト: ra3sad/ExpertBilling
def sms(request):

    if not (request.user.account.has_perm('billservice.view_news')):
        messages.error(request,
                       _(u'У вас нет прав на доступ в этот раздел.'),
                       extra_tags='alert-danger')
        return HttpResponseRedirect('/ebsadmin/')

    if request.GET:
        data = request.GET

        #pageitems = 100
        form = SearchSmsForm(data)
        if data and form.is_valid():

            phone = form.cleaned_data.get('phone')
            accounts = form.cleaned_data.get('accounts')
            backend = form.cleaned_data.get('backend')
            publish_date = form.cleaned_data.get('publish_date')

            sended_from = form.cleaned_data.get('sended_from')
            sended_to = form.cleaned_data.get('sended_to')

            query = Message.objects.all()

            if phone:
                query = query.filter(to__istartswith=phone)

            if accounts:
                query = query.filter(account__in=accounts)

            if backend:
                query = query.filter(backend=backend)

            if publish_date:
                query = query.filter(publish_date=publish_date)

            if sended_from:
                query = query.filter(sended=sended_from)

            if sended_to:
                query = query.filter(sended=sended_to)

            res = query
            table = MessageTable(res)
            table_to_report = RequestConfig(
                request,
                paginate=False if request.GET.get('paginate') == 'False' else
                True).configure(table)
            if table_to_report:
                return create_report_http_response(table_to_report, request)

            return {"table": table, 'form': form, 'resultTab': True}

        else:
            return {'status': False, 'form': form}
    else:
        form = SearchSmsForm()
        return {'form': form}
コード例 #12
0
def index_function_view(request):
    objs = Person.objects.all()
    table = TestTable(objs)
    table_to_report = RequestConfig(request).configure(table)
    if table_to_report:
        return create_report_http_response(table_to_report, request)
    return render_to_response('test_app/person_list.html', {'table': table},
                              context_instance=RequestContext(request))
コード例 #13
0
ファイル: views.py プロジェクト: swipswaps/AutoDeploy
def manage_servers(request):
    name = "Servers"
    xlstable = ServersReport(Server.objects.all())
    table_to_report = RequestConfigReport(request, paginate={"per_page": 15}).configure(xlstable)
    if table_to_report:
        return create_report_http_response(table_to_report, request)
    return render_to_response("modify.html", {"name": name, "table": xlstable},
                              context_instance=RequestContext(request))
コード例 #14
0
ファイル: payment.py プロジェクト: ra3sad/ExpertBilling
def payment(request):
        
    if  not (request.user.account.has_perm('billservice.view_transaction')):
        messages.error(request, _(u'У вас нет прав на доступ в этот раздел.'), extra_tags='alert-danger')
        return HttpResponseRedirect('/ebsadmin/')


    if request.GET: 
        data = request.GET

        #pageitems = 100
        form = PaymentSearchForm(data)
        if form.is_valid():
            
            accounts = form.cleaned_data.get('accounts')
            payment = form.cleaned_data.get('payment')
            date_start = form.cleaned_data.get('date_start')
            date_end = form.cleaned_data.get('date_end')
            paid_start = form.cleaned_data.get('paid_start')
            paid_end = form.cleaned_data.get('paid_end')
            status = form.cleaned_data.get('status')
            
            res = Payment.objects.all()
            
            if payment:
                res = res.filter(id=payment)
                
            if accounts:
                res = res.filter(account_id__in=accounts)

            if date_start:
                res = res.filter(created_on__gte=date_start)

            if date_end:
                res = res.filter(created_on__lte=date_end)
                

            if paid_start:
                res = res.filter(paid_on__gte=paid_start)

            if paid_end:
                res = res.filter(paid_on__lte=paid_end)
                
            if status:
                res = res.filter(status=status)
                
            table = PaymentTable(res)
            table_to_report = RequestConfig(request, paginate=False if request.GET.get('paginate')=='False' else True).configure(table)
            if table_to_report:
                return create_report_http_response(table_to_report, request)
            
            return {"table": table,  'form':form, 'resultTab':True}   
    
        else:
            return {'status':False, 'form':form}
    else:
        form = PaymentSearchForm()
        return { 'form':form}   
コード例 #15
0
ファイル: views.py プロジェクト: VinayakShukl/AccessControl
def details(request):
    global reqtable, chartList
    #RequestConfig(request).configure(reqTable)
    table_to_report = RequestConfig(request, paginate={"per_page": 15}).configure(reqtable)
    if table_to_report:
        return create_report_http_response(table_to_report, request)
    return render_to_response('details.html',
                              {'title': "Details", 'info': reqtable, 'chart': chartList},
                              context_instance=RequestContext(request))
コード例 #16
0
def index_function_view(request):
    objs = Person.objects.all()
    table = TestTable(objs)
    table_to_report = RequestConfig(request).configure(table)
    if table_to_report:
        return create_report_http_response(table_to_report, request)
    return render_to_response('test_app/person_list.html',
                              {'table': table},
                              context_instance=RequestContext(request))
コード例 #17
0
def accountprepaystraffic(request):

    if not (request.user.account.has_perm(
            'billservice.view_accountprepaystraffic')):
        messages.error(request,
                       _(u'У вас нет прав на доступ в этот раздел.'),
                       extra_tags='alert-danger')
        return HttpResponseRedirect('/ebsadmin/')

    if request.method == 'GET' and request.GET:
        data = request.GET

        #pageitems = 100
        form = AccountPrepaysTraficSearchForm(data)
        if form.is_valid():

            account = form.cleaned_data.get('account')
            group = form.cleaned_data.get('group')
            current = form.cleaned_data.get('current')
            tariff = form.cleaned_data.get('tariff')
            date_start = form.cleaned_data.get('date_start')
            date_end = form.cleaned_data.get('date_end')

            res = AccountPrepaysTrafic.objects.all().order_by(
                'account_tarif__account', 'current')
            if account:
                res = res.filter(account_tarif__account__id__in=account)

            if group:
                res = res.filter(prepaid_traffic__group__in=group)

            if tariff:
                res = res.filter(account_tarif__tarif__in=tariff)

            if current:
                res = res.filter(current=current)

            if date_start:
                res = res.filter(datetime__gte=date_start)
            if date_end:
                res = res.filter(datetime__lte=date_end)

            table = AccountPrepaysTraficTable(res)
            table_to_report = RequestConfig(
                request,
                paginate=False if request.GET.get('paginate') == 'False' else
                True).configure(table)
            if table_to_report:
                return create_report_http_response(table_to_report, request)

            return {"table": table, 'form': form, 'resultTab': True}

        else:
            return {'status': False, 'form': form}
    else:
        form = AccountPrepaysTraficSearchForm()
        return {'form': form}
コード例 #18
0
ファイル: sms.py プロジェクト: brat002/ebscab
def sms(request):
        
    if  not (request.user.account.has_perm('billservice.view_news')):
        messages.error(request, _(u'У вас нет прав на доступ в этот раздел.'), extra_tags='alert-danger')
        return HttpResponseRedirect('/ebsadmin/')


    if request.GET: 
        data = request.GET

        #pageitems = 100
        form = SearchSmsForm(data)
        if data and form.is_valid():
            
            phone = form.cleaned_data.get('phone')
            accounts = form.cleaned_data.get('accounts')
            backend = form.cleaned_data.get('backend')
            publish_date = form.cleaned_data.get('publish_date')
            
            sended_from = form.cleaned_data.get('sended_from')
            sended_to = form.cleaned_data.get('sended_to')

            
            
            query = Message.objects.all()
            
            if phone:
                query = query.filter(to__istartswith=phone)

            if accounts:
                query = query.filter(account__in=accounts)

            if backend:
                query = query.filter(backend=backend)

            if publish_date:
                query = query.filter(publish_date=publish_date)
                
            if sended_from:
                query = query.filter(sended=sended_from)

            if sended_to:
                query = query.filter(sended=sended_to)

            res = query
            table = MessageTable(res)
            table_to_report = RequestConfig(request, paginate=False if request.GET.get('paginate')=='False' else True).configure(table)
            if table_to_report:
                return create_report_http_response(table_to_report, request)
            
            return {"table": table,  'form':form, 'resultTab':True}   
    
        else:
            return {'status':False, 'form':form}
    else:
        form = SearchSmsForm()
        return { 'form':form}   
コード例 #19
0
ファイル: views.py プロジェクト: aqueiroz/CTS
 def get(self, request, *args, **kwargs):
     param_report = "%s-%s" % (DEFAULT_PARAM_PREFIX, self.table_class.__name__.lower())
     if self.request.GET.get(param_report, ''):
         # create the table; middleware will generate the CSV response
         queryset = self.get_filter().qs
         table = self.get_table(queryset, downloadable=True)
         table.param_report = param_report
         return create_report_http_response(table, request)
     context = self.get_context_data(**kwargs)
     return self.render_to_response(context)
コード例 #20
0
ファイル: trafficclass.py プロジェクト: brat002/ebscab
def trafficnode_list(request):
    if  not (request.user.account.has_perm('nas.view_trafficnode')):
        messages.error(request, _(u'У вас нет прав на доступ в этот раздел.'), extra_tags='alert-danger')
        return HttpResponseRedirect('/ebsadmin/')
    id = request.GET.get("id")
    res = TrafficNode.objects.filter(traffic_class__id=id)
    table = TrafficNodeTable(res)
    table_to_report = RequestConfig(request, paginate=True if not request.GET.get('paginate')=='False' else False).configure(table)
    if table_to_report:
        return create_report_http_response(table_to_report, request)
    return {"table": table, 'item':TrafficClass.objects.get(id=id)} 
コード例 #21
0
ファイル: globalstat.py プロジェクト: brat002/ebscab
def globalstat(request):
        
    if  not (request.user.account.has_perm('billservice.view_groupstat')):
        messages.error(request, _(u'У вас нет прав на доступ в этот раздел.'), extra_tags='alert-danger')
        return HttpResponseRedirect('/ebsadmin/')


    if request.GET: 
        data = request.GET

        #pageitems = 100
        form = GlobalStatSearchForm(data)
        if data and form.is_valid():
            
            accounts = form.cleaned_data.get('accounts')
            groups = form.cleaned_data.get('groups')
            daterange = form.cleaned_data.get('daterange') or []

            start_date, end_date = form.cleaned_data.get('start_date'),  form.cleaned_data.get('end_date')



            
            
            
            query = GlobalStat.objects.all().select_related().values('account__username').annotate(bytes_in=Sum('bytes_in'), bytes_out=Sum('bytes_out'), min=Min('datetime'), max=Max('datetime'))
            
            query.group_by = ['account__username']
            
            res = query
            #res = QuerySet(query=query, model=GlobalStat).values('account__username', 'datetime').annotate(bytes_in=Sum('bytes_in'), bytes_out=Sum('bytes_out'))
            
            if accounts:
                res = res.filter(account__in=accounts)

  
            if start_date:
                res = res.filter(datetime__gte=start_date)

            if end_date:
                res = res.filter(datetime__lte=end_date)
                
            table = GlobalStatTable(res)
            table_to_report = RequestConfig(request, paginate=False if request.GET.get('paginate')=='False' else True).configure(table)
            if table_to_report:
                return create_report_http_response(table_to_report, request)
            
            return {"table": table,  'form':form, 'resultTab':True}   
    
        else:
            return {'status':False, 'form':form}
    else:
        form = GlobalStatSearchForm()
        return { 'form':form}   
コード例 #22
0
def settlementperiod(request):
    if  not (request.user.account.has_perm('billservice.view_settlementperiod')):
        messages.error(request, _(u'У вас нет прав на доступ в этот раздел.'), extra_tags='alert-danger')
        return HttpResponseRedirect('/ebsadmin/')
    
    res = SettlementPeriod.objects.all()
    table = SettlementPeriodTable(res)
    table_to_report = RequestConfig(request, paginate=False if request.GET.get('paginate')=='False' else True).configure(table)
    if table_to_report:
        return create_report_http_response(table_to_report, request)
    return {"table": table} 
コード例 #23
0
def search_station(request):
    if 'city' in request.GET and request.GET['city']:
        city=request.GET['city'].lower()
        table=LocationTable(Location.objects.filter(parentcity__icontains=city))
        table_to_report=RequestConfig(request).configure(table)
        if table_to_report:
            return create_report_http_response(table_to_report,request)
        return render(request,'search_results.html',
                      {"location":table,"city":city})        
    else:
        return render(request,'search_form.html',{"alert":'Please enter a city.'})
コード例 #24
0
ファイル: views.py プロジェクト: swipswaps/AutoDeploy
def listTags(request, server):
    project = Project.objects.get(name=request.session["deploy_project"])
    c = Client(str(project.repo_type), server.ip, server.port,key=project.sshKey.key)

    res = c.ListTags(project.working_dir)
    print res
    table=TagTable(res)
    table_to_report = RequestConfig(request, paginate={"per_page": 15}).configure(table)
    if table_to_report:
            return create_report_http_response(table_to_report, request)
    return render_to_response("deploy2.html", {"project":project,"count":len(res),"mode":"tags","tags":table}, context_instance=RequestContext(request))
コード例 #25
0
ファイル: views.py プロジェクト: trendspotter/CTS
 def get(self, request, *args, **kwargs):
     param_report = "%s-%s" % (DEFAULT_PARAM_PREFIX,
                               self.table_class.__name__.lower())
     if self.request.GET.get(param_report, ''):
         # create the table; middleware will generate the CSV response
         queryset = self.get_filter().qs
         table = self.get_table(queryset, downloadable=True)
         table.param_report = param_report
         return create_report_http_response(table, request)
     context = self.get_context_data(**kwargs)
     return self.render_to_response(context)
コード例 #26
0
ファイル: nasses.py プロジェクト: brat002/ebscab
def nas(request):
    if  not (request.user.account.has_perm('nas.view_nas')):
        messages.error(request, _(u'У вас нет прав на доступ в этот раздел.'), extra_tags='alert-danger')
        return HttpResponseRedirect('/ebsadmin/')
    res = Nas.objects.all()
    table = NasTable(res)
    table_to_report = RequestConfig(request, paginate=False if request.GET.get('paginate')=='False' else True).configure(table)
    if table_to_report:
        return create_report_http_response(table_to_report, request)
            
    return {"table": table} 
コード例 #27
0
ファイル: views.py プロジェクト: swipswaps/AutoDeploy
def projects(request):
    name = "Projects"
    if request.user.is_superuser:
        xlstable = ProjectReport(Project.objects.all())
    else:
        projects = User_Project.objects.filter(user_id=request.user.id).values_list('project',flat=True)
        xlstable = ProjectReport(Project.objects.filter(name__in=list(projects)))
    table_to_report = RequestConfigReport(request, paginate={"per_page": 15}).configure(xlstable)
    if table_to_report:
        return create_report_http_response(table_to_report, request)
    return render_to_response("modify.html", {"name": name, "table": xlstable},
                              context_instance=RequestContext(request))
コード例 #28
0
ファイル: hardwaretype.py プロジェクト: ra3sad/ExpertBilling
def hardwaretype(request):
    if  not (request.user.account.has_perm('billservice.view_hardwaretype')):
        messages.error(request, _(u'У вас нет прав на доступ в этот раздел.'), extra_tags='alert-danger')
        return HttpResponseRedirect('/ebsadmin/')
    
    res = HardwareType.objects.all()
    table = HardwareTypeTable(res)
    table_to_report = RequestConfig(request, paginate=False).configure(table)
    if table_to_report:
        return create_report_http_response(table_to_report, request)
            
    return {"table": table} 
コード例 #29
0
ファイル: dynamicfields.py プロジェクト: brat002/ebscab
def dynamicschemafield(request):
    if  not (request.user.account.has_perm('dynamicmodel.change_dynamicschemafield')):
        messages.error(request, _(u'У вас нет прав на доступ в этот раздел.'), extra_tags='alert-danger')
        return HttpResponseRedirect('/ebsadmin/')
    
    res = DynamicSchemaField.objects.all()
    table = DynamicSchemaFieldTable(res)
    table_to_report = RequestConfig(request, paginate=False if request.GET.get('paginate')=='False' else True).configure(table)
    
    if table_to_report:
        return create_report_http_response(table_to_report, request)
            
    return {"table": table} 
コード例 #30
0
def registrationrequest(request):

    if not (request.user.account.has_perm("billservice.view_registrationrequest")):
        messages.error(request, _(u"У вас нет прав на просмотр запросов на подключение."), extra_tags="alert-danger")
        return HttpResponseRedirect("/ebsadmin/")
    res = RegistrationRequest.objects.all()
    table = RegistrationRequestTable(res)
    table_to_report = RequestConfig(
        request, paginate=False if request.GET.get("paginate") == "False" else True
    ).configure(table)
    if table_to_report:
        return create_report_http_response(table_to_report, request)

    return {"list_url": reverse("registrationrequest"), "list_header": _(u"Запросы на подключение"), "table": table}
コード例 #31
0
def accountprepaystraffic(request):
        
    if  not (request.user.account.has_perm('billservice.view_accountprepaystraffic')):
        messages.error(request, _(u'У вас нет прав на доступ в этот раздел.'), extra_tags='alert-danger')
        return HttpResponseRedirect('/ebsadmin/')
    
    if request.method=='GET' and request.GET: 
        data = request.GET

        #pageitems = 100
        form = AccountPrepaysTraficSearchForm(data)
        if form.is_valid():
            
            account = form.cleaned_data.get('account')
            group = form.cleaned_data.get('group')
            current = form.cleaned_data.get('current')
            tariff = form.cleaned_data.get('tariff')
            date_start = form.cleaned_data.get('date_start')
            date_end = form.cleaned_data.get('date_end')

            res = AccountPrepaysTrafic.objects.all().order_by('account_tarif__account', 'current')
            if account:
                res = res.filter(account_tarif__account__id__in=account)

            if group:
                res = res.filter(prepaid_traffic__group__in=group)

            if tariff:
                res = res.filter(account_tarif__tarif__in=tariff)
                
            if current:
                res = res.filter(current=current)
                
            if date_start:
                res = res.filter(datetime__gte=date_start)
            if date_end:
                res = res.filter(datetime__lte=date_end)
                
            table = AccountPrepaysTraficTable(res)
            table_to_report = RequestConfig(request, paginate=False if request.GET.get('paginate')=='False' else True).configure(table)
            if table_to_report:
                return create_report_http_response(table_to_report, request)
            
            return {"table": table,  'form':form, 'resultTab':True}   
    
        else:
            return {'status':False, 'form':form}
    else:
        form = AccountPrepaysTraficSearchForm()
        return { 'form':form}   
コード例 #32
0
ファイル: addonservice.py プロジェクト: brat002/ebscab
def addonservice(request):
    if  not (request.user.account.has_perm('billservice.view_addonservice')):
        messages.error(request, _(u'У вас нет прав на доступ в этот раздел.'), extra_tags='alert-danger')
        return HttpResponseRedirect('/ebsadmin/')
    res = AddonService.objects.all()
    table = AddonServiceTable(res)
    table_to_report = RequestConfig(request, paginate=False if request.GET.get('paginate')=='False' else True).configure(table)
    if table_to_report:
        return create_report_http_response(table_to_report, request)
    return {
        "list_url": reverse('addonservice'),
        "list_header": _(u'Подключаемые услуги'),
        "add_btn_url": reverse('addonservice_edit'),
        "table": table
    }
コード例 #33
0
ファイル: views.py プロジェクト: giam-forte/ExpertBilling
def transactionreport(request):

    if not (request.user.account.has_perm("billservice.view_transaction")):
        return {"status": False}

    res = Transaction.objects.filter(systemuser=request.user.account).order_by("-created")

    table = CashierReportTable(res)
    table_to_report = RequestConfig(
        request, paginate=False if request.GET.get("paginate") == "False" else True
    ).configure(table)
    if table_to_report:
        return create_report_http_response(table_to_report, request)

    return {"table": table}
コード例 #34
0
def actionlog(request):
    if not (request.user.account.has_perm('object_log.view_logitem')):
        messages.error(request,
                       _(u'У вас нет прав на доступ в этот раздел.'),
                       extra_tags='alert-danger')
        return HttpResponseRedirect('/ebsadmin/')

    if request.GET:
        form = LogItemFilterForm(request.GET)
        if form.is_valid():
            id = form.cleaned_data.get("id")
            content_type = form.cleaned_data.get("ct")
            action = form.cleaned_data.get("action")
            user = form.cleaned_data.get("user")
            start_date = form.cleaned_data.get("start_date")
            end_date = form.cleaned_data.get("end_date")

            res = LogItem.objects.all()

            if id:
                res = res.filter(object_id1=id)

            if content_type:
                res = res.filter(object_type1=content_type)

            if action:
                res = res.filter(action__in=action)
            if user:
                res = res.filter(user__in=user)

            if start_date:
                res = res.filter(timestamp__gte=start_date)
            if end_date:
                res = res.filter(timestamp__lte=end_date)

            res = res.order_by('-id').select_related('user')
            table = ActionLogTable(res)
            table_to_report = RequestConfig(
                request,
                paginate=False if request.GET.get('paginate') == 'False' else
                True).configure(table)
            if table_to_report:
                return create_report_http_response(table_to_report, request)
    else:
        table = None
        form = LogItemFilterForm()

    return {"table": table, 'form': form}
コード例 #35
0
ファイル: card.py プロジェクト: ra3sad/ExpertBilling
def salecard(request):
    if  not (request.user.account.has_perm('billservice.view_salecard')):
        messages.error(request, _(u'У вас нет прав на доступ в этот раздел.'), extra_tags='alert-danger')
        return HttpResponseRedirect('/ebsadmin/')
    
    res = SaleCard.objects.all()
    table = SaleCardTable(res)
    table_to_report = RequestConfig(request, paginate=True if not request.GET.get('paginate')=='False' else False).configure(table)
    if table_to_report:
        return create_report_http_response(table_to_report, request)
            
    return {
        "list_url": reverse('salecard'),
        "list_header": _(u'Накладные на карты'),
        "table": table
    }
コード例 #36
0
ファイル: suppagreement.py プロジェクト: brat002/ebscab
def suppagreement(request):
    if  not (request.user.account.has_perm('billservice.view_suppagreement')):
        messages.error(request, _(u'У вас нет прав на доступ в этот раздел.'), extra_tags='alert-danger')
        return HttpResponseRedirect('/ebsadmin/')
    
    res = SuppAgreement.objects.all().extra(select={'accounts_count':'SELECT count(*) FROM billservice_accountsuppagreement WHERE suppagreement_id=billservice_suppagreement.id'})
    table = SuppAgreementTable(res)
    table_to_report = RequestConfig(request, paginate=False if request.GET.get('paginate')=='False' else True).configure(table)
    if table_to_report:
        return create_report_http_response(table_to_report, request)
    return {
        "list_url": reverse('suppagreement'),
        "list_header": _(u'Вид дополнительного соглашения'),
        "add_btn_url": reverse('suppagreement_edit'),
        "table": table
    }
コード例 #37
0
ファイル: trafficclass.py プロジェクト: ra3sad/ExpertBilling
def trafficclass(request):
    if not (request.user.account.has_perm('nas.view_trafficclass')):
        messages.error(request,
                       _(u'У вас нет прав на доступ в этот раздел.'),
                       extra_tags='alert-danger')
        return HttpResponseRedirect('/ebsadmin/')

    res = TrafficClass.objects.all()
    table = TrafficClassTable(res)
    table_to_report = RequestConfig(
        request,
        paginate=False
        if request.GET.get('paginate') == 'False' else True).configure(table)
    if table_to_report:
        return create_report_http_response(table_to_report, request)
    return {"table": table}
コード例 #38
0
ファイル: trafficclass.py プロジェクト: ra3sad/ExpertBilling
def trafficnode_list(request):
    if not (request.user.account.has_perm('nas.view_trafficnode')):
        messages.error(request,
                       _(u'У вас нет прав на доступ в этот раздел.'),
                       extra_tags='alert-danger')
        return HttpResponseRedirect('/ebsadmin/')
    id = request.GET.get("id")
    res = TrafficNode.objects.filter(traffic_class__id=id)
    table = TrafficNodeTable(res)
    table_to_report = RequestConfig(
        request,
        paginate=True if not request.GET.get('paginate') == 'False' else
        False).configure(table)
    if table_to_report:
        return create_report_http_response(table_to_report, request)
    return {"table": table, 'item': TrafficClass.objects.get(id=id)}
コード例 #39
0
def cashierdailyreport(request, slug):

            
    name = rep.get(slug)[1]
    if request.GET and request.method=='GET':
        form = CachierReportForm(request.GET)
        if form.is_valid():
            class TypeTransactionsSumm(TableReport):
                type__name = django_tables.Column(verbose_name=u'Тип операции')
                summ = FormatFloatColumn()
                
                def __init__(self, form, *args, **kwargs):
                    super(TypeTransactionsSumm, self).__init__(form, *args, **kwargs)
                    self.footer_data = self.TableDataClass(data=[pp.aggregate(summ=Sum('summ'))], table=self)
                    self.footer = django_tables.rows.BoundRows(self.footer_data, self)    
                class Meta:
                    attrs = {'class': 'table table-striped table-bordered table-condensed"'}
                    annotations = ('summ', )
                    
            date_start = form.cleaned_data.get('date_start')
            date_end = form.cleaned_data.get('date_end')
            systemuser = form.cleaned_data.get('systemuser')
            res = Transaction.objects.all()
            if date_start:
                res = res.filter(created__gte=date_start)
            if date_end:
                res = res.filter(created__lte=date_end+datetime.timedelta(days=1))
            
            
            if systemuser:
                res = res.filter(systemuser=systemuser)
                
            pp = res
            res = res.values('type__name').annotate(summ=Sum('summ')).order_by()
            


            table = TypeTransactionsSumm(res)
            table_to_report = RequestConfig(request, paginate=False).configure(table)
            if table_to_report:
                return create_report_http_response(table_to_report, request)

            return {'form': form, 'table': table, 'name': name, 'slug': slug}
        else:
            return {'form': form, 'name': name, 'slug': slug}
    form = CachierReportForm()
    return {'form': form, 'name': name, 'slug': slug}
コード例 #40
0
def periodicalservicelog(request):
        
    if  not (request.user.account.has_perm('billservice.view_periodicalservicelog')):
        messages.error(request, _(u'У вас нет прав на доступ в этот раздел.'), extra_tags='alert-danger')
        return HttpResponseRedirect('/ebsadmin/')

    if request.method=='GET' and request.GET: 
        data = request.GET

        #pageitems = 100
        form = PeriodicalServiceLogSearchForm(data)
        if form.is_valid():
            
            account = form.cleaned_data.get('account')
            tariff = form.cleaned_data.get('tariff')
            periodicalservice = form.cleaned_data.get('periodicalservice')

            
            
            
            res = PeriodicalServiceLog.objects.all()
            if account:
                res = res.filter(accounttarif__account__id__in=account)

            if tariff:
                res = res.filter(service__tarif=tariff)

            
            if periodicalservice:
                res = res.filter(service=periodicalservice)

            
            table = PeriodicalServiceLogTable(res)
            table_to_report = RequestConfig(request, paginate=False if request.GET.get('paginate')=='False' else True).configure(table)
            if table_to_report:
                return create_report_http_response(table_to_report, request)
            
            
            
            return {"table": table,  'form':form, 'resultTab':True}   
    
        else:
            return {'status':False, 'form':form}
    else:
        form = PeriodicalServiceLogSearchForm()
        return { 'form':form}   
コード例 #41
0
ファイル: tpchangerule.py プロジェクト: ra3sad/ExpertBilling
def tpchangerule(request):
    if  not (request.user.account.has_perm('billservice.view_tpchangerule')):
        messages.error(request, _(u'У вас нет прав на доступ в этот раздел.'), extra_tags='alert-danger')
        return HttpResponseRedirect('/ebsadmin/')

    items = TPChangeRule.objects.all()
    table = TPChangeRuleTable(items)
    table_to_report = RequestConfig(request, paginate=False if request.GET.get('paginate')=='False' else True).configure(table)
    if table_to_report:
        return create_report_http_response(table_to_report, request)
    
    return {
        "list_url": reverse('tpchangerule'),
        "list_header": _(u'Правила смены тарифных планов'),
        "add_btn_url": reverse('tpchangerule_edit'),
        "table": table
    }
コード例 #42
0
ファイル: views.py プロジェクト: longshiqing/AutoDeploy
def listCommits(request, filter=None):
    #if request.method == "GET":
    res = None
    branches = []
    c = None
    server = None
    project = None
    print request.GET.get("refresh", "False")
    if request.GET.get("refresh", "False") == "True":
        if "commits" in request.session:
            request.session.pop("commits", "")
            request.session.pop("branchs", "")
            return redirect("./listCommits")
    if filter or not "commits" in request.session:
        server = Server.objects.get(name=request.session["deploy_server"])
        project = Project.objects.get(name=request.session["deploy_project"])
        c = Client("git", server.ip, server.port, key=project.sshKey.key)
        c.Pull(project.repo, project.working_dir, project.sshKey.key)
        res = c.ListCommits(project.working_dir, options={"branch": filter})
        request.session["commits"] = res
    else:
        res = request.session["commits"]

    if not "branchs" in request.session:
        if not c:
            server = Server.objects.get(name=request.session["deploy_server"])
            project = Project.objects.get(
                name=request.session["deploy_project"])
            c = Client("git", server.ip, server.port, key=project.sshKey.key)
        branches = c.ListBranchs(project.working_dir)
    else:
        branches = request.session["branchs"]
        request.session["branchs"] = branches
    table = CommitTable(res)
    table_to_report = RequestConfig(request, paginate={
        "per_page": 15
    }).configure(table)
    if table_to_report:
        return create_report_http_response(table_to_report, request)
    return render_to_response("deploy2.html", {
        "mode": "commits",
        "commits": table,
        "branchs": branches,
        "current_branch": filter
    },
                              context_instance=RequestContext(request))
コード例 #43
0
ファイル: groupstat.py プロジェクト: ra3sad/ExpertBilling
def groupstat(request):
        
    if  not (request.user.account.has_perm('billservice.view_groupstat')):
        messages.error(request, _(u'У вас нет прав на доступ в этот раздел.'), extra_tags='alert-danger')
        return HttpResponseRedirect('/ebsadmin/')


    if request.GET: 
        data = request.GET

        #pageitems = 100
        form = GroupStatSearchForm(data)
        if form.is_valid():
            
            accounts = form.cleaned_data.get('accounts')
            groups = form.cleaned_data.get('groups')
            date_start = form.cleaned_data.get('date_start')
            date_end = form.cleaned_data.get('date_end')

           
            
            res = GroupStat.objects.all().select_related().values('account__username', 'group__name').annotate(summ_bytes=Sum('bytes'))
            if accounts:
                res = res.filter(account__in=accounts)
            if groups:
                res = res.filter(group__in=groups)
  
            if date_start:
                res = res.filter(datetime__gte=date_start)

            if date_end:
                res = res.filter(datetime__lte=date_end)
                
            table = GroupStatTable(res)
            table_to_report = RequestConfig(request, paginate=False if request.GET.get('paginate')=='False' else True).configure(table)
            if table_to_report:
                return create_report_http_response(table_to_report, request)
            
            return {"table": table,  'form':form, 'resultTab':True}   
    
        else:
            return {'status':False, 'form':form}
    else:
        form = GroupStatSearchForm()
        return { 'form':form}   
コード例 #44
0
ファイル: actionlog.py プロジェクト: brat002/ebscab
def actionlog(request):
    if  not (request.user.account.has_perm('object_log.view_logitem')):
        messages.error(request, _(u'У вас нет прав на доступ в этот раздел.'), extra_tags='alert-danger')
        return HttpResponseRedirect('/ebsadmin/')
    
    if request.GET:
        form = LogItemFilterForm(request.GET)
        if form.is_valid():
            id = form.cleaned_data.get("id")
            content_type = form.cleaned_data.get("ct")
            action = form.cleaned_data.get("action")
            user = form.cleaned_data.get("user")
            start_date = form.cleaned_data.get("start_date")
            end_date = form.cleaned_data.get("end_date")
            
            
            
            res = LogItem.objects.all()
            
            if id:
                res = res.filter(object_id1=id)
                
            if content_type:
                res = res.filter(object_type1=content_type)
                
            if action:
                res = res.filter(action__in=action)
            if user:
                res = res.filter(user__in=user)
                
            if start_date:
                res = res.filter(timestamp__gte=start_date)
            if end_date:
                res = res.filter(timestamp__lte=end_date)
                
            res = res.order_by('-id').select_related('user')
            table = ActionLogTable(res)
            table_to_report = RequestConfig(request, paginate=False if request.GET.get('paginate')=='False' else True).configure(table)
            if table_to_report:
                return create_report_http_response(table_to_report, request)
    else:
        table = None
        form = LogItemFilterForm()
        
    return {"table": table, 'form': form} 
コード例 #45
0
ファイル: views.py プロジェクト: ra3sad/ExpertBilling
def transactionreport(request):

    if not (request.user.account.has_perm('billservice.view_transaction')):
        return {'status': False}

    res = Transaction.objects.filter(
        systemuser=request.user.account).order_by('-created')

    table = CashierReportTable(res)
    table_to_report = RequestConfig(
        request,
        paginate=False
        if request.GET.get('paginate') == 'False' else True).configure(table)
    if table_to_report:
        return create_report_http_response(table_to_report, request)

    return {
        "table": table,
    }
コード例 #46
0
def admin_dashboard(request):

    accounts_count = Account.objects.count()
    res = Comment.objects.all().order_by('-created')
    table = CommentTable(res)

    table_to_report = RequestConfig(
        request,
        paginate=False
        if request.GET.get('paginate') == 'False' else True).configure(table)
    if table_to_report:
        return create_report_http_response(table_to_report, request)

    sessions_count = ActiveSession.objects.filter(
        session_status='ACTIVE').count()
    systemusers_count = SystemUser.objects.all().count()

    accounts_today = Account.objects.filter(
        created__gte=datetime.datetime.now() -
        datetime.timedelta(seconds=86400)).count()
    transactions_today = Transaction.objects.filter(
        created__gte=datetime.datetime.now() -
        datetime.timedelta(seconds=86400)).count()

    accounts_minus = Account.objects.filter(ballance__lte=0).count()
    accounts_plus = Account.objects.filter(ballance__gt=0).count()

    accounts_inactive = Account.objects.filter(~Q(status=1)).count()

    registrationrequest_count = RegistrationRequest.objects.all().count()

    return {
        'accounts_count': accounts_count,
        'comment_table': table,
        'sessions_count': sessions_count,
        'systemusers_count': systemusers_count,
        'accounts_today': accounts_today,
        'transactions_today': transactions_today,
        'accounts_minus': accounts_minus,
        'accounts_plus': accounts_plus,
        'accounts_inactive': accounts_inactive,
        'registrationrequest_count': registrationrequest_count
    }
コード例 #47
0
def dynamicschemafield(request):
    if not (request.user.account.has_perm(
            'dynamicmodel.change_dynamicschemafield')):
        messages.error(request,
                       _(u'У вас нет прав на доступ в этот раздел.'),
                       extra_tags='alert-danger')
        return HttpResponseRedirect('/ebsadmin/')

    res = DynamicSchemaField.objects.all()
    table = DynamicSchemaFieldTable(res)
    table_to_report = RequestConfig(
        request,
        paginate=False
        if request.GET.get('paginate') == 'False' else True).configure(table)

    if table_to_report:
        return create_report_http_response(table_to_report, request)

    return {"table": table}
コード例 #48
0
def news(request):
    if not (request.user.account.has_perm('billservice.view_news')):
        messages.error(request,
                       _(u'У вас нет прав на доступ в этот раздел.'),
                       extra_tags='alert-danger')
        return HttpResponseRedirect('/ebsadmin/')
    res = News.objects.all()
    table = NewsTable(res)
    table_to_report = RequestConfig(
        request,
        paginate=False
        if request.GET.get('paginate') == 'False' else True).configure(table)
    if table_to_report:
        return create_report_http_response(table_to_report, request)
    return {
        "list_url": reverse('news'),
        "list_header": _(u'Компонент новостей'),
        "add_btn_url": reverse('news_edit'),
        "table": table
    }
コード例 #49
0
def search_aqi(request):
    global table_model
    if ('dt' in request.GET and request.GET['dt']) or ('st' in request.GET and request.GET['st']):
        dt=request.GET['dt']
        st=request.GET['st'][0:1].upper()+request.GET['st'][1:].lower()
        if dt=='':
            table_model=Hourlydata.objects.filter(stationname__icontains=st)
            table=HourlydataTable(table_model)
        elif st=='':
            table_model=Hourlydata.objects.filter(est_time=dt)
            table=HourlydataTable(table_model)
        else:
            table_model=Hourlydata.objects.filter(est_time=dt).filter(stationname__icontains=st)
            table=HourlydataTable(table_model)
        table_to_report=RequestConfig(request).configure(table)
        if table_to_report:
            return create_report_http_response(table_to_report,request)
        return render(request,'search_results.html',
                      {"aqi":table,"dt":dt,"st":st})
    else:
        return render(request,'search_form.html',{"alert":'Please enter a station or a timestamp.'})