Exemplo n.º 1
0
def signup(request, *args, **kwargs):
    place = url_to_place(*args, **kwargs)
    manager = get_schema_manager(request)
    if isinstance(place, Block):
        FormClass, type_code = BlockAlertForm, 'b'
    else:
        FormClass, type_code = LocationAlertForm, 'l'
    email_required = request.user.is_anonymous()
    if request.method == 'POST':
        form = FormClass(request.POST, email_required=email_required, request=request)
        if form.is_valid():
            return finish_signup(request, place, form.cleaned_data)
    else:
        schema_list = manager.filter(is_special_report=False).order_by('plural_name')
        schema_ids = [s.id for s in schema_list]
        form = FormClass(
            initial={
                'email': 'Enter your e-mail address',
                'radius': block_radius_value(request)[1],
                'frequency': '1',
                'include_new_schemas': True,
                'selected_schemas': schema_ids,
                'displayed_schemas': schema_ids,
                },
            email_required=email_required,
            request=request)
    context = get_place_info_for_request(request, *args, **kwargs)
    context['map_configuration'] = _preconfigured_map(context);
    context['form'] = form
    #context['schema_list'] = schema_list
    return eb_render(request, 'alerts/signup_form.html', context)
Exemplo n.º 2
0
def _place_detail_normalize_url(request, *args, **kwargs):
    context = get_place_info_for_request(request, *args, **kwargs)
    if context.get('block_radius') and 'radius' not in request.GET:
        # Normalize the URL so we always have the block radius.
        url = request.get_full_path()
        response = HttpResponse(status=302)
        if '?' in url:
            response['location'] = '%s&radius=%s' % (url, context['block_radius'])
        else:
            response['location'] = '%s?radius=%s' % (url, context['block_radius'])
        for key, val in context.get('cookies_to_set').items():
            response.set_cookie(key, val)
        return (context, response)
    return (context, None)
Exemplo n.º 3
0
def feed_signup(request, *args, **kwargs):
    context = get_place_info_for_request(request, *args, **kwargs)
    context['schema_list'] = get_schema_manager(request).filter(is_special_report=False).order_by('plural_name')
    return eb_render(request, 'db/feed_signup.html', context)
Exemplo n.º 4
0
    if len(ni_list) > constants.FILTER_PER_PAGE:
        has_next = True
        ni_list = ni_list[:-1]
    else:
        has_next = False
        idx_end = idx_start + len(ni_list)
    has_previous = page > 1

    populate_schema(ni_list, s)
    populate_attributes_if_needed(ni_list, [s])

    # Need map parameters based on location/block, if there is one.
    loc_filter = filterchain.get('location')
    if loc_filter:
        context.update(get_place_info_for_request(
                request,
                place=loc_filter.location_object,
                block_radius=getattr(loc_filter, 'block_radius', None)))
    else:
        # Whole city map.
        context.update({
                'default_lon': settings.DEFAULT_MAP_CENTER_LON,
                'default_lat': settings.DEFAULT_MAP_CENTER_LAT,
                'default_zoom': settings.DEFAULT_MAP_ZOOM,
                })

    # Try to provide a link to larger map, but don't worry about it
    # if there is no richmap app hooked in...
    try:
        large_map_url = filterchain.make_url(base_url=reverse('bigmap_filter', args=(slug,)))
        if filterchain.get('date') is None:
            # force a date range