Exemple #1
0
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)
        })
Exemple #2
0
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,
        })