File: //home/arjun/projects/buyercall_forms/buyercall/buyercall/lib/db_seed.py
import logging
from buyercall.blueprints.user.models import User
from buyercall.blueprints.reports.models import Report
from buyercall.blueprints.partnership.models import Partnership
from buyercall.extensions import db
try:
from instance import settings
SEED_ADMIN_EMAIL = settings.SEED_ADMIN_EMAIL,
SEED_PARTNER_EMAIL = settings.SEED_PARTNER_EMAIL
except ImportError:
logging.error('Ensure __init__.py and settings.py both exist in instance/')
exit(1)
except AttributeError:
from config import settings
SEED_ADMIN_EMAIL = settings.SEED_ADMIN_EMAIL,
SEED_PARTNER_EMAIL = settings.SEED_PARTNER_EMAIL
def create_sysadmin():
"""
Create an admin account.
:return: User instance
"""
if User.find_by_identity(SEED_ADMIN_EMAIL) is not None:
return None
params = {
'role': 'sysadmin',
'email': SEED_ADMIN_EMAIL,
'password': 'password',
'company': 'SysAdmin'
}
return User(**params).save()
def create_reports():
"""
Create reports.
"""
if Report.query.filter(Report.name == 'List of Interest').first() is None:
report = Report(name='List of Interest')
db.session.add(report)
def create_partnership():
"""
Create partnership.
"""
partnership = Partnership.query.filter(Partnership.name == 'Buyercall').first()
if partnership is None:
partnership = Partnership()
partnership.default_billing_type = 'account'
partnership.name = 'Buyercall'
# partnership.account_invitation_url_token = str(uuid.uuid4())
db.session.add(partnership)
if partnership is not None and User.query.filter(User.company == 'Buyercall Partnership', User.is_deactivated.is_(False)).first() is None:
params = {
'role': 'partner',
'email': SEED_PARTNER_EMAIL,
'password': 'password',
'company': 'Buyercall Partnership',
'partnership': partnership,
}
partner = User(**params)
db.session.add(partner)
def seed_database():
"""
Entry point to seed the database with whatever we see fit.
:return: None
"""
create_sysadmin()
create_reports()
create_partnership()
db.session.commit()
return None