Пример #1
0
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")
Пример #2
0
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))
Пример #3
0
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'))