示例#1
0
def main():
    """Main function for populating the database"""
    donors = [('Toni Morrison', random.sample(range(100, 25000), 3)),
              ('Mike McHargue', random.sample(range(100, 25000), 3)),
              ("Flannery O'Connor", random.sample(range(100, 25000), 3)),
              ('Angelina Davis', random.sample(range(100, 25000), 3)),
              ('Bell Hooks', random.sample(range(100, 25000), 3))]

    db.connect()
    db.drop_tables([Donor, Donation])
    db.create_tables([Donor, Donation])
    bcrypt = Bcrypt()

    for donor, donations in donors:
        try:
            Donor.create(name=donor,
                         email='.'.join(donor.lower().split()) + '@gmail.com',
                         password=bcrypt.generate_password_hash('password'),
                         total=sum(donations),
                         average=sum(donations) / len(donations))
        except:
            db.rollback()

    for donor, donations in donors:
        for donation in donations:
            try:
                Donation.create(donor=donor, amount=donation)
            except:
                db.rollback()
示例#2
0
def create():
    """If the handler receives a GET request,
    then it should render the template for the donation creation page.

    If the handler receives a POST request (a form submission),
    then it should attempt to retrieve the name of the donor and the
    amount of the donation from the form submission.
    It should retrieve the donor from the database with the indicated name,
    and create a new donation with the indicated donor and donation amount.
    Then it should redirect the visitor to the home page.
    """

    if request.method == 'POST':
        donor_name = request.form['name']

        try:
            # add the donor to the db if the record doesn't exist
            donor = Donor.create(name=donor_name)
        except IntegrityError:
            # if donor already exists, retrieve donor
            donor = Donor.get(Donor.name == donor_name)

        # add donation to db
        Donation.create(donor=donor, value=request.form['value'])

        return redirect(url_for('all_donations'))

    else:
        return render_template('create.jinja2')
示例#3
0
def donate():
    """ let a user create a new donor / donation """
    if request.method == 'POST':
        donor_name = request.form['name']
        amount = request.form['value']
        if donor_name and amount:
            donor_count = Donor.select() \
                            .where(Donor.name == request.form['name']) \
                            .count()

            if donor_count == 0:
                donor = Donor.create(name=request.form['name'])
            else:
                donor = Donor.get(name=request.form['name'])

            if int(amount) <= 1000000 and int(amount) > 0:
                Donation.create(donor=donor, value=request.form['value'])
                _donations = Donation.select()
                return render_template('donations.jinja2',
                                       donations=_donations)

            flash('Input amount within an acceptable range (0 to 1000000)')
            return render_template('add_donation.jinja2')
    elif request.method == 'GET':
        if session.get('username'):
            return render_template('add_donation.jinja2')

    return render_template('login.jinja2')
示例#4
0
def donate():
    if request.method == 'GET':
        return render_template('create.jinja2')

    if request.method == 'POST':
        amount, donor = int(request.form['amount']), request.form['donor']
        Donation.create(value=request.form['amount'],
                        donor=Donor.get(name=request.form['donor']))
        return redirect(url_for('home'))
示例#5
0
def create():
    if request.method == 'POST':
        try:
            donor_id = Donor.get(Donor.name == request.form['name']).id
            Donation.create(value=int(request.form['donation']),
                            donor_id=donor_id)
            return redirect(url_for('all'))
        except Donor.DoesNotExist as e:
            return render_template('create.jinja2',
                                   error="***No donor found***")
    else:
        return render_template('create.jinja2')
示例#6
0
def create():
    if 'username' not in session:
        return redirect(url_for('login'))
    else:
        if request.method == 'POST':
            try:
                donor = Donor.get(name=request.form.get('name'))
            except DoesNotExist:
                donor = Donor.create(name=request.form.get('name'))

            Donation.create(donor=donor, value=request.form.get('amount'))

            return redirect(url_for('all'))

        return render_template('create.jinja2')
示例#7
0
def add_donation():
    if not current_user.is_authenticated:
        return redirect(url_for('login'))

    donor = None
    if request.method == 'POST':
        input_donation = request.form['donation']

        Donation.create(donor=current_user.name, amount=input_donation)
        current_user.total += decimal.Decimal(input_donation)
        current_user.average = current_user.total / len(current_user.donations)
        current_user.save()

        return redirect(url_for('home'))

    return render_template('add_donation.html', donor=donor)
