136 lines
5.1 KiB
Python
136 lines
5.1 KiB
Python
from sqlalchemy import create_engine, MetaData, Table, select, insert, func, update, bindparam, delete
|
|
import os
|
|
import csv
|
|
from datetime import datetime, timedelta
|
|
from dateutil.parser import parse
|
|
import time
|
|
import json
|
|
from werkzeug.security import generate_password_hash
|
|
import random
|
|
|
|
def engineer():
|
|
engine = create_engine('sqlite:////home/yisroel2/Desktop/Pilzno/instance/site.db')
|
|
# engine = create_engine('sqlite:///C:/Users/Lenovo/Desktop/Pilzno/instance/site.db')
|
|
metadata_obj = MetaData()
|
|
metadata_obj.reflect(bind=engine)
|
|
return engine, metadata_obj
|
|
|
|
def check_db():
|
|
engine, metadata_obj = engineer()
|
|
user_table = Table("user", metadata_obj, autoload_with=engine)
|
|
donation_table = Table("donation", metadata_obj, autoload_with=engine)
|
|
campaign_table = Table("campaign", metadata_obj, autoload_with=engine)
|
|
with engine.connect() as conn:
|
|
print('USERS')
|
|
users = conn.execute(select(user_table)).all()
|
|
if users:
|
|
for user in users:
|
|
print(user.first_name)
|
|
else:
|
|
print('no users')
|
|
print("DONATIONS")
|
|
donations = conn.execute(select(donation_table)).all()
|
|
if donations:
|
|
for donation in donations:
|
|
print(donation.id)
|
|
else:
|
|
print('no donations')
|
|
campaigns = conn.execute(select(campaign_table)).all()
|
|
print('CAMPAIGNS')
|
|
if campaigns:
|
|
for campaign in campaigns:
|
|
print(campaign.title)
|
|
else:
|
|
print('no campaigns')
|
|
|
|
def insert_users():
|
|
users = [
|
|
['Yisroel', 'Baum', 'yisroel.d.baum@gmail.com', generate_password_hash('12'), 'Admin'],
|
|
['Yoni', 'Gerzi', 'yoni@gerzi.com', generate_password_hash('12'), 'User'],
|
|
['Shmuli', 'Modes', 'shmuli@modes.com', generate_password_hash('12'), 'User'],
|
|
['Emma', 'Baum', 'emma@baum.com', generate_password_hash('12'), 'User'],
|
|
['Yisroel', 'Factor', 'yisroel@factor.com', generate_password_hash('12'), 'User'],
|
|
['Yaakov', 'Frager', 'yaakov@frager.com', generate_password_hash('12'), 'User'],
|
|
['Michael', 'Oshman', 'michael@oshman.com', generate_password_hash('12'), 'User'],
|
|
['Shalom', 'Goldberg', 'shalom@goldberg.com', generate_password_hash('12'), 'User'],
|
|
['Daniel', 'Caller', 'daniel@caller.com', generate_password_hash('12'), 'User'],
|
|
|
|
]
|
|
engine, metadata_obj = engineer()
|
|
user_table = Table("user", metadata_obj, autoload_with=engine)
|
|
|
|
with engine.connect() as conn:
|
|
for user in users:
|
|
conn.execute(user_table.insert().values(
|
|
first_name = user[0],
|
|
last_name = user[1],
|
|
email = user[2],
|
|
password = user[3],
|
|
user_type = user[4]
|
|
))
|
|
conn.commit()
|
|
|
|
def insert_donations():
|
|
engine, metadata_obj = engineer()
|
|
donation_table = Table("donation", metadata_obj, autoload_with=engine)
|
|
|
|
currency_types = ['shekel', 'dollar']
|
|
|
|
with engine.connect() as conn:
|
|
for _ in range(100):
|
|
conn.execute(donation_table.insert().values(
|
|
currency_type = currency_types[random.randint(0,1)],
|
|
amount = random.randint(1,200),
|
|
campaign_id=random.randint(1,4),
|
|
user_id=random.randint(1,9)
|
|
))
|
|
conn.commit()
|
|
|
|
def insert_campaigns():
|
|
engine, metadata_obj = engineer()
|
|
campaign_table = Table("campaign", metadata_obj, autoload_with=engine)
|
|
|
|
campaign_titles = ['general campaign', 'yomim noraim 2024', 'pesach kibbudim 2024', 'RH kibbudim 2024']
|
|
is_active = [True, False]
|
|
with engine.connect() as conn:
|
|
for title in campaign_titles:
|
|
conn.execute(campaign_table.insert().values(
|
|
title=title,
|
|
active=is_active[random.randint(0,1)]
|
|
))
|
|
conn.commit()
|
|
|
|
def test_selections():
|
|
engine, metadata_obj = engineer()
|
|
user_table = Table("user", metadata_obj, autoload_with=engine)
|
|
donation_table = Table("donation", metadata_obj, autoload_with=engine)
|
|
campaign_table = Table("campaign", metadata_obj, autoload_with=engine)
|
|
|
|
for x in range(10):
|
|
print(random.randrange(1,4))
|
|
# with engine.connect() as conn:
|
|
# campaign_one = conn.execute(select(campaign_table).where(campaign_table.c.id==1)).first()
|
|
# donation_one = conn.execute(select(donation_table).where(donation_table.c.id==1)).first()
|
|
# user_one = conn.execute(select(user_table).where(user_table.c.id==1)).first()
|
|
# print(user_one)
|
|
|
|
def delete_all():
|
|
engine, metadata_obj = engineer()
|
|
user_table = Table("user", metadata_obj, autoload_with=engine)
|
|
donation_table = Table("donation", metadata_obj, autoload_with=engine)
|
|
campaign_table = Table("campaign", metadata_obj, autoload_with=engine)
|
|
|
|
with engine.connect() as conn:
|
|
conn.execute(delete(user_table))
|
|
conn.execute(delete(campaign_table))
|
|
conn.execute(delete(donation_table))
|
|
conn.commit()
|
|
|
|
def insert_all():
|
|
insert_users()
|
|
insert_campaigns()
|
|
insert_donations()
|
|
|
|
if __name__ == '__main__':
|
|
delete_all()
|
|
insert_all()
|