Guest User

Untitled

a guest
Oct 11th, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.00 KB | None | 0 0
  1. from peewee import MySQLDatabase, fn
  2. from typing import (Optional, List)
  3. import models
  4. import bcrypt
  5. from models import (OfflineRegAdmin, User, Hospitality, OfflineReg)
  6.  
  7. database = MySQLDatabase('nitcfest_test',
  8. **{'charset': 'utf8', 'use_unicode': True,
  9. 'host': 'tathva.org',
  10. 'port': 3306,
  11. 'user': 'nitcfest_dd',
  12. 'password': 'Dharanee.86'})
  13.  
  14.  
  15. class Logic:
  16.  
  17. def __init__(self) -> None:
  18. models.database_proxy.initialize(database)
  19.  
  20. def login_admin(self, user: str, passwd: str) -> Optional[OfflineRegAdmin]:
  21. admin_record = OfflineRegAdmin\
  22. .get_or_none(OfflineRegAdmin.username == user
  23. and OfflineRegAdmin.password == passwd)
  24. return admin_record
  25.  
  26.  
  27. class LoggedInLogic:
  28. def __init__(self, admin: OfflineRegAdmin) -> None:
  29. self.admin = admin
  30.  
  31. def get_user_details(self, tathva_id: int) -> Optional[User]:
  32. return User.get_or_none(id == tathva_id)
  33.  
  34. def who_completed_user_offline_reg(self, tathva_id: int) -> Optional[OfflineRegAdmin]:
  35. offline_reg = OfflineReg.get_or_none(OfflineReg.user == tathva_id)
  36. if offline_reg is None:
  37. return None
  38. return OfflineRegAdmin.get_or_none(OfflineRegAdmin.id == offline_reg.admin)
  39.  
  40. def who_completed_user_hospitality(self, tathva_id: int) -> Optional[OfflineRegAdmin]:
  41. hospitality = Hospitality.get_or_none(Hospitality.user == tathva_id)
  42. if hospitality is None:
  43. return None
  44. return OfflineRegAdmin.get_or_none(OfflineRegAdmin.id == hospitality.admin)
  45.  
  46. def get_admin_hos_count(self) -> int:
  47. return Hospitality.select(fn.Count(Hospitality.user)).where(Hospitality.admin == self.admin.id).scalar()
  48.  
  49. def do_hospitality(self, tathva_id: int) -> None:
  50. Hospitality.create(
  51. user=tathva_id, admin=self.admin.id, hostel="", room="")
  52.  
  53. def update_hospitality(self, hospitality: Hospitality):
  54. hospitality.save()
  55.  
  56. def get_hospitality(self, tathva_id: int) -> Optional[Hospitality]:
  57. return Hospitality.get_or_none(Hospitality.user == tathva_id)
  58.  
  59. def filter_users(self, filter: str) -> List[User]:
  60. if filter.startswith(":") and len(filter) > 1:
  61. try:
  62. users = User.select().where(
  63. User.id == int(filter[1:])).objects()
  64. return users
  65. except ValueError:
  66. pass
  67.  
  68. if filter.upper().startswith("T18"):
  69. id_filter = fn.LPAD(User.id.cast("CHAR(5)"), 5, '0') **\
  70. "{}%".format(filter[3:])
  71. else:
  72. id_filter = fn.LPAD(User.id.cast("CHAR(5)"), 5, '0') **\
  73. "%{}%".format(filter)
  74.  
  75. filter_like = "%{}%".format(filter)
  76. users = User.select().where(
  77. id_filter |
  78. User.name ** filter_like |
  79. User.college ** filter_like).order_by(User.id.desc()).limit(50).objects()
  80. return users
Add Comment
Please, Sign In to add comment