Exemplo n.º 1
0
def report_graph_data(request):
    # TODO: Remove this view. It has been replaced by a dashboard in reports
    today = datetime.date.today()
    report_date = today
    initial = {'report_year': report_date.year, 'report_month': report_date.month}
    form = ReportForm(request.GET or None, initial=initial)
    if form.is_valid():
        report_year = form.cleaned_data.get('report_year') or report_date.year
        report_month = form.cleaned_data.get('report_month') or report_date.month
        last_day = calendar.monthrange(report_year, report_month)[1]
        report_date = datetime.date(report_year, report_month, last_day)
    data = []
    start_date = datetime.date(report_date.year, report_date.month, 1)
    end_date = report_date
    incoming_count = Message.objects.filter(
        date__gte=start_date,
        date__lt=end_date+one_day,
        direction='I'
    ).count()
    outgoing_count = Message.objects.filter(
        date__gte=start_date,
        date__lt=end_date+one_day,
        direction='O'
    ).count()
    row = [end_date.isoformat(), incoming_count, outgoing_count]
    data.append(row)
    for i in range(1, 7):
        month = report_date.month - i
        year = report_date.year
        if month <= 0:
            month += 12
            year -= 1
        last_day = calendar.monthrange(year, month)[1]
        start_date = datetime.date(year, month, 1)
        end_date = datetime.date(year, month, last_day)
        incoming_count = Message.objects.filter(
            date__gte=start_date,
            date__lt=end_date+one_day,
            direction='I'
        ).count()
        outgoing_count = Message.objects.filter(
            date__gte=start_date,
            date__lt=end_date+one_day,
            direction='O'
        ).count()
        row = [end_date.isoformat(), incoming_count, outgoing_count]
        data.append(row)
    return HttpResponse(json.dumps(data), mimetype='application/json')
Exemplo n.º 2
0
def dashboard(request):
    today = datetime.date.today()
    report_date = today
    initial = {'report_year': report_date.year, 'report_month': report_date.month}
    form = ReportForm(request.GET or None, initial=initial)
    if form.is_valid():
        report_year = form.cleaned_data.get('report_year') or report_date.year
        report_month = form.cleaned_data.get('report_month') or report_date.month
        last_day = calendar.monthrange(report_year, report_month)[1]
        report_date = datetime.date(report_year, report_month, last_day)
    start_date = datetime.date(report_date.year, report_date.month, 1)
    end_date = report_date
    context = usage_report_context(start_date, end_date)
    context['report_date'] = report_date
    context['report_form'] = form
    # Graph data 
    return render_to_response('broadcast/dashboard.html', context,
                              RequestContext(request))