def newsletter(): if request.method == "POST": newsletter = Newsletter( header_text=request.form['header_text'], banner_1_active='banner_1_active' in request.form, banner_1_url=request.form['banner_1_url'], banner_1_image=request.form['banner_1_image'], banner_2_active='banner_2_active' in request.form, banner_2_url=request.form['banner_2_url'], banner_2_image=request.form['banner_2_image'], banner_3_active='banner_3_active' in request.form, banner_3_url=request.form['banner_3_url'], banner_3_image=request.form['banner_3_image'], banner_4_active='banner_4_active' in request.form, banner_4_url=request.form['banner_4_url'], banner_4_image=request.form['banner_4_image'], type_link=request.form['type_link'], id_affil=request.form['id_affil'], template=request.form['template'], date_from=datetime.strptime(request.form['date_from'].strip(), "%d/%m/%Y") if "/" in request.form['date_from'] else request.form['date_from'], date_to=datetime.strptime(request.form['date_to'].strip(), "%d/%m/%Y") if "/" in request.form['date_to'] else request.form['date_to']) db_session.add(newsletter) db_session.flush() for cat in request.form['categories'].split(","): n_c = NewsletterCategory(id_newsletter=newsletter.id_newsletter, category=cat.strip()) db_session.add(n_c) db_session.flush() for i in xrange(0, 5): try: return render_template( 'newsletter.html', newsletters=Newsletter.query.order_by( "id_newsletter DESC").limit(50).all(), categories=[ unicode(str(c), "latin-1") for c in Category.query.order_by("category").all() ]) except OperationalError: #retry pass time.sleep(i) raise Exception("Mysql has gone away")
def newsletter(request): latest_news = NewsItem.objects.all()[0] if request.method == 'POST': #Attempting to register form = NewsletterForm(request.POST) if form.is_valid(): signup = Newsletter(name = form.cleaned_data['name'], email = form.cleaned_data['email']) signup.save() return redirect('/newsletter/signup-successful/') else: form = NewsletterForm() return render_to_response('newsletter.html', {'form': form, 'latest_news': latest_news}, context_instance=RequestContext(request))
def newsletter_subscription(): form = NewsletterForm(request.form) if form.validate_on_submit(): # check if email is unique email = Newsletter.query.filter_by(email=form.email.data).first() if not email: # save email email = Newsletter(email=form.email.data) email.save() flash("Thank you for subscribing to our newsletter", "success") else: flash("You are already subscribed to our newsletter", "error") else: for errors in form.errors.values(): for error in errors: flash(f'{error}', "error") break break return redirect(url_for('.index'))