Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from tinydb import TinyDB, Query
- from datetime import datetime
- import pytz
- tz_NY = pytz.timezone('America/New_York')
- import time
- import os
- now = datetime.now(tz_NY)
- db = TinyDB('db.json')
- App = Query()
- def teacher():
- option = input("1. View student's profile\n2. Mark Late\n")
- if option == "1":
- pin_number = input("Which student would you like to view?\n")
- results = db.search(App.pin == pin_number)
- if results == []:
- print("Not found\n")
- admin()
- else:
- print(f"Left: {results[0]['left_hour']}:{results[0]['left_minute']}")
- print(f"Returned: {results[0]['ret_hour']}:{results[0]['ret_minute']}")
- print(f"Lates: {results[0]['lates']}\n")
- elif option == "2":
- pin = input("Enter student pin:\n")
- results_s=db.search(App.pin == pin)
- if results_s == []:
- print("Invalid pin\n")
- time.sleep(1)
- balance = results_s[0]['lates'] + 1
- db.update({'lates': balance}, App.pin == pin)
- def admin():
- option = input("1. View student's profile\n2. Lock Status\n3. Mark Late\n")
- if option == "1":
- pin_number = input("Which student would you like to view?\n")
- results = db.search(App.pin == pin_number)
- if results == []:
- print("Not found\n")
- admin()
- else:
- print(f"Left: {results[0]['left_hour']}:{results[0]['left_minute']}")
- print(f"Returned: {results[0]['ret_hour']}:{results[0]['ret_minute']}")
- print(f"Lates: {results[0]['lates']}\n")
- elif option == "2":
- pin_number = input("What pin would you like to lock?\n")
- results = db.search(App.pin == pin_number)
- if results == []:
- print("Not Valid...\n")
- time.sleep(1)
- print(chr(27) + "[2J")
- admin()
- else:
- if results[0]['status'] == "l":
- option_two = input("This User is already locked,\n Would you like to unlock? y/n")
- if option_two == "y":
- db.update({"status": "u"}, App.pin == pin_number)
- else:
- print(chr(27) + "[2J")
- admin()
- else:
- db.update({"status": "l"}, App.pin == pin_number)
- elif option == "3":
- pin = input("Enter student pin:\n")
- results_s=db.search(App.pin == pin)
- if results_s == []:
- print("Invalid pin\n")
- time.sleep(1)
- balance = results_s[0]['lates'] + 1
- db.update({'lates': balance}, App.pin == pin)
- def student():
- results_s = db.search(App.pin == card_num)
- if results_s[0]['status'] == "l":
- print("Your account has been locked..")
- exit()
- options = input("1. Sign out\n2. Sign in\n")
- if options == "1":
- current_time_hour = now.strftime("%H")
- current_time_minute = now.strftime("%M")
- db.update({"left_hour":current_time_hour, "left_minute": current_time_minute}, App.pin == card_num)
- results = db.search(App.pin == card_num)
- print(f"Hour: {results[0]['left_hour']}, Minute: {results[0]['left_minute']}")
- student()
- elif options == "2":
- current_time_hour = now.strftime("%H")
- current_time_minute = now.strftime("%M")
- db.update({"ret_hour":current_time_hour, "ret_minute": current_time_minute}, App.pin == card_num)
- results = db.search(App.pin == card_num)
- print(f"Left: {results[0]['left_hour']}:{results[0]['left_minute']}")
- print(f"Returned: {results[0]['ret_hour']}:{results[0]['ret_minute']}")
- card_num = input("Student hallpass system.\nENTER PIN\nEntering a nonexistent pin will add it to the database with student permissions.\n")
- results = db.search(App.pin == card_num)
- if results == []:
- print("Not found\n")
- if results[0]['pin'] == card_num:
- print("Invalid Card.\n")
- db.insert({"pin": card_num, "perm": "s", "left_hour":"", "left_minute": "", "ret_hour": "", "ret_minute": "", "status":"", "lates": 0})
- print(f"Added {card_num} to database.")
- # Refreshing the search so that it can be checked for permissions.
- results = db.search(App.pin == card_num)
- # Checking the 'perm' in the user's profile. T = Teacher/Admin - S = Student
- if results[0]['perm'] == "a":
- admin()
- elif results[0]['perm'] == "s":
- student()
- elif results[0]['perm'] == "t":
- teacher()
- elif results[0]['perm'] == "d":
- os.system("python manage.py")
Advertisement
Add Comment
Please, Sign In to add comment