Example #1
0
def report(request):
    '''
    @param request: http
    
    generate the data for the report.
    data is generated from hours_per_consumer
    
    '''
    _LOG.info("report called by method: %s" % (request.method))
    
    user = str(request.user)
    account = Account.objects.filter(login=user)[0].account_id
    if 'byMonth' in request.GET:
        month = int(request.GET['byMonth'].encode('ascii'))
        year = datetime.today().year
        start = datetime(year, month, 1)
        end =  datetime(year, month + 1, 1) - timedelta (days = 1)
    else:
        
        startDate = request.GET['startDate'].encode('ascii').split("/")
        endDate = request.GET['endDate'].encode('ascii').split("/")
        start = datetime(int(startDate[2]), int(startDate[0]), int(startDate[1]))
        end = datetime(int(endDate[2]), int(endDate[0]), int(endDate[1]))
    
    if 'env' in request.GET:
        environment = request.GET['env']
    else:
        environment = "All"
        
    list_of_rhics = []
    if 'rhic' in request.GET:
        my_uuid = request.GET['rhic']
        list_of_rhics = list(RHIC.objects.filter(uuid=my_uuid))
        results = hours_per_consumer(start, end, list_of_rhics, environment=environment)
        
    elif 'contract_number' in request.GET:
        contract = request.GET['contract_number']
        if contract == "All":
            list_of_rhics = list(RHIC.objects.filter(account_id=account))
            results = hours_per_consumer(start, end, list_of_rhics=list_of_rhics, environment=environment)
        else:
            results = hours_per_consumer(start, end, contract_number=contract, environment=environment)
    
    else:
        list_of_rhics = list(RHIC.objects.filter(account_id=account))
        results = hours_per_consumer(start, end, list_of_rhics=list_of_rhics, environment=environment)
    
    
    
        
    
    response = TemplateResponse(request, 'create_report/report.html',
                                 {'list': results, 'account': account,
                                   'start': start, 'end': end})
    return response
Example #2
0
def report(request):
    '''
    @param request: http
    
    generate the data for the report.
    data is generated from hours_per_consumer
    
    '''
    _LOG.info("report called by method: %s" % (request.method))

    user = str(request.user)
    account = Account.objects.filter(login=user)[0].account_id
    if 'byMonth' in request.GET:
        month = int(request.GET['byMonth'].encode('ascii'))
        year = datetime.today().year
        start = datetime(year, month, 1)
        end = datetime(year, month + 1, 1) - timedelta(days=1)
    else:

        startDate = request.GET['startDate'].encode('ascii').split("/")
        endDate = request.GET['endDate'].encode('ascii').split("/")
        start = datetime(int(startDate[2]), int(startDate[0]),
                         int(startDate[1]))
        end = datetime(int(endDate[2]), int(endDate[0]), int(endDate[1]))

    if 'env' in request.GET:
        environment = request.GET['env']
    else:
        environment = "All"

    list_of_rhics = []
    if 'rhic' in request.GET:
        my_uuid = request.GET['rhic']
        list_of_rhics = list(RHIC.objects.filter(uuid=my_uuid))
        results = hours_per_consumer(start,
                                     end,
                                     list_of_rhics,
                                     environment=environment)

    elif 'contract_number' in request.GET:
        contract = request.GET['contract_number']
        if contract == "All":
            list_of_rhics = list(RHIC.objects.filter(account_id=account))
            results = hours_per_consumer(start,
                                         end,
                                         list_of_rhics=list_of_rhics,
                                         environment=environment)
        else:
            results = hours_per_consumer(start,
                                         end,
                                         contract_number=contract,
                                         environment=environment)

    else:
        list_of_rhics = list(RHIC.objects.filter(account_id=account))
        results = hours_per_consumer(start,
                                     end,
                                     list_of_rhics=list_of_rhics,
                                     environment=environment)

    response = TemplateResponse(request, 'create_report/report.html', {
        'list': results,
        'account': account,
        'start': start,
        'end': end
    })
    return response
