Guest User

Untitled

a guest
Jan 17th, 2023
26
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.33 KB | None | 0 0
  1. from tinydb import TinyDB, Query
  2. from datetime import datetime
  3. import pytz
  4. tz_NY = pytz.timezone('America/New_York')
  5. import time
  6. import os
  7.  
  8.  
  9. now = datetime.now(tz_NY)
  10.  
  11.  
  12.  
  13. db = TinyDB('db.json')
  14. App = Query()
  15.  
  16.  
  17. def teacher():
  18. option = input("1. View student's profile\n2. Mark Late\n")
  19. if option == "1":
  20. pin_number = input("Which student would you like to view?\n")
  21. results = db.search(App.pin == pin_number)
  22. if results == []:
  23. print("Not found\n")
  24. admin()
  25. else:
  26. print(f"Left: {results[0]['left_hour']}:{results[0]['left_minute']}")
  27. print(f"Returned: {results[0]['ret_hour']}:{results[0]['ret_minute']}")
  28. print(f"Lates: {results[0]['lates']}\n")
  29. elif option == "2":
  30.  
  31. pin = input("Enter student pin:\n")
  32. results_s=db.search(App.pin == pin)
  33. if results_s == []:
  34. print("Invalid pin\n")
  35. time.sleep(1)
  36. balance = results_s[0]['lates'] + 1
  37. db.update({'lates': balance}, App.pin == pin)
  38.  
  39.  
  40.  
  41. def admin():
  42. option = input("1. View student's profile\n2. Lock Status\n3. Mark Late\n")
  43. if option == "1":
  44. pin_number = input("Which student would you like to view?\n")
  45. results = db.search(App.pin == pin_number)
  46. if results == []:
  47. print("Not found\n")
  48. admin()
  49. else:
  50. print(f"Left: {results[0]['left_hour']}:{results[0]['left_minute']}")
  51. print(f"Returned: {results[0]['ret_hour']}:{results[0]['ret_minute']}")
  52. print(f"Lates: {results[0]['lates']}\n")
  53. elif option == "2":
  54.  
  55. pin_number = input("What pin would you like to lock?\n")
  56. results = db.search(App.pin == pin_number)
  57. if results == []:
  58. print("Not Valid...\n")
  59. time.sleep(1)
  60. print(chr(27) + "[2J")
  61. admin()
  62. else:
  63. if results[0]['status'] == "l":
  64. option_two = input("This User is already locked,\n Would you like to unlock? y/n")
  65. if option_two == "y":
  66. db.update({"status": "u"}, App.pin == pin_number)
  67. else:
  68. print(chr(27) + "[2J")
  69. admin()
  70. else:
  71. db.update({"status": "l"}, App.pin == pin_number)
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82. elif option == "3":
  83. pin = input("Enter student pin:\n")
  84. results_s=db.search(App.pin == pin)
  85. if results_s == []:
  86. print("Invalid pin\n")
  87. time.sleep(1)
  88. balance = results_s[0]['lates'] + 1
  89. db.update({'lates': balance}, App.pin == pin)
  90.  
  91.  
  92.  
  93. def student():
  94.  
  95. results_s = db.search(App.pin == card_num)
  96. if results_s[0]['status'] == "l":
  97. print("Your account has been locked..")
  98. exit()
  99.  
  100. options = input("1. Sign out\n2. Sign in\n")
  101. if options == "1":
  102. current_time_hour = now.strftime("%H")
  103. current_time_minute = now.strftime("%M")
  104.  
  105. db.update({"left_hour":current_time_hour, "left_minute": current_time_minute}, App.pin == card_num)
  106. results = db.search(App.pin == card_num)
  107. print(f"Hour: {results[0]['left_hour']}, Minute: {results[0]['left_minute']}")
  108. student()
  109. elif options == "2":
  110. current_time_hour = now.strftime("%H")
  111. current_time_minute = now.strftime("%M")
  112.  
  113. db.update({"ret_hour":current_time_hour, "ret_minute": current_time_minute}, App.pin == card_num)
  114. results = db.search(App.pin == card_num)
  115. print(f"Left: {results[0]['left_hour']}:{results[0]['left_minute']}")
  116. print(f"Returned: {results[0]['ret_hour']}:{results[0]['ret_minute']}")
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131. card_num = input("Student hallpass system.\nENTER PIN\nEntering a nonexistent pin will add it to the database with student permissions.\n")
  132.  
  133. results = db.search(App.pin == card_num)
  134. if results == []:
  135. print("Not found\n")
  136. if results[0]['pin'] == card_num:
  137. print("Invalid Card.\n")
  138.  
  139. db.insert({"pin": card_num, "perm": "s", "left_hour":"", "left_minute": "", "ret_hour": "", "ret_minute": "", "status":"", "lates": 0})
  140. print(f"Added {card_num} to database.")
  141.  
  142. # Refreshing the search so that it can be checked for permissions.
  143. results = db.search(App.pin == card_num)
  144. # Checking the 'perm' in the user's profile. T = Teacher/Admin - S = Student
  145.  
  146. if results[0]['perm'] == "a":
  147. admin()
  148. elif results[0]['perm'] == "s":
  149. student()
  150. elif results[0]['perm'] == "t":
  151. teacher()
  152. elif results[0]['perm'] == "d":
  153. os.system("python manage.py")
  154.  
  155.  
  156.  
  157.  
Advertisement
Add Comment
Please, Sign In to add comment