コード例 #1
0
def index(request):
    # Get years:
    years = set()
    Flight.clear_filter(request.user)
    flights = Flight._filtered
    for f in flights:
        years.add(f.date.year)
    years = list(years)
    years.sort(lambda x, y: y - x)  # reverse numerical
    year_hour_data = []
    for y in years:
        hours = total_hours(flights.filter(date__year=y))
        hours = '%0.f' % hours
        year_hour_data.append(Year_Hours(y, hours))

    # Get recent entries:
    recent_entries = flights.order_by(
        '-id')[:NUM_RECENT_ENTRIES_DISPLAYED_HOMEPAGE]

    # Get summary information:
    duration_sum = Flight.duration_sum()
    last_90 = Flight._filtered.filter(date__range=(today() -
                                                   datetime.timedelta(90),
                                                   today()))
    last_30 = Flight._filtered.filter(date__range=(today() -
                                                   datetime.timedelta(90),
                                                   today()))
    hours_in_last_90 = sum([f.duration for f in last_90])
    hours_in_last_30 = sum([f.duration for f in last_30])
    landings = Flight.total_landings_sum()
    landings_in_last_90 = sum([f.total_landings() for f in last_90])
    landings_in_last_30 = sum([f.total_landings() for f in last_30])

    context = {
        'flights': recent_entries,
        'flights_label': 'Recent entries',
        'year_hour_data': year_hour_data,
        'today': today,
        'duration_sum': duration_sum,
        'hours_in_last_90': hours_in_last_90,
        'hours_in_last_30': hours_in_last_30,
        'landings': landings,
        'landings_in_last_90': landings_in_last_90,
        'landings_in_last_30': landings_in_last_30,
        'user': request.user
    }

    return render(request, 'logbook/index.html', context)