populate_gamification_tables.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. from polzybackend.models import GamificationBadgeLevel, GamificationBadgeType, GamificationBadgeDescription
  2. from flask_sqlalchemy import SQLAlchemy
  3. from polzybackend import create_app
  4. from app import Config
  5. app = create_app(Config)
  6. db = SQLAlchemy(app)
  7. print('Creating Gamification Badges...')
  8. badge_levels = [
  9. ("Greenhorn", 0),
  10. ("Bronze", 10),
  11. ("Silver", 50),
  12. ("Gold", 100),
  13. ("Platinum", 500)
  14. ]
  15. levels = []
  16. next_level = None
  17. for name, point in reversed(badge_levels):
  18. level = GamificationBadgeLevel(name=name, min_level=point, next_level=next_level, is_lowest=(name == 'Bronze'))
  19. levels.append(level)
  20. next_level = level
  21. db.session.add_all(levels)
  22. type_names = ["Antrag", "Polizze"]
  23. #lobs = [LineOfBusiness.KFZ, LineOfBusiness.PnC, LineOfBusiness.KV, LineOfBusiness.Life, LineOfBusiness.UV]
  24. lobs = ['Automobile']
  25. types = []
  26. for lob in lobs:
  27. for type_name in type_names:
  28. name = type_name + " " + lob
  29. types.append(GamificationBadgeType(name=name, title=name))
  30. types.append(GamificationBadgeType(name="Login", title="Login"))
  31. db.session.add_all(types)
  32. db.session.add_all([
  33. GamificationBadgeDescription(
  34. level=level,
  35. type=type,
  36. description=f"Requirements to earn {level.name} Badge {type.title}",
  37. ) for level in levels for type in types]
  38. )
  39. db.session.commit()