def expert_form():
    # add select fields dynamically (because they get their data from config)
    ipv4_prefixes = range(32, current_app.config['EXPERT_MAX_PREFIX']-1, -1)
    create_select_field(ExpertForm, 'ipv4_prefix', u'IPv4-Präfix', 'kein IPv4',
            ipv4_prefixes, 'ipv6_pool')
    create_select_field(ExpertForm, 'ipv6_pool', u'Wahlkreis', 'kein IPv6',
            current_app.config['API_POOL_IPV6'], 'ipv4_prefix')

    form = ExpertForm()
    if form.validate_on_submit():
        prefixes_v4 = [(current_app.config['API_POOL_HNA'], int(form.ipv4_prefix.data))] \
            if form.ipv4_prefix.data else []

        prefixes_v6 = [(form.ipv6_pool.data, None)] \
            if form.ipv6_pool.data else []

        r = request_create(form.name.data, form.email.data, prefixes_v4,
                prefixes_v6)

        try:
            url = url_for(".expert_activate", request_id=r.id,
                          signed_token=r.token_activation, _external=True)
            subject = "[Freifunk Berlin] Aktivierung - %s" % r.name
            send_email(r.email, subject, "activation.txt", {'url':url})

        except:
            # if send_mail fails we delete the already saved request
            db.session.delete(r)
            db.session.commit()
            raise

        return render_template('confirmation.html')

    return render_template('expert/form.html', form=form)
Exemplo n.º 2
0
def suggestions(request):
    args = {}
    args.update(csrf(request))
    name = request.POST.get("Name")
    user_email = request.POST.get('User_email')
    postedquery = request.POST.get('Postedquery')
    if request.POST:
        form = ExpertForm(request.POST)
        if form.is_valid():
            form.save()
            html = "<html><body>Your query has been posted.We will get back to you shortly</body></html>"
            return HttpResponse(html)
    print name
    print user_email
    print postedquery
    html = "<html><body>Form Error</body></html>"
    return HttpResponse(html)
Exemplo n.º 3
0
def expert_settings(request):
    user = request.user
    places = user.place.all()
    try:
        expert = user.expert.all()[0]
    except:
        expert = None
    if request.method == "POST":
        from accounts.forms import VenueForm
        from places.models import Place

        post_data = request.POST
        place_form = VenueForm(post_data)
        form = ExpertForm(request.POST, instance=expert)
        if form.is_valid():
            if post_data["place"] == "-1":
                if place_form.is_valid():
                    place = place_form.save(request)
                else:
                    raise Exception("place not valid?")
            else:
                place = Place.objects.get(pk=int(post_data["place"]))
            expert = form.save(commit=False)
            expert.user = user
            expert.place = place
            if post_data.get("active", False):
                expert.privacy = "a"
            expert.save()
            return HttpResponseRedirect("/users/%s/expert" % (request.user.username))
    else:
        form = ExpertForm(instance=expert)
    return render_to_response(
        "accounts/expert_settings.html",
        {"expert": expert, "form": form, "places": places},
        context_instance=RequestContext(request),
    )