示例#8
0
def create():
    if 'username' not in session:
        return redirect(url_for('login'))

    if request.method == 'POST':
        donor_name = request.form['donor-name']

        try:
            donor = Donor.get(Donor.name == donor_name)
        except Donor.DoesNotExist:
            donor = Donor.create(name=donor_name)

        Donation.create(value=request.form['donation-amount'], donor=donor)
        return redirect(url_for('all'))

    return render_template('create.jinja2')
示例#9
0
def create():
    """
    Function for creating new donation
    User must be signed in
    """

    if 'username' not in session:
        return redirect(url_for('login'))

    if request.method == 'POST':
        try:
            donor_lookup = Donor.select().where(Donor.name == request.form['name']).get()

            if donor_lookup:
                Donation.create(donor=donor_lookup, value=request.form['value'])
                return redirect(url_for('all'))
        except peewee.DoesNotExist:
            return render_template('create.jinja2', error='Donor does not exist.')

    return render_template('create.jinja2')
示例#10
0
def create():
    if request.method == 'POST':
        donor_name = request.form['name']
        donation_val = int(request.form['donation'])
        with db.transaction():
            try:
                new_donor = Donor.create(name=donor_name)
                new_donor.save()
            except peewee.IntegrityError:
                new_donor = Donor.get(Donor.name == donor_name)
            donation = Donation.create(donor=new_donor, value=donation_val)
            donation.save()
        return redirect(url_for('all'))
    return render_template('create.jinja2')
示例#11
0
def add_donation():
    if request.method == 'POST':
        donor = request.form['donor']
        if donor == '':
            return render_template("add_donation.jinja2",
                                   error="The Donor Name cannot be blank")
        try:
            add_donation = float(request.form['donation'])
        except:
            return render_template("add_donation.jinja2",
                                   error="Please enter a valid amount")
        if add_donation <= 0:
            return render_template("add_donation.jinja2",
                                   error="Please enter a valid amount")
        try:
            donor_id = Donor.get(Donor.name == donor).id
        except DoesNotExist:
            donor_id = Donor.create(name=donor).id
        finally:
            Donation.create(value=add_donation, donor=donor_id)
            return redirect(url_for('all'))

    else:
        return render_template("add_donation.jinja2")
    def add_donation(self, name, amount):

        database = SqliteDatabase('mailroom_database.db')

        database.connect()
        database.execute_sql('PRAGMA foreign_keys = ON;')

        # checking to see if name exists in Donors db.
        # not the best way to check... but it works.
        try:
            donor = Donor.get(Donor.donor_name == name)
        except:
            donor = None

        # this instead????
        # donor = Donor.get_or_none(Donor.donor_name == name)

        # if the name that was entered is not already in the database, create a new Donor.
        if donor is None:
            print(
                "{} is a new donor and will be added to the database\n".format(
                    name))
            city = input("Please enter the city this donor is from:\n")
            state = input(
                "Please enter the state or country this donor is from:\n")

            new_donor = Donor.create(donor_name=name,
                                     donor_city=city,
                                     donor_state=state)
            new_donor.save()
            print("{} was added to the database! \n".format(name))

        # if the name does exist int he database of donors, confirms that the donor was found.
        else:
            print("{} was found in the database!\n".format(donor))

        # Add the amount of the donation to database.

        new_donation = Donation.create(donation_amount=amount,
                                       donation_donor=name)
        new_donation.save()

        print("{}'s donation amount of ${} was added to the database!".format(
            name, amount))

        database.close()
示例#13
0
from model import db, Donor, Donation
from peewee import *

name = "Bor"

try:
    donor = Donor.get(name=name)
except DoesNotExist:
    donor = Donor.create(name=name)
Donation.create(donor=donor, value=2000)

print(donor.name)

for donation in Donation.select():
    print(donation.value, donation.donor)
示例#14
0
# This line will allow you "upgrade" an existing database by
# dropping all existing tables from it.
db.drop_tables([Donor, Donation, Admin])
#
db.create_tables([Donor, Donation, Admin])

alice = Donor.create(name="Alice")
# alice.save()

bob = Donor.create(name="Bob")
# bob.save()

charlie = Donor.create(name="Charlie")
# charlie.save()

donors = [alice, bob, charlie]

for x in range(30):
    Donation.create(donor=random.choice(donors),
                    value=random.randint(100, 10000))

user1 = Admin.create(user="******", password=pbkdf2_sha256.hash("password"))
user2 = Admin.create(user="******", password=pbkdf2_sha256.hash("123456"))

# try:
#     user = Admin.get(Admin.user == 'admin')
# except DoesNotExist:
#     user = None
# print(user)