def scan_in():
     UID=EasyProcess('/home/pi/libnfc/libnfc-1.7.1/examples/nfc-poll').call(timeout=10).stdout
     if(UID):
         UID = RDC.formatC(UID)
         lname = XL.getLstudent()
         XL.addStudent(lname)
         XL.addUID(UID)
         RDC.buz()
         controller.show_frame(EditStudents)
     else:
         showerror(title="Error",message="No Card was recorded.")
         print "time out"
 def __init__(self,parent,controller):
     tk.Frame.__init__(self,parent, bg = "orange red")
     label=tk.Label(self,text="Change Class",font=LARGE_FONT,bg="orange red")
     label.grid(row=0,column=1,sticky=N)
     label3=tk.Label(self,text="Time Length",font=LARGE_FONT,bg="orange red")
     label3.grid(row=1,column=1,sticky=N)
     #get class hour time
     hours = StringVar()
     hours.set(XL.getH())
     #get class minute time
     minutes = StringVar()
     minutes.set(XL.getM())
     #refresh buttons
     refresh= tk.Button(self,text="Refresh",relief="raised",padx=4,pady=4,bd=4,
             height=2,width=10,command = lambda: Refresh())
     refresh.grid(row=4,column=3)
     def Refresh():
         hours.set(XL.getH())
         hoursB.configure(text=hours)
         minutes.set(XL.getM())
         minutesB.configure(text=minutes)
     #change hours button
     hoursB=tk.Button(self,textvariable=hours,bg="orange red",
                      height=4,width=15,command=lambda: go_NPadH())
     hoursB.grid(row=2,column=1,pady=10)
     def go_NPadH():
         XL.setLastPage("ChangeTimeH")
         controller.show_frame(Number_Pad)
     #Hours label
     label4=tk.Label(self,text="Hours",font=LARGE_FONT,bg="orange red")
     label4.grid(row=3,column=1,sticky=N)
     # label :
     label2=tk.Label(self,text=":",font=LARGE_FONT,bg="orange red")
     label2.grid(row=2,column=2) 
     #change minutes button
     minutesB=tk.Button(self,textvariable=minutes,bg="orange red",
                        height=4,width=15,command=lambda: go_NPadM())
     minutesB.grid(row=2,column=3,pady=10)
     def go_NPadM():
         XL.setLastPage("ChangeTimeM")
         controller.show_frame(Number_Pad)
     #minutes label
     label5=tk.Label(self,text="Minutes",font=LARGE_FONT,bg="orange red")
     label5.grid(row=3,column=3,sticky=N)
     #back button
     Back = tk.Button(self,text="<<Back",relief="raised",padx=4,pady=4,bd=4,
             height=2,width=10,command = lambda: go_Page())
     Back.grid(row=0,column=0)
     def go_Page():
         XL.setLastPage("ChangeTime")
         controller.show_frame(EditPage)
 def Start_Class(boo):
     RDC.setison(boo)
     RDC.buz()
     RDC.buz()
     currentT = RDC.getCT()
     XL.setClassS()
     EOC = RDC.getEOC()
     zero = RDC.setT(0,0)
     while((EOC-RDC.getCT())>zero):
         print "time out"
         if(RDC.getison()):
             print "3"
             ext = EasyProcess('/home/pi/libnfc/libnfc-1.7.1/examples/nfc-poll').call(timeout=5).stdout
             print " 4"
             if(ext):
                 temp = RDC.formatC(ext)
                 if(temp == "d198290f"):
                     break;
                 XL.placeStudent(temp,currentT)
                 #take photo and record him/her
                 RDC.buz()
                 print("student added")
         else:
             RDC.setinc(False)   
             break;
     RDC.buz()
     RDC.buz()
     RDC.buz()
     XL.incLectDay()
     day = XL.getLectDay()
     lecture = XL.getLD()
     if(day > lecture):
         showerror(title="Error",message="That was the last day of class.")
     RDC.setinc(True)
 def back():
     if(XL.getPage() == "ChangeCName"):
         XL.setLastPage("Keyboard")
         inputbox.delete(0,END)
         controller.show_frame(ChangeCName)
     elif(XL.getPage() == "EditStudents"):
         XL.setLastPage("Keyboard")
         inputbox.delete(0,END)
         controller.show_frame(EditStudents)
     elif(XL.getPage() == "EditClasses"):
         XL.setLastPage("Keyboard")
         inputbox.delete(0,END)
         controller.show_frame(EditClasses)
     elif(XL.getPage() == "EditPage"):
         inputbox.delete(0,END)
         controller.show_frame(EditPage)
 def submit():
     if(int(inputbox.get()) == int(XL.getP())):
         inputbox.delete(0,END)
         controller.show_frame(StartStop)
     else:
         inputbox.delete(0,END)
         showerror(title="Error",message="Access Denied")
 def back():
     if(XL.getPage() == "ChangeTimeH"):
         XL.setLastPage("Number_Pad")
         inputbox.delete(0,END)
         controller.show_frame(ChangeTime)
     elif(XL.getPage() == "ChangeTimeM"):
         XL.setLastPage("Number_Pad")
         inputbox.delete(0,END)
         controller.show_frame(ChangeTime)
     elif(XL.getPage() == "EditClasses"):
         inputbox.delete(0,END)
         controller.show_frame(EditClasses)
     elif(XL.getPage() == "ChangeTardy"):
         inputbox.delete(0,END)
         controller.show_frame(ChangeTardy)
     elif(XL.getPage() == "EditPage"):
         inputbox.delete(0,END)
         controller.show_frame(EditPage)
     elif(XL.getPage() == "EditPageL"):
         inputbox.delete(0,END)
         controller.show_frame(EditPage)
    def __init__(self,parent,controller):
        tk.Frame.__init__(self,parent, bg = "orange red")
        label=tk.Label(self,text="Edit",font=LARGE_FONT,bg="orange red")
        label.grid(row=0,column=1,sticky=N)

        refresh= tk.Button(self,text="Refresh",relief="raised",padx=4,pady=4,bd=4,
                height=2,width=10,command = lambda: Refresh())
        refresh.grid(row=3,column=0)
        def Refresh():
            array = XL.getClasses()
            listbox.delete(0,END)
            for item in array:
                listbox.insert(END,item)
                listbox.insert(END," ")
        
        scrollbar = Scrollbar(self)
        scrollbar.grid(row=3,column=2,sticky=N+S,padx=50)
        listbox = Listbox(self,yscrollcommand=scrollbar.set,height=10)
        listbox.grid(row=3,column=1,pady = 20)
        scrollbar.config(command=listbox.yview)
        array = XL.getClasses()
        for item in array:
            listbox.insert(END,item)
            listbox.insert(END," ")
        #Delete Button
        delete=tk.Button(self,text="Remove",relief="raised",padx=4,pady=4,bd=4,
                height=2,width=10,command = lambda: Delete())
        delete.grid(row=3,column=3)
        def Delete():
            selection = listbox.selection_get()
            XL.delClass(selection)
            Refresh()
        #add button
        add=tk.Button(self,text="Add Class",relief="raised",padx=4,pady=4,bd=4,
                height=2,width=10,command = lambda: Add())
        add.grid(row=0,column=3)
        def Add():
            XL.setLastPage("EditClasses")
            controller.show_frame(Keyboard)
        #back button
        Back=tk.Button(self,text="<<Back",relief="raised",padx=4,pady=4,bd=4,
                height=2,width=10,command = lambda: go_Page())
        Back.grid(row=0,column=0)
        
        #back button
        Back = tk.Button(self,text="<<Back",relief="raised",padx=4,pady=4,bd=4,
                height=2,width=10,command = lambda: go_Page())
        Back.grid(row=0,column=0)
        def go_Page():
            XL.setLastPage("EditClasses")
            controller.show_frame(EditPage)
    def __init__(self,parent,controller):
        tk.Frame.__init__(self,parent, bg="orange red")
        v = StringVar()
        v.set(XL.getClass())
        label=tk.Label(self,textvariable=v,font=LARGE_FONT,bg="orange red")
        label.grid(row=1,column=1,sticky=N,padx=20,pady=20)
        #space label for formatting
        space_label = tk.Label(self,text="   ",bg="orange red")
        space_label.grid(row=2,column=0,padx=50)

        button1=tk.Button(self, text="Login",height=4,width=12,padx=4,pady=4,bd=4,
                          command = lambda: controller.show_frame(Login))
        button1.grid(row=2,column=1,padx=50)
        #refresh label
        refresh= tk.Button(self,text="Refresh",relief="raised",padx=4,pady=4,bd=4,
                height=2,width=10,command = lambda: Refresh())
        refresh.grid(row=3,column=1,pady=20)
        def Refresh():
            v.set(XL.getClass())
            label.configure(text=v)
    def __init__(self,parent,controller):
        array = []
        tk.Frame.__init__(self,parent, bg = "orange red")
        label=tk.Label(self,text="Select Class",font=LARGE_FONT,bg="orange red")
        label.grid(row=0,column=1,padx=20,sticky=N)

        refresh= tk.Button(self,text="Refresh",relief="raised",padx=4,pady=4,bd=4,
                height=2,width=10,command = lambda: Refresh())
        refresh.grid(row=3,column=0)
        def Refresh():
            array = XL.getClasses()
            listbox.delete(0,END)
            for item in array:
                listbox.insert(END,item)
                listbox.insert(END," ")
        
        scrollbar = Scrollbar(self)
        scrollbar.grid(row=3,column=2,sticky=N+S)
        listbox = Listbox(self,yscrollcommand=scrollbar.set,height=10)
        listbox.grid(row=3,column=1,pady = 20)
        scrollbar.config(command=listbox.yview)
        array = XL.getClasses()
        for item in array:
            listbox.insert(END,item)
            listbox.insert(END," ")
        #Select Button
        select=tk.Button(self,text="Select",relief="raised",padx=4,pady=4,bd=4,
                height=2,width=10,command = lambda: Selected())
        select.grid(row=3,column=3,padx= 20)
        def Selected():
            selection = listbox.selection_get()
            XL.setClass(selection)
        #back button
        Back=tk.Button(self,text="<<Back",relief="raised",padx=4,pady=4,bd=4,
                height=2,width=10,command = lambda: go_Page())
        Back.grid(row=0,column=0)
        def go_Page():
            XL.setLastPage("ChangeCname")
            controller.show_frame(EditPage)
 def __init__(self,parent,controller):
     tk.Frame.__init__(self,parent, bg = "orange red")
     label=tk.Label(self,text="Change Class",font=LARGE_FONT,bg="orange red")
     label.grid(row=0,column=1,sticky=N)
     label3=tk.Label(self,text="Late Time",font=LARGE_FONT,bg="orange red")
     label3.grid(row=1,column=1,sticky=N)
     #get class tardy time
     Ttime = StringVar()
     Ttime.set(XL.getTTime())
     
     #refresh buttons
     refresh= tk.Button(self,text="Refresh",relief="raised",padx=4,pady=4,bd=4,
             height=2,width=10,command = lambda: Refresh())
     refresh.grid(row=4,column=3)
     def Refresh():
         Ttime.set(XL.getTTime())
         tardy.configure(text=Ttime)
     #change hours button
     tardy=tk.Button(self,textvariable=Ttime,bg="orange red",
                      height=4,width=15,command=lambda: change())
     tardy.grid(row=2,column=1,pady=10)
     def change():
         XL.setLastPage("ChangeTardy")
         controller.show_frame(Number_Pad)
     #late label
     label4=tk.Label(self,text="Late after",font=LARGE_FONT,bg="orange red")
     label4.grid(row=3,column=1,sticky=N)
     #late label
     label3=tk.Label(self,text="this many minutes",font=LARGE_FONT,bg="orange red")
     label3.grid(row=4,column=1,sticky=N)
    
     #back button
     Back = tk.Button(self,text="<<Back",relief="raised",padx=4,pady=4,bd=4,
             height=2,width=10,command = lambda: go_Page())
     Back.grid(row=0,column=0)
     def go_Page():
         XL.setLastPage("ChangeTime")
         controller.show_frame(EditPage)
 def __init__(self,parent,controller):
     tk.Frame.__init__(self,parent, bg = "orange red")
     #refresh label
     refresh= tk.Button(self,text="Refresh",relief="raised",padx=4,pady=4,bd=4,
             height=2,width=10,command = lambda: Refresh())
     refresh.grid(row=0,column=2)
     def Refresh():
         clas.set(XL.getClass())
         label2.configure(text=clas)
     #line1
     v = StringVar()
     label=tk.Label(self,textvariable=v,font=LARGE_FONT,bg="orange red")
     label.grid(row=1,column=2,sticky=N)
     v.set("This will change the name")
     #line2
     v2 = StringVar()
     label3=tk.Label(self,textvariable=v2,font=LARGE_FONT,bg="orange red")
     label3.grid(row=2,column=2)
     v2.set("of the current class you are in")
     #where To put the class that is alctually being held 
     clas=StringVar()
     clas.set(XL.getClass())
     label2=tk.Label(self,textvariable=clas,font=LARGE_FONT,bg="orange red")
     label2.grid(row=3,column=2)
     #change class name button
     change=tk.Button(self,text="Rename Class",relief="raised",padx=4,pady=4,bd=4,
             height=2,width=15,command=lambda: go_Keyboard())
     change.grid(row=4,column=2)
     def go_Keyboard():
         XL.setLastPage("ChangeCName")
         controller.show_frame(Keyboard)
     #back button
     Back = tk.Button(self,text="<<Back",relief="raised",padx=4,pady=4,bd=4,
             height=2,width=10,command = lambda: go_Page())
     Back.grid(row=0,column=0)
     def go_Page():
         XL.setLastPage("ChangeCname")
         controller.show_frame(EditPage)
 def Refresh():
     hours.set(XL.getH())
     hoursB.configure(text=hours)
     minutes.set(XL.getM())
     minutesB.configure(text=minutes)
 def Save():
     if(XL.getPage() == "ChangeTimeM"):
         XL.setLastPage("Number_Pad")
         new_MT = inputbox.get()
         XL.changeM(new_MT)
         inputbox.delete(0,END)
         controller.show_frame(ChangeTime)
     elif(XL.getPage() == "ChangeTimeH"):
         XL.setLastPage("Number_Pad")
         new_HT = inputbox.get()
         XL.changeH(new_HT)
         inputbox.delete(0,END)
         controller.show_frame(ChangeTime)
     elif(XL.getPage() == "EditClasses"):
         cname = XL.getLclass()
         lectures = inputbox.get()
         XL.createClass(cname,lectures)
         inputbox.delete(0,END)
         controller.show_frame(EditClasses)
     elif(XL.getPage() == "ChangeTardy"):
         newTTime = inputbox.get()
         XL.setTTime(newTTime)
         inputbox.delete(0,END)
         controller.show_frame(ChangeTardy)
     elif(XL.getPage() == "EditPage"):
         newP = inputbox.get()
         XL.setP(newP)
         inputbox.delete(0,END)
         controller.show_frame(EditPage)
     elif(XL.getPage() == "EditPageL"):
         lecture = inputbox.get()
         XL.setLectDay(int(lecture))
         inputbox.delete(0,END)
         controller.show_frame(EditPage)
 def go_Page():
     XL.setLastPage("EditClasses")
     controller.show_frame(EditPage)
 def go_Page():
     XL.setLastPage("Scan Student")
     controller.show_frame(EditStudents)
 def change():
     XL.setLastPage("ChangeTardy")
     controller.show_frame(Number_Pad)
 def Add():
     XL.setLastPage("EditClasses")
     controller.show_frame(Keyboard)
 def Refresh():
     array = XL.getClasses()
     listbox.delete(0,END)
     for item in array:
         listbox.insert(END,item)
         listbox.insert(END," ")
 def save():
     if(XL.getPage() == "ChangeCName"):
         XL.setLastPage("Keyboard")
         new_name = inputbox.get()
         XL.changeCName(new_name,XL.getClass())
         inputbox.delete(0,END)
         controller.show_frame(ChangeCName)
     elif(XL.getPage() == "EditStudents"):
         XL.setLastPage("Keyboard")
         XL.setLstudent(inputbox.get())
         inputbox.delete(0,END)
         controller.show_frame(ScanStudent)
     elif(XL.getPage() == "EditClasses"):
         XL.setLclass(inputbox.get())
         inputbox.delete(0,END)
         controller.show_frame(Number_Pad)
     elif(XL.getPage() == "EditPage"):
         XL.setEmail(inputbox.get())
         inputbox.delete(0,END)
         controller.show_frame(EditPage)
 def go_Page():
     XL.setLastPage("EditStudents")
     controller.show_frame(EditPage)
 def Refresh():
     clas.set(XL.getClass())
     label2.configure(text=clas)
 def go_NPadM():
     XL.setLastPage("ChangeTimeM")
     controller.show_frame(Number_Pad)
 def Delete():
     selection = listbox.selection_get()
     XL.delStudent(selection)
     Refresh()
 def go_Page():
     XL.setLastPage("ChangeTime")
     controller.show_frame(EditPage)
 def go_Keyboard():
     XL.setLastPage("ChangeCName")
     controller.show_frame(Keyboard)
 def Selected():
     selection = listbox.selection_get()
     XL.setClass(selection)
 def Refresh():
     v.set(XL.getClass())
     label.configure(text=v)
 def Delete():
     selection = listbox.selection_get()
     XL.delClass(selection)
     Refresh()
 def Add():
     XL.setLastPage("EditStudents")
     controller.show_frame(Keyboard)
 def Refresh():
     Ttime.set(XL.getTTime())
     tardy.configure(text=Ttime)