Exemple #1
0
def locations_subscribe(language_suffix, location_suffix):
	save_lang(language_suffix)
	save_loc(location_suffix)

	try:
		form = SubscriptionForm()
		if form.validate_on_submit():		
			email = form.email.data
			if not email:
				return jsonify({'CODE' : '3', 'TEXT' : gettext('Set email address, please')})
			if db.session.query(Subscription).filter_by(email=email).count()>0:
				return jsonify({'CODE' : '2', 'TEXT' : gettext("You're already subscribed. Thank you!")})
			subscriber = Subscription(dt=datetime.datetime.now(), location_id=session['locations'][location_suffix], email=email)
			db.session.add(subscriber)
			mc = mailchimp.Mailchimp(app.config['MAILCHIMP_TOKEN'])
			mc.lists.subscribe(app.config['MAILCHIMP_SUBSCRIPTION_LIST_ID'], {'email': email, 'double_optin' : false, 'send_welcome' : true})
			db.session.commit()
			return jsonify({
				'CODE' : '0',
				'TEXT' : gettext("Great! You're sucessfully subscribed.")
			})
		else:
			return jsonify({'CODE' : '4', 'TEXT' : gettext("Incorrect format of the Email")})	
	except mailchimp.ListAlreadySubscribedError:
		return jsonify({'CODE' : '2', 'TEXT' : gettext("You're already subscribed. Thank you!")})
	except mailchimp.Error, e:
		return jsonify({'CODE' : '1', 'TEXT' : gettext("An error occured. Please repeat.")})
Exemple #2
0
def do_save_subscription(account_id, subscription_id):
    account = Account.get_by_id(account_id)
    subscription = Subscription.get_by_id(subscription_id)
    form = SubscriptionForm(request.form)
    form.populate_obj(subscription)

    if form.validate_on_submit():
        subscription.save()
        return redirect(
            url_for("app_blueprint.show_account", account_id=account.id))

    return render_template("subscription.html",
                           form=form,
                           account=account,
                           subscription=subscription), 400
Exemple #3
0
def do_create_subscription(account_id):
    form = SubscriptionForm(request.form)
    # All subscriptions are active when created.
    form.status.data = SubscriptionStatuses.active

    account = Account.get_by_id(account_id)
    subscription = Subscription()
    form.populate_obj(subscription)

    if form.validate_on_submit():
        subscription.add_to_mailing_list()
        subscription.save()
        return redirect(
            url_for("app_blueprint.show_account", account_id=account.id))

    return render_template("subscription.html", account=account,
                           form=form), 400