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)