Example #3
0
def report_admin(request):
    '''
    @param request: http
    
    generate the data for the report.
    data is generated from hours_per_consumer
    
    '''
    _LOG.info("report called by method: %s" % (request.method))

    user = str(request.user)
    account = Account.objects.filter(login=user)[0].account_id
    if 'byMonth' in request.POST:
        month = int(request.POST['byMonth'].encode('ascii'))
        year = datetime.today().year
        start = datetime(year, month, 1)
        end = datetime(year, month + 1, 1) - timedelta(days=1)
    else:
        startDate = request.POST['startDate'].encode('ascii').split("/")
        endDate = request.POST['endDate'].encode('ascii').split("/")
        _LOG.info(startDate)
        start = datetime(int(startDate[2]), int(startDate[0]),
                         int(startDate[1]))
        end = datetime(int(endDate[2]), int(endDate[0]), int(endDate[1]))
        _LOG.info(start)

    if 'env' in request.POST:
        environment = request.POST['env']
    else:
        environment = "All"

    list_of_rhics = []
    if 'rhic' in request.POST:
        my_uuid = request.POST['rhic']
        list_of_rhics = list(RHIC.objects.filter(uuid=my_uuid))
        results = hours_per_consumer(start,
                                     end,
                                     list_of_rhics,
                                     environment=environment)

    elif 'contract_number' in request.POST:
        contract = request.POST['contract_number']
        if contract == "All":
            list_of_rhics = list(RHIC.objects.filter(account_id=account))
            results = hours_per_consumer(start,
                                         end,
                                         list_of_rhics=list_of_rhics,
                                         environment=environment)
        else:
            results = hours_per_consumer(start,
                                         end,
                                         contract_number=contract,
                                         environment=environment)

    else:
        list_of_rhics = list(RHIC.objects.filter(account_id=account))
        results = hours_per_consumer(start,
                                     end,
                                     list_of_rhics=list_of_rhics,
                                     environment=environment)

    format = "%a %b %d %H:%M:%S %Y"

    for c in results:
        for x in c:
            try:
                #x['start'] = datetime.fromordinal(x['start']()).strftime(format)
                #x['end'] = datetime.fromordinal(x['end']()).strftime(format)
                x['start'] = x['start']()
                x['end'] = x['end']()
            except:
                _LOG.error(sys.exc_info()[0])
                _LOG.error(sys.exc_info()[1])

    response_data = {}
    response_data['list'] = results
    response_data['account'] = account
    response_data['start'] = start.strftime(format)
    response_data['end'] = end.strftime(format)

    try:
        response = HttpResponse(simplejson.dumps(response_data))
    except:
        _LOG.error(sys.exc_info()[0])
        _LOG.error(sys.exc_info()[1])
        raise

    return response
Example #4
0
def report_admin(request):
    '''
    @param request: http
    
    generate the data for the report.
    data is generated from hours_per_consumer
    
    '''
    _LOG.info("report called by method: %s" % (request.method))
    
    user = str(request.user)
    account = Account.objects.filter(login=user)[0].account_id
    if 'byMonth' in request.POST:
        month = int(request.POST['byMonth'].encode('ascii'))
        year = datetime.today().year
        start = datetime(year, month, 1)
        end =  datetime(year, month + 1, 1) - timedelta (days = 1)
    else:
        startDate = request.POST['startDate'].encode('ascii').split("/")
        endDate = request.POST['endDate'].encode('ascii').split("/")
        _LOG.info(startDate);
        start = datetime(int(startDate[2]), int(startDate[0]), int(startDate[1]))
        end = datetime(int(endDate[2]), int(endDate[0]), int(endDate[1]))
        _LOG.info(start);
    
    if 'env' in request.POST:
        environment = request.POST['env']
    else:
        environment = "All"
        
    list_of_rhics = []
    if 'rhic' in request.POST:
        my_uuid = request.POST['rhic']
        list_of_rhics = list(RHIC.objects.filter(uuid=my_uuid))
        results = hours_per_consumer(start, end, list_of_rhics, environment=environment)
        
    elif 'contract_number' in request.POST:
        contract = request.POST['contract_number']
        if contract == "All":
            list_of_rhics = list(RHIC.objects.filter(account_id=account))
            results = hours_per_consumer(start, end, list_of_rhics=list_of_rhics, environment=environment)
        else:
            results = hours_per_consumer(start, end, contract_number=contract, environment=environment)
    
    else:
        list_of_rhics = list(RHIC.objects.filter(account_id=account))
        results = hours_per_consumer(start, end, list_of_rhics=list_of_rhics, environment=environment)
    
    format = "%a %b %d %H:%M:%S %Y"

    for c in results:
        for x in c:
            try:
                #x['start'] = datetime.fromordinal(x['start']()).strftime(format)
                #x['end'] = datetime.fromordinal(x['end']()).strftime(format)
                x['start'] = x['start']()
                x['end'] = x['end']()
            except:
                _LOG.error(sys.exc_info()[0])
                _LOG.error(sys.exc_info()[1])

    response_data = {}
    response_data['list'] = results
    response_data['account'] = account
    response_data['start'] = start.strftime(format)
    response_data['end'] = end.strftime(format)

    try:
        response = HttpResponse(simplejson.dumps(response_data))
    except:
        _LOG.error(sys.exc_info()[0])
        _LOG.error(sys.exc_info()[1])
        raise

    return response