Refactored create_database, put every addition in seperate file

This commit is contained in:
Wout Schellaert 2015-04-04 14:11:55 +02:00
parent 1daa7bfa62
commit 81913d2d1b
7 changed files with 145 additions and 100 deletions

3
.gitignore vendored
View file

@ -1,6 +1,5 @@
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
# C extensions
*.so
@ -58,7 +57,7 @@ target/
# ConfigFile
app/config.py
# Do not add db file
# Do not add database file
*.db
tmp/

View file

@ -1,98 +0,0 @@
from models import *
from app import db
from itertools import product
def recreate_db():
db.drop_all()
db.create_all()
feli = User()
feli.configure("feliciaan", True, 0)
db.session.add(feli)
destro = User()
destro.configure('destro', True, 0)
db.session.add(destro)
iepoev = User()
iepoev.configure('iepoev', True, 1)
db.session.add(iepoev)
# To future developers, add yourself here
############################################
# Chinees autogenerate #
############################################
zetmelen = ["Nasi", "Bami"]
vlezen = ["Rundsvlees", "Varkensvlees"]
sauzen = ["Balisaus", "Yu siang saus", "Gon boa saus", "Curry saus", "Oestersaus", "Zwarte pepersaus",
"Champignons", "Chinese champignons", "A la Maleisïe"]
specials = ["Kippenbolletjes zoetzuur", "varkenbolletjes zoetzuur", "Nazi Babi Pangang", "Bami Babi Pangang",
"Diverse groenten met bami(Vegetarisch)", "Diverse groenten met nazi(Vegetarisch)"]
def add_chinees():
chinees = Location()
chinees.configure("Oceans's Garden", "Zwijnaardsesteenweg 399 9000 Gent, tel: 09/222.72.74", "http://oceangarden.byethost3.com/studentenmenus.html")
db.session.add(chinees)
def chinees_create_entry(zetmeel, vlees="", saus=""):
entry = Product()
entry.configure(chinees, "{} {} {}".format(zetmeel, vlees, saus).rstrip(), 550)
db.session.add(entry)
for zetmeel, vlees, saus in product(zetmelen, vlezen, sauzen):
chinees_create_entry(zetmeel, vlees, saus)
for special in specials:
chinees_create_entry(special)
#############################################
############################################
# Simpizza autogenerate #
############################################
pizzas = ['Bolognese de luxe', 'Hawaï', 'Popeye', 'Pepperoni', 'Seafood', 'Hot pizzaaah!!!', 'Salmon delight',
'Full option', 'Pitza kebab', 'Multi cheese', '4 Seasons', 'Mega fish', 'Creamy multi cheese',
'Green fiësta', 'Chicken bbq', 'Funky chicken', 'Veggie', 'Meat lovers', 'Scampi mampi', 'Tabasco',
'Chicken time', 'Meatballs', 'Tuna', 'Anchovy', 'Calzone', 'Bbq meatballs', 'Creamy chicken', 'Hot bolognese']
def add_simpizza():
simpizza = Location()
simpizza.configure("Sim-pizza", "De Pintelaan 252 9000 Gent, tel: 09/321.02.00", "http://simpizza.be")
db.session.add(simpizza)
for pizza in pizzas:
entry = Product()
entry.configure(simpizza, pizza, 1195)
db.session.add(entry)
def commit():
# commit all the things
db.session.commit()
print("Committing successful")
locations = {'Ocean\'s Garden': add_chinees, 'Sim-pizza': add_simpizza}
print('Create database script!')
print('=======================\n\n')
db_key = 'recreate this database now!'
input_db = input("To recreate the db type: '" + db_key + "'")
if db_key in input_db:
print("recreating the database!")
recreate_db()
for location in locations.values():
location()
commit()
else:
print("not recreating the database!")
# DID NOT RECREATE ASK IF YOU WANT TO RECREATE THE NEXT ONES
for name, function in locations.items():
add_location = input("Do you want to add " + name + "? Press: 'Y'")
print("Adding " + name)
if add_location.lower() in ['y', 'yes']:
function()
commit()

20
database/add_admins.py Normal file
View file

@ -0,0 +1,20 @@
from app import db
from models import User
def add():
db.drop_all()
db.create_all()
feli = User()
feli.configure("feliciaan", True, 0)
db.session.add(feli)
destro = User()
destro.configure('destro', True, 0)
db.session.add(destro)
iepoev = User()
iepoev.configure('iepoev', True, 1)
db.session.add(iepoev)
# To future developers, add yourself here

