def charge():

    def str2date(date_string):
        """ Returns a datetime date given a valid date_string """
        return datetime.datetime.strptime(date_string, "%Y-%m-%d").date()

    if request.method == 'POST':
        try:
            # Amount in pence
            
            customer = stripe.Customer.create(
                email=request.form['stripeEmail'],
                card=request.form['stripeToken']
            )
            charge = stripe.Charge.create(
                customer=customer.id,
                amount=Decimal(session['registration_price']),
                currency='gbp',
                description='Registration'
            )

            sob_date = None
            if session['sobriety_date'] != u'None':
               sob_date = str2date(session['sobriety_date'])

            registration = Registration(
                  first_name     = session['first_name']
                , last_name      = session['last_name']
                , mobile         = session['mobile']
                , email          = session['email']
                , sobriety_date  = sob_date
                , ypaa_committee = session['ypaa_committee']
                , fellowship     = session['fellowship']
                , special_needs  = session['special_needs']
                , of_service     = session['of_service']
                , country        = session['country']
                )
            registration.put()
            email_admin(session)
            email_user(session)
            flash("You are now registered!")

            if sob_date is not None:
                num_twins = num_sobriety_twins(str2date(session['sobriety_date']))
                if num_twins > 1:
                    if num_twins == 2:
                        flash("By the way, you have a sobriety twin coming to the convention!")
                    else:
                        flash("By the way, you have %d sobriety twins coming to the convention!" % (num_twins-1))

            return redirect(url_for('homepage'))

        except Exception, e:
            # TODO: Roll back transaction, registration
            #print "Payment not processed: %s" % e
            flash("Payment not processed. %s" % e)
            return redirect(url_for('new_registration_1'))
def charge():

    def str2date(date_string):
        """ Returns a datetime date given a valid date_string """
        return datetime.datetime.strptime(date_string, "%Y-%m-%d").date()

    if request.method == 'POST':
        try:
            # Amount in pence
            amount = 2000

            customer = stripe.Customer.create(
                email=request.form['stripeEmail'],
                card=request.form['stripeToken']
            )
            charge = stripe.Charge.create(
                customer=customer.id,
                amount=amount,
                currency='gbp',
                description='Registration'
            )
            registration = Registration(
                  first_name    = session['first_name']
                , last_name     = session['last_name']
                , mobile        = session['mobile']
                , email         = session['email']
                , dob           = str2date(session['dob'])
                , special_needs = session['special_needs']
                , country       = session['country']
                )
            registration.put()
            email_admin(session)
            email_user(session)
            flash("You are now registered!")
            return redirect(url_for('homepage'))

        except Exception, e:
            # TODO: Roll back transaction, registration
            #print "Payment not processed: %s" % e
            flash("Payment not processed. %s" % e)
            return redirect(url_for('new_registration_1'))
Example #3
0
def csv2db(csv_filename):
    def boolify(s):
        return {'True':True,'False':False}[s]
    def dateify(s):
        return d.strptime(s, "%d/%m/%Y").date() if s != 'none' else None
    with open(csv_filename) as csvfile:
        reader = csv.DictReader(csvfile)
        for row in reader:
            print row
            r = Registration(
                      first_name = row['first_name']
                    , last_name = row['last_name']
                    , mobile = row['mobile']
                    , email = row['email']
                    , sobriety_date = dateify(row['sobriety_date'])
                    , ypaa_committee = row['ypaa_committee']
                    , fellowship = row['member_of']
                    , special_needs = row['special_needs']
                    , country = row['country']
                    , of_service = boolify(row['of_service'])
                    )
            r.put()