def search_person(): person_id = ent_em_id.get() person_db = AuthorizedDbHelper() person = person_db.find_one(person_id) print(person_id) print(person) if(person != None): lb_name = tk.Label(frame_content, text="Employee Name*") lb_name.pack() ent_name = tk.Entry(frame_content, textvariable="person.get_name()") ent_name.pack(pady=10) ent_name.insert(0, person.get_name()) lb_org = tk.Label(frame_content, text="Organization ID*") lb_org.pack() ent_org_id = tk.Entry(frame_content, text=person.get_organization()) ent_org_id.pack(pady=10) ent_org_id.insert(0, person.get_organization()) tk.Button(frame_content, text="Change Image*").pack(pady=10) tk.Button(frame_content, text="Save", bg="#0D1117", fg="#AFB5BB", width=20).pack(padx=20) else: messagebox.showerror("Not Found", "Employee not found")
def save(): img = image_file id = ent_em_id.get() name = ent_name.get() email = ent_email.get() if id.strip() == "" or name.strip() == "" or email.strip() == "": messagebox.showwarning("All Field Required", "* Marked Field Required") else: names = name.strip(" ") file_name = names[0] emp_db = EmployeeDBHelper() auth_db = AuthorizedDbHelper() emp_db.save(id, name, email) permitted = Permitted(name, str(id)+str(1)+file_name, "Hawk Eye", 1,id) permitted_area_dbh =PermitAreaDbHelper() permitted_area_dbh.add(id, "1st Floor") permitted_area_dbh.add(id, "2nd Floor") permitted_area_dbh.add(id, "3rd Floor") permitted_area_dbh.add(id, "4th Floor") auth_db.save(permitted) copyfile(img, os.path.join("/home/rktirtho/PycharmProjects/Hawk-Eye/images/auth/"+str(id)+str(1)+file_name+".jpg")) copyfile(img, os.path.join("/home/rktirtho/Documents/workspace-spring-tool-suite-4-4.7.1.RELEASE/hawk-eye-serversite/src/main/resources/static/images/"+str(id)+str(1)+file_name+".jpg"))
def get_all(self): values = list() conn = self.get_conn() cur = conn.cursor() cur.execute("SELECT distinct person_id FROM monitoring") print(cur) for id in cur: auth_db = AuthorizedDbHelper() person = auth_db.find_one(id[0]) values.append(person) return values
def get_yesterday(self): values = list() conn = self.get_conn() cur = conn.cursor() cur.execute( "SELECT distinct person_id FROM monitoring where DATE(`time`) = CURDATE()-1" ) print(cur) for id in cur: auth_db = AuthorizedDbHelper() person = auth_db.find_one(id[0]) values.append(person) return values
def view_all_employee(): hide_all_frame() add_title("All Employee") per = AuthorizedDbHelper() persons = per.find_all_details() x = 1 y = 0 f1 = tk.Frame(frame_content) for person in persons: l1 = tk.Frame(f1, bg="ivory", highlightthickness=2, bd=10, width=200, height=200) l1.config(highlightbackground="#eeeeee", highlightcolor="#eeeeee") l1.grid(row=x, column=y, padx=10, pady=20) file = 'images/auth/'+person.get_image()+'.jpg' image = Image.open(file) img = ImageTk.PhotoImage(image.resize((100, 100))) bg = tk.Label(l1, image=img, height=100, width=100) bg.image = img bg.pack() name = tk.Label(l1, text=person.get_name(),bg="ivory") name.pack() # email = tk.Label(l1, text=person.get_image(),bg="ivory") # email.pack() org = tk.Label(l1, text=person.get_organization(),bg="ivory") org.pack() btn = tk.Button(l1, text="View", bg="green", fg="white", command=partial(show_info,person.get_name(), person.get_id())) btn.pack() y += 1 if y>5: x+=1 y=0 f1.grid_columnconfigure(y, weight=1) f1.pack(fill="both")
def save(): check_permitted(floor1.get()) check_permitted(floor2.get()) check_permitted(floor3.get()) check_permitted(floor4.get()) check_permitted(floor5.get()) check_permitted(floor6.get()) check_permitted(floor7.get()) check_permitted(floor8.get()) check_permitted(floor9.get()) prossesing_org_id = selected_org.get().split(" ") emp_id = ent_em_id.get() emp_name = ent_name.get() org_id = prossesing_org_id[0] img = image_file if emp_id.strip() == "" or emp_name.strip() == "" or org_id.strip() == "": messagebox.showwarning("All Field Required", "* Marked Field Required") else: names = emp_name.strip(" ") file_name = names[0] auth_db = AuthorizedDbHelper() permitted = Permitted(emp_name, str(emp_id)+str(org_id)+file_name, "Hawk Eye", int(org_id),emp_id) auth_db.save(permitted) copyfile(img, os.path.join("/home/rktirtho/PycharmProjects/Hawk-Eye/images/auth/"+str(emp_id)+str(org_id)+file_name+".jpg")) copyfile(img, os.path.join("/home/rktirtho/Documents/workspace-spring-tool-suite-4-4.7.1.RELEASE/hawk-eye-serversite/src/main/resources/static/images/"+str(emp_id)+str(org_id)+file_name+".jpg")) permit_area_dbh = PermitAreaDbHelper() ent_em_id.delete(0,"end") ent_name.delete(0,"end") messagebox.showinfo("Employee Added", "Successfully Employee Added.") for area in permitted_location: permit_area_dbh.add(emp_id, area) permitted_location.clear()
def all_auth_person_wid(): click("Authorized Access") title = Label(contend, text="Authorized Person", font=MEDIAMFONT) title.grid(row=0, column=0, columnspan=4, pady=20) auth_person = AuthorizedDbHelper() orgs = auth_person.find_all_details() i = 2 c = 0 print(orgs[1]) Label(contend, text="#Id", padx=20, font=MEDIAMFONT_BOLD).grid(row=1, column=0, pady=10) Label(contend, text="Name", padx=20, font=MEDIAMFONT_BOLD).grid(row=1, column=1, pady=10) Label(contend, text='Organization', padx=20, font=MEDIAMFONT_BOLD).grid(row=1, column=2) # Label(contend, text='Address', padx=20, font=MEDIAMFONT_BOLD).grid(row=1, column=3) # Label(contend, text='Join Date', padx=20, font=MEDIAMFONT_BOLD).grid(row=1, column=4) for org in orgs: Label(contend, text=org.get_id(), padx=20).grid(row=i, column=0, pady=10) Label(contend, text=org.get_name(), padx=20).grid(row=i, column=1, pady=10) Label(contend, text=org.get_organization(), padx=20).grid(row=i, column=2) # Label(contend, text=org.get_address(), padx=20).grid(row=i, column=3) # Label(contend, text=org.get_reg_time(), padx=20).grid(row=i, column=4) i += 1
def __init__(self, parent, controller): tk.Frame.__init__(self, parent) org_db = OrganizationDbHelper() per_db = AuthorizedDbHelper() sec_db = EmployeeDBHelper() monitoring_dbh = MonitoringDbHelper() str_mon_dbh = StrangerMonitoringDatabaseHelper() stranger_dbh = StrangerDbHelper() def add_title(text): Title = tk.Label(frame_content, text=text, font=("Arial", 15), pady=15) Title.pack() controller.title(text) def hide_all_frame(): for widget in frame_content.winfo_children(): widget.destroy() def settings(): messagebox.showinfo("Service Not Available", "Settings will be added in commercial release") def add_person_menu(): permitted_location = [] # def on_select(cb): # org_db = OrganizationDbHelper() orgs = org_db.find_all() orgs_name = [] for ors in orgs: orgs_name.append(str(ors.get_id())+" "+ors.get_name()) selected_org = tk.StringVar() selected_org.set(orgs_name[0]) hide_all_frame() add_title("Register Person") lb_emp_id = tk.Label(frame_content, text="Employee ID") lb_emp_id.pack() ent_em_id = tk.Entry(frame_content, ) ent_em_id.pack() lb_name = tk.Label(frame_content, text="Employee Name*") lb_name.pack() ent_name = tk.Entry(frame_content, ) ent_name.pack() lb_org = tk.Label(frame_content, text="Organization ID*") lb_org.pack() ent_org_id = tk.OptionMenu(frame_content, selected_org, *orgs_name) ent_org_id.config(width=15, font=('Helvetica', 12)) ent_org_id.pack() tk.Label(frame_content, text="Select Permitted Area", font=("Arial", 20)).pack(pady=20) floor1 = tk.StringVar() floor2 = tk.StringVar() floor3 = tk.StringVar() floor4 = tk.StringVar() floor5 = tk.StringVar() floor6 = tk.StringVar() floor7 = tk.StringVar() floor8 = tk.StringVar() floor9 = tk.StringVar() cb1 = tk.Checkbutton(frame_content, text="1st Floor",variable=floor1, onvalue="1st Floor", offvalue="").place(x=0, y=250) cb2 = tk.Checkbutton(frame_content, text="2nd Floor",variable=floor2, onvalue="2nd Floor", offvalue="").place(x=100, y=250) cb3 = tk.Checkbutton(frame_content, text="3rd Floor",variable=floor3, onvalue="3th Floor", offvalue="").place(x=200, y=250) cb4 = tk.Checkbutton(frame_content, text="4th Floor",variable=floor4, onvalue="4th Floor", offvalue="").place(x=300, y=250) cb5 = tk.Checkbutton(frame_content, text="5th Floor",variable=floor5, onvalue="5th Floor", offvalue="").place(x=400, y=250) cb6 = tk.Checkbutton(frame_content, text="6th Floor",variable=floor6, onvalue="6th Floor", offvalue="").place(x=500, y=250) cb7 = tk.Checkbutton(frame_content, text="7th Floor",variable=floor7, onvalue="7th Floor", offvalue="").place(x=600, y=250) cb8 = tk.Checkbutton(frame_content, text="8th Floor",variable=floor8, onvalue="8th Floor", offvalue="").place(x=700, y=250) cb9 = tk.Checkbutton(frame_content, text="9th Floor",variable=floor9, onvalue="9th Floor", offvalue="").pack(pady=20) def check_permitted(value): if value != "": permitted_location.append(value) def brows_image(): img_loc = filedialog.askopenfilename(initialdir="/home/rktirtho/", title="Select Image", filetypes=(("JPG Files", "*.jpg"), ("PNG Files", "*.png"))) global image_file image_file = img_loc def save(): check_permitted(floor1.get()) check_permitted(floor2.get()) check_permitted(floor3.get()) check_permitted(floor4.get()) check_permitted(floor5.get()) check_permitted(floor6.get()) check_permitted(floor7.get()) check_permitted(floor8.get()) check_permitted(floor9.get()) prossesing_org_id = selected_org.get().split(" ") emp_id = ent_em_id.get() emp_name = ent_name.get() org_id = prossesing_org_id[0] img = image_file if emp_id.strip() == "" or emp_name.strip() == "" or org_id.strip() == "": messagebox.showwarning("All Field Required", "* Marked Field Required") else: names = emp_name.strip(" ") file_name = names[0] auth_db = AuthorizedDbHelper() permitted = Permitted(emp_name, str(emp_id)+str(org_id)+file_name, "Hawk Eye", int(org_id),emp_id) auth_db.save(permitted) copyfile(img, os.path.join("/home/rktirtho/PycharmProjects/Hawk-Eye/images/auth/"+str(emp_id)+str(org_id)+file_name+".jpg")) copyfile(img, os.path.join("/home/rktirtho/Documents/workspace-spring-tool-suite-4-4.7.1.RELEASE/hawk-eye-serversite/src/main/resources/static/images/"+str(emp_id)+str(org_id)+file_name+".jpg")) permit_area_dbh = PermitAreaDbHelper() ent_em_id.delete(0,"end") ent_name.delete(0,"end") messagebox.showinfo("Employee Added", "Successfully Employee Added.") for area in permitted_location: permit_area_dbh.add(emp_id, area) permitted_location.clear() tk.Button(frame_content, text="Load Image*", command=brows_image).pack(pady=10) tk.Button(frame_content, text="Save", command=save, bg="#0D1117", fg="#AFB5BB", width=20).pack(padx=20) # content_panel.add(frame_content) def add_employee_menu(): hide_all_frame() add_title("Register Employee") lb_emp_id = tk.Label(frame_content, text="Employee ID") lb_emp_id.pack() ent_em_id = tk.Entry(frame_content, ) ent_em_id.pack() lb_name = tk.Label(frame_content, text="Employee Name*") lb_name.pack() ent_name = tk.Entry(frame_content, ) ent_name.pack() lb_org = tk.Label(frame_content, text="Email*") lb_org.pack() ent_email = tk.Entry(frame_content, ) ent_email.pack() def brows_image(): img_loc = filedialog.askopenfilename(initialdir="/home/rktirtho/", title="Select Image", filetypes=(("JPG Files", "*.jpg"), ("PNG Files", "*.png"))) global image_file image_file = img_loc def save(): img = image_file id = ent_em_id.get() name = ent_name.get() email = ent_email.get() if id.strip() == "" or name.strip() == "" or email.strip() == "": messagebox.showwarning("All Field Required", "* Marked Field Required") else: names = name.strip(" ") file_name = names[0] emp_db = EmployeeDBHelper() auth_db = AuthorizedDbHelper() emp_db.save(id, name, email) permitted = Permitted(name, str(id)+str(1)+file_name, "Hawk Eye", 1,id) permitted_area_dbh =PermitAreaDbHelper() permitted_area_dbh.add(id, "1st Floor") permitted_area_dbh.add(id, "2nd Floor") permitted_area_dbh.add(id, "3rd Floor") permitted_area_dbh.add(id, "4th Floor") auth_db.save(permitted) copyfile(img, os.path.join("/home/rktirtho/PycharmProjects/Hawk-Eye/images/auth/"+str(id)+str(1)+file_name+".jpg")) copyfile(img, os.path.join("/home/rktirtho/Documents/workspace-spring-tool-suite-4-4.7.1.RELEASE/hawk-eye-serversite/src/main/resources/static/images/"+str(id)+str(1)+file_name+".jpg")) # except: # messagebox.showwarning("All Field Required", "Image Required") tk.Button(frame_content, text="Browse Image*", command=brows_image).pack(pady=10) tk.Button(frame_content, text="Save", command=save, bg="#0D1117", fg="#AFB5BB", width=20).pack(padx=20) def add_org_menu(): hide_all_frame() add_title("New Organization") lb_name = tk.Label(frame_content, text="Organization Name*") lb_name.pack() ent_name = tk.Entry(frame_content, ) ent_name.pack() lb_org = tk.Label(frame_content, text="Owner Name") lb_org.pack() ent_owner = tk.Entry(frame_content, ) ent_owner.pack() lb_emp_id = tk.Label(frame_content, text="Address") lb_emp_id.pack() ent_address = tk.Entry(frame_content, ) ent_address.pack() def save(): name= ent_name.get() owner = ent_owner.get() address = ent_address.get() s="dfd" if name == "" or owner == "" or address=="": messagebox.showerror("Required", "All Field required.") else: org_db_helper = OrganizationDbHelper() org_db_helper.save(name, owner, address) ent_name.delete(0, "end") ent_address.delete(0, "end") ent_owner.delete(0, "end") messagebox.showinfo("Saved!!", "Information added") tk.Button(frame_content, text="Save", command=save, bg="#0D1117", fg="#AFB5BB", width=20).pack(pady=20) # ============================= Edit Menu ============================ def edit_person(): hide_all_frame() add_title("Edit Person") lb_emp_id = tk.Label(frame_content, text="Person Id") lb_emp_id.pack() ent_em_id = tk.Entry(frame_content, ) ent_em_id.pack() def search_person(): person_id = ent_em_id.get() person_db = AuthorizedDbHelper() person = person_db.find_one(person_id) print(person_id) print(person) if(person != None): lb_name = tk.Label(frame_content, text="Employee Name*") lb_name.pack() ent_name = tk.Entry(frame_content, textvariable="person.get_name()") ent_name.pack(pady=10) ent_name.insert(0, person.get_name()) lb_org = tk.Label(frame_content, text="Organization ID*") lb_org.pack() ent_org_id = tk.Entry(frame_content, text=person.get_organization()) ent_org_id.pack(pady=10) ent_org_id.insert(0, person.get_organization()) tk.Button(frame_content, text="Change Image*").pack(pady=10) tk.Button(frame_content, text="Save", bg="#0D1117", fg="#AFB5BB", width=20).pack(padx=20) else: messagebox.showerror("Not Found", "Employee not found") src = tk.Button(frame_content, text="Search", command=search_person, bg="green", fg="#AFB5BB", width=20).pack(padx=20,pady=20) def edit_employee(): hide_all_frame() add_title("Edit Employee") lb_emp_id = tk.Label(frame_content, text="Person Id") lb_emp_id.pack() ent_em_id = tk.Entry(frame_content, ) ent_em_id.pack() def search_person(): person_id = ent_em_id.get() person_db = AuthorizedDbHelper() person = person_db.find_one(person_id) print(person_id) print(person) if(person != None): lb_name = tk.Label(frame_content, text="Employee Name*") lb_name.pack() ent_name = tk.Entry(frame_content, textvariable="person.get_name()") ent_name.pack(pady=10) ent_name.insert(0, person.get_name()) lb_org = tk.Label(frame_content, text="Organization ID*") lb_org.pack() ent_org_id = tk.Entry(frame_content, text=person.get_organization()) ent_org_id.pack(pady=10) ent_org_id.insert(0, person.get_organization()) tk.Button(frame_content, text="Change Image*").pack(pady=10) tk.Button(frame_content, text="Save", bg="#0D1117", fg="#AFB5BB", width=20).pack(padx=20) else: messagebox.showerror("Not Found", "Employee not found") src = tk.Button(frame_content, text="Search", command=search_person, bg="green", fg="#AFB5BB", width=20).pack(padx=20,pady=20) # ==================== Statistic Menu Function========================= def today_info(): hide_all_frame() add_title("Today") persons = monitoring_dbh.get_today() x = 1 y = 0 f1 = tk.Frame(frame_content) if len(persons) == 0: name = tk.Label(f1, text="No data found", fg="red", font=("Arial", 18)) name.pack(pady=30) for person in persons: l1 = tk.Frame(f1, bg="ivory", highlightthickness=2, bd=10, width=200, height=200) l1.config(highlightbackground="#eeeeee", highlightcolor="#eeeeee") l1.grid(row=x, column=y, padx=10, pady=20) file = 'images/auth/' + person.get_image() + '.jpg' image = Image.open(file) img = ImageTk.PhotoImage(image.resize((100, 100))) bg = tk.Label(l1, image=img, height=100, width=100) bg.image = img bg.pack() name = tk.Label(l1, text=person.get_name()) name.pack() email = tk.Label(l1, text=person.get_image()) email.pack() org = tk.Label(l1, text=person.get_organization()) org.pack() btn = tk.Button(l1, text="View", bg="green", command=partial(show_today_info, person.get_name(), person.get_id())) btn.pack() y += 1 if y > 5: x += 1 y = 0 f1.grid_columnconfigure(y, weight=1) f1.pack(fill="both") def yesterday_info(): hide_all_frame() add_title("Yesterday") persons = monitoring_dbh.get_yesterday() x = 1 y = 0 f1 = tk.Frame(frame_content) if len(persons) == 0: name = tk.Label(f1, text="No data found", fg="red", font=("Arial", 18)) name.pack(pady=30) for person in persons: l1 = tk.Frame(f1, bg="ivory", highlightthickness=2, bd=10, width=200, height=200) l1.config(highlightbackground="#eeeeee", highlightcolor="#eeeeee") l1.grid(row=x, column=y, padx=10, pady=20) file = 'images/auth/' + person.get_image() + '.jpg' image = Image.open(file) img = ImageTk.PhotoImage(image.resize((100, 100))) bg = tk.Label(l1, image=img, height=100, width=100) bg.image = img bg.pack() name = tk.Label(l1, text=person.get_name()) name.pack() email = tk.Label(l1, text=person.get_image()) email.pack() org = tk.Label(l1, text=person.get_organization()) org.pack() btn = tk.Button(l1, text="View", bg="green", command=partial(show_yesterday_info, person.get_name(), person.get_id())) btn.pack() y += 1 if y > 5: x += 1 y = 0 f1.grid_columnconfigure(y, weight=1) f1.pack(fill="both") def show_stranger_info(name, id): root = tk.Tk(className="Hawk Eye") root.title(name) moves = str_mon_dbh.get_access_by_id(id) tk.Label(root, text="Area", font=("Ariel", 15, "bold"), padx=30).grid(row=2, column=0, padx=30) tk.Label(root, text="Time", font=("Ariel", 15,"bold")).grid(row=2, column=1, padx=30) # tk.Label(root, text="Access", font=("Ariel", 15,"bold")).grid(row=2, column=2, padx=30) count =3 for move in moves: name = tk.Label(root, text=move.get_area(), font=("Ariel", 12)).grid(row=count, column=0) name1 = tk.Label(root, text=move.get_time(), font=("Ariel", 12)).grid(row=count, column=1, pady=5) # if move.is_permit() ==1: # tk.Label(root, text="Permitted", width=20,bg="green", fg="white", font=("Ariel", 12)).grid(row=count, column=2) # else: # tk.Label(root, text="Illegal",width=20, bg="red", fg="white", font=("Ariel", 12)).grid(row=count, column=2) count += 1 root.minsize(500,400) root.mainloop() def show_info(name, id): root = tk.Tk(className="Hawk Eye") root.title(name) moves = monitoring_dbh.get_access_by_id(id) tk.Label(root, text="Area", font=("Ariel", 15, "bold"), padx=30).grid(row=2, column=0, padx=30) tk.Label(root, text="Time", font=("Ariel", 15,"bold")).grid(row=2, column=1, padx=30) tk.Label(root, text="Access", font=("Ariel", 15,"bold")).grid(row=2, column=2, padx=30) count =3 for move in moves: name = tk.Label(root, text=move.get_area(), font=("Ariel", 12)).grid(row=count, column=0) name1 = tk.Label(root, text=move.get_time(), font=("Ariel", 12)).grid(row=count, column=1, pady=5) if move.is_permit() ==1: tk.Label(root, text="Permitted", width=20,bg="green", fg="white", font=("Ariel", 12)).grid(row=count, column=2) else: tk.Label(root, text="Illegal",width=20, bg="red", fg="white", font=("Ariel", 12)).grid(row=count, column=2) count += 1 root.minsize(500,400) root.mainloop() def show_today_info(name, id): root = tk.Tk(className="Hawk Eye") root.title(name) moves = monitoring_dbh.get_today_access_by_id(id) tk.Label(root, text="Area", font=("Ariel", 15, "bold"), padx=30).grid(row=2, column=0, padx=30) tk.Label(root, text="Time", font=("Ariel", 15,"bold")).grid(row=2, column=1, padx=30) tk.Label(root, text="Access", font=("Ariel", 15,"bold")).grid(row=2, column=2, padx=30) count =3 for move in moves: name = tk.Label(root, text=move.get_area(), font=("Ariel", 12)).grid(row=count, column=0) name1 = tk.Label(root, text=move.get_time(), font=("Ariel", 12)).grid(row=count, column=1, pady=5) if move.is_permit() ==1: tk.Label(root, text="Permitted", width=20,bg="green", fg="white", font=("Ariel", 12)).grid(row=count, column=2) else: tk.Label(root, text="Illegal",width=20, bg="red", fg="white", font=("Ariel", 12)).grid(row=count, column=2) count += 1 root.minsize(500,400) root.mainloop() def show_yesterday_info(name, id): root = tk.Tk(className="Hawk Eye") root.title(name) moves = monitoring_dbh.get_yesterday_access_by_id(id) tk.Label(root, text="Area", font=("Ariel", 15, "bold"), padx=30).grid(row=2, column=0, padx=30) tk.Label(root, text="Time", font=("Ariel", 15,"bold")).grid(row=2, column=1, padx=30) tk.Label(root, text="Access", font=("Ariel", 15,"bold")).grid(row=2, column=2, padx=30) count =3 for move in moves: name = tk.Label(root, text=move.get_area(), font=("Ariel", 12)).grid(row=count, column=0) name1 = tk.Label(root, text=move.get_time(), font=("Ariel", 12)).grid(row=count, column=1, pady=5) if move.is_permit() ==1: tk.Label(root, text="Permitted", width=20,bg="green", fg="white", font=("Ariel", 12)).grid(row=count, column=2) else: tk.Label(root, text="Illegal",width=20, bg="red", fg="white", font=("Ariel", 12)).grid(row=count, column=2) count += 1 root.minsize(500,400) root.mainloop() def show_auth_info(name, id): root = tk.Tk(className="Hawk Eye") root.title(name) moves = monitoring_dbh.get_auth_access_by_id(id) tk.Label(root, text="Area", font=("Ariel", 15, "bold"), padx=30).grid(row=2, column=0, padx=30) tk.Label(root, text="Time", font=("Ariel", 15,"bold")).grid(row=2, column=1, padx=30) tk.Label(root, text="Access", font=("Ariel", 15,"bold")).grid(row=2, column=2, padx=30) count =3 for move in moves: name = tk.Label(root, text=move.get_area(), font=("Ariel", 12)).grid(row=count, column=0) name1 = tk.Label(root, text=move.get_time(), font=("Ariel", 12)).grid(row=count, column=1, pady=5) if move.is_permit() ==1: tk.Label(root, text="Permitted", width=20,bg="green", fg="white", font=("Ariel", 12)).grid(row=count, column=2) else: tk.Label(root, text="Illegal",width=20, bg="red", fg="white", font=("Ariel", 12)).grid(row=count, column=2) count += 1 root.minsize(500,400) root.mainloop() def show_unauth_info(name, id): root = tk.Tk(className="Hawk Eye") root.title(name) moves = monitoring_dbh.get_unauth_access_by_id(id) tk.Label(root, text="Area", font=("Ariel", 15, "bold"), padx=30).grid(row=2, column=0, padx=30) tk.Label(root, text="Time", font=("Ariel", 15,"bold")).grid(row=2, column=1, padx=30) tk.Label(root, text="Access", font=("Ariel", 15,"bold")).grid(row=2, column=2, padx=30) count =3 for move in moves: name = tk.Label(root, text=move.get_area(), font=("Ariel", 12)).grid(row=count, column=0) name1 = tk.Label(root, text=move.get_time(), font=("Ariel", 12)).grid(row=count, column=1, pady=5) if move.is_permit() ==1: tk.Label(root, text="Permitted", width=20,bg="green", fg="white", font=("Ariel", 12)).grid(row=count, column=2) else: tk.Label(root, text="Illegal",width=20, bg="red", fg="white", font=("Ariel", 12)).grid(row=count, column=2) count += 1 root.minsize(500,400) root.mainloop() def show_info(name, id): root = tk.Tk(className="Hawk Eye") root.title(name) moves = monitoring_dbh.get_access_by_id(id) tk.Label(root, text="Area", font=("Ariel", 15, "bold"), padx=30).grid(row=2, column=0, padx=30) tk.Label(root, text="Time", font=("Ariel", 15,"bold")).grid(row=2, column=1, padx=30) tk.Label(root, text="Access", font=("Ariel", 15,"bold")).grid(row=2, column=2, padx=30) count =3 for move in moves: name = tk.Label(root, text=move.get_area(), font=("Ariel", 12)).grid(row=count, column=0) name1 = tk.Label(root, text=move.get_time(), font=("Ariel", 12)).grid(row=count, column=1, pady=5) if move.is_permit() ==1: tk.Label(root, text="Permitted", width=20,bg="green", fg="white", font=("Ariel", 12)).grid(row=count, column=2) else: tk.Label(root, text="Illegal",width=20, bg="red", fg="white", font=("Ariel", 12)).grid(row=count, column=2) count += 1 root.minsize(500,400) root.mainloop() def all_info(): hide_all_frame() add_title("All History") persons = monitoring_dbh.get_all() x = 1 y = 0 f1 = tk.Frame(frame_content) if len(persons) == 0: name = tk.Label(f1, text="No data found", fg="red", font=("Arial", 18)) name.pack(pady=30) for person in persons: l1 = tk.Frame(f1, bg="ivory", highlightthickness=2, bd=10, width=200, height=200) l1.config(highlightbackground="#eeeeee", highlightcolor="#eeeeee") l1.grid(row=x, column=y, padx=10, pady=20) file = 'images/auth/' + person.get_image() + '.jpg' image = Image.open(file) img = ImageTk.PhotoImage(image.resize((100, 100))) bg = tk.Label(l1, image=img, height=100, width=100) bg.image = img bg.pack() name = tk.Label(l1, text=person.get_name()) name.pack() email = tk.Label(l1, text=person.get_image()) email.pack() org = tk.Label(l1, text=person.get_organization()) org.pack() btn = tk.Button(l1, text="View", bg="green", command=partial(show_info, person.get_name(), person.get_id())) btn.pack() y += 1 if y > 5: x += 1 y = 0 f1.grid_columnconfigure(y, weight=1) f1.pack(fill="both") def auth_access(): hide_all_frame() add_title("Authorized Access") hide_all_frame() add_title("Authorized Access") access = monitoring_dbh.get_auth_access() x = 1 y = 0 f1 = tk.Frame(frame_content) if len(access) == 0: name = tk.Label(f1, text="No data found", fg="red", font=("Arial", 18)) name.pack(pady=30) for acc in access: l1 = tk.Frame(f1, bg="ivory", highlightthickness=2, bd=10, width=200, height=200) l1.config(highlightbackground="#eeeeee", highlightcolor="#eeeeee") l1.grid(row=x, column=y, padx=10, pady=20) file = 'images/auth/' + acc.get_image_id() + '.jpg' image = Image.open(file) img = ImageTk.PhotoImage(image.resize((100, 100))) bg = tk.Label(l1, image=img, height=100, width=100) bg.image = img bg.pack() org = org_db.find_one(acc.get_org_id()) name = tk.Label(l1, text=acc.get_name()) name.pack() email = tk.Label(l1, text=org.get_name()) email.pack() # org = tk.Label(l1, text=person.get_organization()) # org.pack() btn = tk.Button(l1, text="View", bg="green", command=partial(show_auth_info, acc.get_name(), acc.get_id())) btn.pack() y += 1 if y > 5: x += 1 y = 0 f1.grid_columnconfigure(y, weight=1) f1.pack(fill="both") def strangers_access(): hide_all_frame() add_title("Visitor Access") hide_all_frame() add_title("Visitor Access") access = str_mon_dbh.get_all() x = 1 y = 0 f1 = tk.Frame(frame_content) if len(access) == 0: name = tk.Label(f1, text="No data found", fg="red", font=("Arial", 18)) name.pack(pady=30) for acc in access: l1 = tk.Frame(f1, bg="ivory", highlightthickness=2, bd=10, width=200, height=200) l1.config(highlightbackground="#eeeeee", highlightcolor="#eeeeee") l1.grid(row=x, column=y, padx=10, pady=20) file = 'images/strangers/' + acc.get_image() + '.jpg' image = Image.open(file) img = ImageTk.PhotoImage(image.resize((100, 100))) bg = tk.Label(l1, image=img, height=100, width=100) bg.image = img bg.pack() name = tk.Label(l1, text=acc.get_image()) name.pack() org = tk.Label(l1, text=acc.get_visited()) org.pack() btn = tk.Button(l1, text="View", bg="green", command=partial(show_stranger_info, acc.get_image(), acc.get_id())) btn.pack() y += 1 if y > 5: x += 1 y = 0 f1.grid_columnconfigure(y, weight=1) f1.pack(fill="both") def unauth_access(): hide_all_frame() add_title("Unauthorized Access") hide_all_frame() add_title("Unauthorized Access") access = monitoring_dbh.get_unauth_access() x = 1 y = 0 f1 = tk.Frame(frame_content) if len(access) == 0: name = tk.Label(f1, text="No data found", fg="red", font=("Arial", 18)) name.pack(pady=30) for acc in access: l1 = tk.Frame(f1, bg="ivory", highlightthickness=2, bd=10, width=200, height=200) l1.config(highlightbackground="#eeeeee", highlightcolor="#eeeeee") l1.grid(row=x, column=y, padx=10, pady=20) file = 'images/auth/' + acc.get_image_id() + '.jpg' image = Image.open(file) img = ImageTk.PhotoImage(image.resize((100, 100))) bg = tk.Label(l1, image=img, height=100, width=100) bg.image = img bg.pack() org = org_db.find_one(acc.get_org_id()) name = tk.Label(l1, text=acc.get_name()) name.pack() email = tk.Label(l1, text=org.get_name()) email.pack() # org = tk.Label(l1, text=person.get_organization()) # org.pack() btn = tk.Button(l1, text="View", bg="green",command=partial(show_unauth_info, acc.get_name(), acc.get_id())) btn.pack() y += 1 if y > 5: x += 1 y = 0 f1.grid_columnconfigure(y, weight=1) f1.pack(fill="both") def show_statistics(): hide_all_frame() f1 = tk.Frame(frame_content) x = 1 y = 0 for i in range(5): l1 = tk.Frame(f1, bg="ivory", highlightthickness=2, bd=10, width=800, height=400, relief="raised") l1.config(highlightbackground="#eeeeee", highlightcolor="#eeeeee", width=800) l1.grid(row=x, column=y, padx=10, pady=20) if i == 0: name = tk.Label(l1, text="Today's Visitors", width=30, bg="ivory", fg="red", font=("ariel", 10, "bold")) today_visitors = str_mon_dbh.count_today_strangers() email = tk.Label(l1, text=str(today_visitors[0]), bg="ivory", font=("ariel", 15, "bold")) email.pack(pady=30) elif i == 1: name = tk.Label(l1, text="Today's Employee", width=30, bg="ivory", fg="red", font=("ariel", 10, "bold")) today_employee = monitoring_dbh.count_today_employee() email = tk.Label(l1, text=str(today_employee[0]), bg="ivory", font=("ariel", 15, "bold")) email.pack(pady=30) elif i == 2: count = per_db.count_registered_employee() name = tk.Label(l1, text="Total Employee", width=30, bg="ivory", fg="red", font=("ariel", 10, "bold")) email = tk.Label(l1, text=str(count[0]), bg="ivory", font=("ariel", 15, "bold")) email.pack(pady=30) elif i == 3: count = sec_db.count_security() name = tk.Label(l1, text="Security Person", width=30, bg="ivory", fg="red", font=("ariel", 10, "bold")) email = tk.Label(l1, text=str(count[0]), bg="ivory", font=("ariel", 15, "bold")) email.pack(pady=30) elif i == 4: name = tk.Label(l1, text="Organizations", width=30, bg="ivory", fg="red", font=("ariel", 10, "bold")) number_of_org = org_db.count_organizaton() email = tk.Label(l1, text=str(number_of_org[0]), bg="ivory", font=("ariel", 15, "bold")) email.pack(pady=30) name.pack() org = tk.Label(l1, text="Option") y += 1 if y > 2: x += 1 y = 0 f1.grid_columnconfigure(y, weight=1) f1.pack(fill="both") # ============================== View Menu ============================= def view_all_employee(): hide_all_frame() add_title("All Employee") per = AuthorizedDbHelper() persons = per.find_all_details() x = 1 y = 0 f1 = tk.Frame(frame_content) for person in persons: l1 = tk.Frame(f1, bg="ivory", highlightthickness=2, bd=10, width=200, height=200) l1.config(highlightbackground="#eeeeee", highlightcolor="#eeeeee") l1.grid(row=x, column=y, padx=10, pady=20) file = 'images/auth/'+person.get_image()+'.jpg' image = Image.open(file) img = ImageTk.PhotoImage(image.resize((100, 100))) bg = tk.Label(l1, image=img, height=100, width=100) bg.image = img bg.pack() name = tk.Label(l1, text=person.get_name(),bg="ivory") name.pack() # email = tk.Label(l1, text=person.get_image(),bg="ivory") # email.pack() org = tk.Label(l1, text=person.get_organization(),bg="ivory") org.pack() btn = tk.Button(l1, text="View", bg="green", fg="white", command=partial(show_info,person.get_name(), person.get_id())) btn.pack() y += 1 if y>5: x+=1 y=0 f1.grid_columnconfigure(y, weight=1) f1.pack(fill="both") def view_all_security(): hide_all_frame() add_title("All Security Person") emp = EmployeeDBHelper() emps = emp.find_all() x=1 y=0 f1 = tk.Frame(frame_content) for em in emps: l1 = tk.Frame(f1, bg="ivory",highlightthickness=2, bd=10, width=200, height=200) l1.config(highlightbackground = "black", highlightcolor= "black") l1.grid(row=x, column=y, padx=10, pady=20) file = 'images/meterial/placeholder.png' image = Image.open(file) img = ImageTk.PhotoImage(image.resize((100, 100))) bg = tk.Label(l1, image=img, height=100, width=100) bg.image = img bg.pack() name = tk.Label(l1, text=em.get_name()) name.pack() email = tk.Label(l1, text=em.get_email()) email.pack() org = tk.Label(l1, text=em.get_org_id()) org.pack() btn = tk.Button(l1, text="View", bg="green") btn.pack() y+=1 f1.grid_columnconfigure(y, weight=1) f1.pack(fill="both") def view_all_stranger(): hide_all_frame() add_title("All Security Person") strangers = stranger_dbh.get_all_strangers() x = 1 y = 0 f1 = tk.Frame(frame_content) for stn in strangers: l1 = tk.Frame(f1, bg="ivory", highlightthickness=2, bd=10, width=200, height=200) l1.config(highlightbackground="#eeeeee", highlightcolor="#eeeeee") l1.grid(row=x, column=y, padx=10, pady=20) file = 'images/strangers/' + stn.get_image() + '.jpg' image = Image.open(file) img = ImageTk.PhotoImage(image.resize((100, 100))) bg = tk.Label(l1, image=img, height=100, width=100) bg.image = img bg.pack() name = tk.Label(l1, text=stn.get_image(), bg="ivory") name.pack() # email = tk.Label(l1, text=person.get_image(),bg="ivory") # email.pack() org = tk.Label(l1, text="Visited : 41 Times", bg="ivory") org.pack() btn = tk.Button(l1, text="View", bg="green", fg="white", command=partial(show_stranger_info, stn.get_image(), stn.get_id())) btn.pack() y += 1 if y > 5: x += 1 y = 0 f1.grid_columnconfigure(y, weight=1) f1.pack(fill="both") def view_all_org(): hide_all_frame() # add_title("All Organization") controller.title("All Organizations") title = tk.Label(frame_content, text="All Organizations", font=("Arial", 20)).grid(row=0, column=2, columnspan=2, pady=10) org = OrganizationDbHelper() orgs = org.find_all() i = 2 c = 0 tk.Label(frame_content, text="#Id", padx=20).grid(row=1, column=0, pady=10) tk.Label(frame_content, text="Name", padx=20).grid(row=1, column=1, pady=10) tk.Label(frame_content, text='Woner', padx=20).grid(row=1, column=2) tk.Label(frame_content, text='Address', padx=20).grid(row=1, column=3) tk.Label(frame_content, text='Registration', padx=20).grid(row=1, column=4) for org in orgs: tk.Label(frame_content, text=org.get_id(), padx=20).grid(row=i, column=0, pady=10) tk.Label(frame_content, text=org.get_name(), padx=20).grid(row=i, column=1, pady=10) tk.Label(frame_content, text=org.get_woner(), padx=20).grid(row=i, column=2) tk.Label(frame_content, text=org.get_address(), padx=20).grid(row=i, column=3) tk.Label(frame_content, text=org.get_reg_time(), padx=20).grid(row=i, column=4) i += 1 # if parent == SecondPage: my_menu = tk.Menu(self) controller.config(menu=my_menu) file_menu = tk.Menu(my_menu) my_menu.add_cascade(label="New", menu=file_menu) file_menu.add_command(label="Employee", command=add_person_menu) file_menu.add_command(label="Security", command=add_employee_menu) file_menu.add_command(label="Organization", command=add_org_menu) file_menu.add_separator() file_menu.add_command(label="Settings", command=settings) file_menu.add_separator() file_menu.add_command(label="Exit", command=self.quit) edit_menu = tk.Menu(my_menu) my_menu.add_cascade(label="Edit", menu=edit_menu) edit_menu.add_command(label="Update Security" , command=edit_employee) edit_menu.add_command(label="Update Employee", command=edit_person) statistic_menu = tk.Menu(my_menu) my_menu.add_cascade(label="Statistic", menu=statistic_menu) statistic_menu.add_command(label="Today", command=today_info) statistic_menu.add_command(label="Yesterday",command=yesterday_info) statistic_menu.add_separator() statistic_menu.add_command(label="All Access", command=all_info) statistic_menu.add_separator() statistic_menu.add_command(label="Authorized Access",command=auth_access) statistic_menu.add_command(label="Unauthorized Access", command = unauth_access) statistic_menu.add_separator() statistic_menu.add_command(label="Strangers", command = strangers_access) statistic_menu.add_separator() statistic_menu.add_command(label="Statistics", command = show_statistics) view_menu = tk.Menu(my_menu) my_menu.add_cascade(label="View", menu=view_menu) view_menu.add_command(label="All Employee", command=view_all_employee) view_menu.add_command(label="All Security", command=view_all_security) view_menu.add_command(label="All Strangers", command=view_all_stranger) view_menu.add_command(label="All Organization", command=view_all_org) frame_content = tk.Frame(self) frame_content.pack(fill="both", expand=1, pady=50) show_statistics()
# ================================ Load Stranger Image from directory===================== image_path = "images/strangers" stranger_images = [] stranger_faceList = list() stranger_classNames = [] stranger_myList = os.listdir(image_path) for s_cl in stranger_myList: curImg = cv2.imread(f'{image_path}/{s_cl}') stranger_images.append(curImg) print(s_cl) stranger_classNames.append(os.path.splitext(s_cl)[0]) auth_db_helper = AuthorizedDbHelper() auth_users = auth_db_helper.find_all_details() dbh_monitoring = MonitoringDbHelper() dbh_stranger = StrangerDbHelper() dbh_strangerMonitoring = StrangerMonitoringDatabaseHelper() stranger_current_id = dbh_stranger.get_stranger_max_id() print("========== Class name ===========") print(classNames) def findEncodings(images): encodeList = [] for img in images: img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)