View file

@ -0,0 +1,37 @@
from models import Location, Product
from app import db
from itertools import product
zetmelen = ["Nasi", "Bami"]
vlezen = ["Rundsvlees", "Varkensvlees", "Kippenstukkjes"]
sauzen = ["Balisaus", "Yu siang saus", "Gon boa saus", "Curry saus", "Oestersaus", "Zwarte pepersaus",
"Champignons", "Chinese champignons", "A la Maleisïe"]
specials = ["Nasi Kippenbolletjes Zoetzuur", "Bami Kippenbolletjes Zoetzuur",
"Nasi Varkenbolletjes Zoetzuur", "Bami Varkenbolletjes Zoetzuur",
"Nasi Babi Pangang", "Bami Babi Pangang",
"Diverse groenten met Bami",
"Diverse groenten met Nasi"]
def add():
chinees = Location()
chinees.configure("Oceans's Garden",
"Zwijnaardsesteenweg 399 9000 Gent, tel: 09/222.72.74",
"http://oceangarden.byethost3.com/studentenmenus.html")
db.session.add(chinees)
def chinees_create_entry(name):
entry = Product()
entry.configure(chinees, name, 550)
db.session.add(entry)
def chinees_create_regulat(zetmeel, vlees="", saus=""):
chinees_create_entry("{} {} {}".format(zetmeel, vlees, saus).rstrip())
for z, v, s in product(zetmelen, vlezen, sauzen):
chinees_create_regulat(z, v, s)
for special in specials:
chinees_create_entry(special)

20
database/add_simpizza.py Normal file
View file

@ -0,0 +1,20 @@
from models import Location, Product
from app import db
pizzas = ['Bolognese de luxe', 'Hawaï', 'Popeye', 'Pepperoni', 'Seafood', 'Hot pizzaaah!!!',
'Salmon delight', 'Full option', 'Pitza kebab', 'Multi cheese', '4 Seasons', 'Mega fish',
'Creamy multi cheese', 'Green fiësta', 'Chicken bbq', 'Funky chicken', 'Veggie',
'Meat lovers' 'Scampi mampi', 'Tabasco', 'Chicken time', 'Meatballs', 'Tuna', 'Anchovy',
'Calzone', 'Bbq meatballs', 'Creamy chicken', 'Hot bolognese']
def add():
simpizza = Location()
simpizza.configure("Sim-pizza", "De Pintelaan 252 9000 Gent, tel: 09/321.02.00", "http://simpizza.be")
db.session.add(simpizza)
for pizza in pizzas:
entry = Product()
entry.configure(simpizza, pizza, 1195)
db.session.add(entry)

View file

@ -0,0 +1,67 @@
from app import db
from database import add_oceans_garden, add_admins, add_simpizza
locations = {"Admins": add_admins.add(), "Ocean's Garden": add_oceans_garden.add(), "SimPizza": add_simpizza.add()}
yes = ["yes", "y", "Y"]
no = ["no", "n", "N"]
# Commit all the things
def commit():
db.session.commit()
print("Committing successful")
def check_if_overwrite():
answer = input("Do you want to overwrite the previous database? (y/N) ")
return answer in yes
def add_all():
for loc in locations.keys():
print("Adding {}.".format(loc))
locations[loc]()
def recreate_from_scratch():
confirmation = "Are you very very sure? (Will delete previous entry's!) (y/N) "
check = "I acknowledge any repercussions!"
if input(confirmation) in yes and input('Type: "{}" ').format(check) == check:
print("Overwriting the database!")
add_all()
def add_to_current():
available = [loc for loc in locations.keys()]
def add_numbers():
return " ".join(["{}({}), ".format(loc, i) for i, loc in enumerate(available)]).rstrip(", ")
while input("Do you still want to add something? (Y/n) ") not in no:
print("What do you want to add? (Use numbers, or A for all, or C for chancel) ")
answer = input("Available: {} : ".format(add_numbers()))
if answer == "A":
add_all()
elif answer == "C":
pass
elif answer in [str(x) for x in range(len(available))]:
answer = int(answer)
print("Adding {}.".format(available[answer]))
locations[available[answer]]()
del available[answer]
else:
print("Not a valid answer.")
print("Thank you for adding, come again!")
def init():
print('Database modification script!')
print('=============================\n\n')
if check_if_overwrite():
recreate_from_scratch()
else:
add_to_current()
init()