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)
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)
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), )