def weather_alerts(request): states = State.objects.all().order_by('name') marine_zones = MarineZone.objects.all().order_by('name') return render( request, 'weather_alerts.html', { 'state_groups': grouper(10, states), 'marine_zone_groups': grouper(10, marine_zones) })
def user_weather_alerts(request): """ GET /account/my_weather_alerts/ Account landing page """ user_weather_alerts = UserWeatherAlert.objects.filter(user=request.user).order_by('-weather_alert__expires') active = [uwa for uwa in user_weather_alerts if uwa.weather_alert.active] expired = [uwa for uwa in user_weather_alerts if not uwa.weather_alert.active] requested_page = request.GET.get('page', 1) try: requested_page = int(requested_page) except ValueError: return redirect('user_weather_alerts') paginated = Paginator(expired, 12) try: current_page = paginated.page(requested_page) except EmptyPageException: if requested_page == 0: return redirect('%s?page=%s' % (reverse('user_weather_alerts'), 1)) else: return redirect('%s?page=%s' % (reverse('user_weather_alerts'), paginated.num_pages)) previous_page_number = current_page.previous_page_number() if current_page.has_previous() else None next_page_number = current_page.next_page_number() if current_page.has_next() else None active_groups = grouper(3, active) expired_groups = grouper(3, current_page.object_list) return render( request, 'account/my_weather_alerts.html', { 'page': 'my_weather_alerts', 'user_profile_id': request.user.get_profile().id, 'active_groups': active_groups, 'active_count': len(active), 'expired_groups': expired_groups, 'expired_count': len(current_page.object_list), 'expired_count_total': len(expired), 'start_index': current_page.start_index(), 'end_index': current_page.end_index(), 'previous_page_number': previous_page_number, 'next_page_number': next_page_number, })