def deleteGroceryList(self): db = homehubdb.Db_manager() db.cursor.execute("DELETE FROM groceryList WHERE userID=%s", (self.userID)) db.hubdb.commit() db.disconnect() self.populateGroceryList()
def deleteBill(self, IDToDel): db = homehubdb.Db_manager() db.cursor.execute("DELETE FROM bills WHERE id=%s AND userID=%s", (IDToDel, self.userID)) db.hubdb.commit() db.disconnect() self.populateBillList()
def populateBillList(self): for element in self.listFrame.winfo_children(): element.destroy() db = homehubdb.Db_manager() db.cursor.execute( "SELECT id, name, description, totalDue, dueDate FROM bills WHERE userID=%s", (self.userID)) cntr = 0 for val in db.cursor.fetchall(): dbBillName = StringVar() dbBillName.set(val[1] + '\n' + str(val[3])) billLabel = Label(self.listFrame, textvariable=dbBillName) billLabel.grid(row=cntr, column=0) billLabel.config(font=("Times", 12, "bold")) cntr += 1 dbBillDate = StringVar() dbBillDate.set(val[4]) billDateLabel = Label(self.listFrame, textvariable=dbBillDate) billDateLabel.grid(row=cntr, column=0) billDateLabel.config(font=("Times", 10, "italic")) cntr += 1 dbBillDesc = StringVar() dbBillDesc.set(val[2]) billDescLabel = Label(self.listFrame, textvariable=dbBillDesc) billDescLabel.grid(row=cntr, column=0) billDescLabel.config(font=("Times", 10, "italic")) deleteBillButton = Button( self.listFrame, text="Delete", command=lambda IDToDel=val[0]: self.deleteBill(IDToDel)) deleteBillButton.grid(row=cntr - 2, column=1) cntr += 1 db.disconnect()
def deleteGroceryItem(self, itemToDel): db = homehubdb.Db_manager() db.cursor.execute( "DELETE FROM groceryList WHERE item=%s AND userID=%s", (itemToDel, self.userID)) db.hubdb.commit() db.disconnect() self.populateGroceryList()
def addGroceryItem(self): db = homehubdb.Db_manager() db.cursor.execute( "INSERT INTO groceryList(userID,item) VALUES(%s, %s)", (self.userID, self.entry_1.get())) db.hubdb.commit() db.disconnect() self.entry_1.delete(0, 'end') self.populateGroceryList()
def smsBillList(self, listOfBills, listOfSubs): global em emailList = [] db = homehubdb.Db_manager() # db.cursor.execute("SELECT item FROM groceryList WHERE userID=%s", (self.userID)) # for val in db.cursor.fetchall(): # emailList.append(val[0]) # emailRecip = str() # db.cursor.execute("SELECT email FROM users WHERE id=%s", (self.userID)) # for val in db.cursor.fetchall(): # emailRecip = val[0] # em.setMsg(emailList) # em.sendMsg(emailRecip) db.disconnect()
def addBill(self): db = homehubdb.Db_manager() db.cursor.execute( "INSERT INTO bills(name,description,totalDue,userID,dueDate) VALUES(%s, %s, %s, %s, %s)", (self.entry_1.get(), self.entry_2.get(), self.entry_3.get(), self.userID, datetime.date(2019, self.entry_4.month, int(self.entry_4.dayDDDefMsg.get())))) db.hubdb.commit() db.disconnect() self.entry_1.delete(0, 'end') self.entry_2.delete(0, 'end') self.entry_3.delete(0, 'end') self.populateBillList()
def emailList(self): global em groceryString = str() db = homehubdb.Db_manager() db.cursor.execute("SELECT item FROM groceryList WHERE userID=%s", (self.userID)) for val in db.cursor.fetchall(): groceryString += '\n' + val[0] emailRecip = str() db.cursor.execute("SELECT email FROM users WHERE id=%s", (self.userID)) for val in db.cursor.fetchall(): emailRecip = val[0] em.setMsg(groceryString) em.sendMsg(emailRecip) db.disconnect()
def addNote(self): db = homehubdb.Db_manager() db.cursor.execute( "INSERT INTO notes(message,name,dateCreated) VALUES(%s, %s, NOW())", (self.notesEntry.get(), self.username)) db.cursor.execute("SET @note_id=LAST_INSERT_ID()") db.cursor.execute("SELECT id FROM users") for val in db.cursor.fetchall(): db.cursor.execute( "INSERT INTO userNotes(userID, noteID) VALUES(%s, @note_id)", (val[0])) db.hubdb.commit() self.notesEntry.delete(0, 'end') db.disconnect() self.notesPopup.destroy() self.populateNotes()
def __init__(self): global root root.title("Login") self.holiday = True self.usernameFrame = Frame(root) self.passwFrame = Frame(root) self.keypadFrame = Frame(root) self.attemptedPassword = str() self.shownAttemptedPassw_var = StringVar() self.usernameSelected = str() self.usernameFrame.pack(side=TOP) self.keypadFrame.pack(side=BOTTOM) self.passwFrame.pack(side=BOTTOM) greeting1 = Label(self.usernameFrame, text="HOME HUB 6270") greeting1.config(font=("Times", 32, "bold")) greeting1.grid() greeting2 = Label(self.usernameFrame, text="Please Login...") greeting2.config(font=("Times", 16, "italic")) greeting2.grid() db = homehubdb.Db_manager() db.cursor.execute("SELECT name, id FROM users") loginUserCounter = 2 for val in db.cursor.fetchall(): dbUsername = StringVar() dbUsername.set(val[0]) userButton = Button(self.usernameFrame, textvariable=dbUsername, command=lambda dbUsername=dbUsername: self. userSelect(dbUsername)) userButton.config(width=16) userButton.grid(row=loginUserCounter, column=0) # V cursor.execute returns an int of affected rows V unreadCheck = db.cursor.execute( "SELECT noteID, unread FROM userNotes WHERE userID=%s AND unread=1", (val[1])) if (unreadCheck > 0): unreadMessages = Label(self.usernameFrame, text="!") unreadMessages.config(width=16, font=("Helvetica", 16, "bold")) unreadMessages.grid(row=loginUserCounter, column=1) loginUserCounter = loginUserCounter + 1 db.disconnect() shownAttemptedPassw = Label(self.passwFrame, textvariable=self.shownAttemptedPassw_var) self.shownAttemptedPassw_var.set(self.attemptedPassword) shownAttemptedPassw.grid() if (self.holiday): self.holidayMode()
def __init__(self, username): global root self.homeRoot = Frame(root) self.homeRoot.pack(side=TOP) self.menuFrame = Frame(root) self.menuFrame.pack(side=TOP) self.notesFrame = Frame(root) self.notesFrame.pack(side=BOTTOM) root.title("Home") self.username = username self.populateUI() db = homehubdb.Db_manager() db.cursor.execute("SELECT id FROM users WHERE name=%s", (self.username)) dbReturn = db.cursor.fetchall() for val in dbReturn: self.userID = val[0] db.disconnect() self.populateNotes()
def emailBillList(self): global em db = homehubdb.Db_manager() db.cursor.execute("SELECT email FROM users") dbReturn1 = db.cursor.fetchall() for val in dbReturn1: db.cursor.execute( "SELECT name, description, totalDue, dueDate FROM bills WHERE userID=%s", (self.userID)) dbReturn2 = db.cursor.fetchall() strToEmail = "" for innerVal in dbReturn2: strToEmail += strToEmail + "\n" + str(innerVal[0]) + " " + str( innerVal[1]) + " " + str(innerVal[2]) + " " + str( innerVal[3]) em.setMsg(strToEmail) em.sendMsg(val[0]) print("Sending email to {}.".format(val[0])) #print("Val0:{} \n Val1:{} \n Val2:{} \n Val3:{} \n Val4:{}".format(val[0], val[1], val[2], val[3], val[4])); db.disconnect()
def updateInfo(self): db = homehubdb.Db_manager() if len(self.passEntry.get()) != 0: executeStmt = int(str(self.passEntry.get())) db.cursor.execute("UPDATE users SET password=%s WHERE name=%s", (executeStmt, self.username)) if len(self.emailEntry.get()) != 0: executeStmt = str(self.emailEntry.get()) db.cursor.execute("UPDATE users SET email=%s WHERE name=%s", (executeStmt, self.username)) if len(self.phoneEntry.get()) != 0: executeStmt = str(self.phoneEntry.get()) db.cursor.execute("UPDATE users SET phone=%s WHERE name=%s", (executeStmt, self.username)) db.hubdb.commit() db.disconnect() self.passEntry.delete(0, 'end') self.emailEntry.delete(0, 'end') self.phoneEntry.delete(0, 'end') self.infoPopup.destroy() self.populateAccountInfo()
def populateAccountInfo(self): for element in self.accountInfoFrame.winfo_children(): element.destroy() db = homehubdb.Db_manager() db.cursor.execute("SELECT * FROM users WHERE name=%s", (self.username)) for val in db.cursor.fetchall(): session_id = val[0] #INT session_name = val[1] #str session_password = val[2] #INT session_email = val[3] #str session_phone = val[4] #str db.disconnect() packedSettingsStr = "Your Account Number: " + str(session_id) + '\n' + \ "Your Preferred Name: " + session_name + '\n' + \ "Your Primary Email: " + session_email + '\n' + \ "Your Primary Cellphone: " + session_phone packedSettingsStrVar = StringVar() packedSettingsStrVar.set(packedSettingsStr) accountSettingsInfoLabel = Label(self.accountInfoFrame, textvariable=packedSettingsStrVar) accountSettingsInfoLabel.grid() self.populateUI()
def populateGroceryList(self): for element in self.listFrame.winfo_children(): element.destroy() db = homehubdb.Db_manager() db.cursor.execute("SELECT item FROM groceryList WHERE userID=%s", (self.userID)) cntr = 0 colCntr = 0 for val in db.cursor.fetchall(): dbGroceryItem = StringVar() dbGroceryItem.set(val[0]) groceryItem = Label(self.listFrame, textvariable=dbGroceryItem) deleteItemButton = Button(self.listFrame, text="Delete", command=lambda itemToDel=dbGroceryItem. get(): self.deleteGroceryItem(itemToDel)) if (cntr > 9): cntr = 0 colCntr = colCntr + 2 groceryItem.grid(row=cntr, column=colCntr) deleteItemButton.grid(row=cntr, column=colCntr + 1) cntr = cntr + 1 db.disconnect()
def __init__(self, username): global root root.title("Bill Manager") self.billRoot = Frame(root) self.listFrame = Frame(root) self.entryFrame = Frame(root) self.billRoot.pack(side=TOP) self.listFrame.pack() self.entryFrame.pack() self.username = username db = homehubdb.Db_manager() db.cursor.execute("SELECT id FROM users WHERE name=%s", (self.username)) dbReturn = db.cursor.fetchall() for val in dbReturn: self.userID = val[0] db.disconnect() greeting = Label(self.billRoot, text="{}'s Bill Manager".format(self.username)) greeting.config(font=("Times", 16, "bold")) greeting.grid() self.populateBillList() self.populateUI()
def userAuthentication(self, numToAppend): global root global mainApp if len(self.attemptedPassword) < 3: self.attemptedPassword += numToAppend self.shownAttemptedPassw_var.set(self.attemptedPassword) elif len(self.attemptedPassword) < 4: self.attemptedPassword += numToAppend self.shownAttemptedPassw_var.set(self.attemptedPassword) db = homehubdb.Db_manager() db.cursor.execute("SELECT password FROM users WHERE name=%s", (self.usernameSelected)) dbReturn = db.cursor.fetchall() for val in dbReturn: passW = val[0] db.disconnect() if passW == int(self.attemptedPassword): for element in root.winfo_children(): element.destroy() mainApp = FR_home(self.usernameSelected) else: self.shownAttemptedPassw_var.set("Wrong... Try Again") self.attemptedPassword = str()
def populateNotes(self): for element in self.notesFrame.winfo_children(): element.destroy() db = homehubdb.Db_manager() db.cursor.execute( "SELECT id FROM notes WHERE dateCreated BETWEEN NOW() - INTERVAL 14 DAY AND NOW() - INTERVAL 7 DAY" ) for val in db.cursor.fetchall(): db.cursor.execute("DELETE FROM userNotes WHERE noteID=%s", (val[0])) db.cursor.execute("DELETE FROM notes WHERE id=%s", (val[0])) db.hubdb.commit() noteTitleLabel = Label(self.notesFrame, text="A note for you...") noteTitleLabel.config(font=("Times", 16, "italic")) noteTitleLabel.grid() db.cursor.execute( "SELECT name, message, dateCreated, id FROM notes WHERE dateCreated BETWEEN NOW() - INTERVAL 7 DAY AND NOW()" ) for val in db.cursor.fetchall(): notedb = StringVar() notedb.set(val[1]) messageAuthor = StringVar() messageAuthor.set(val[0]) dateOfNote = StringVar() dateOfNote.set(val[2]) noteLabel = Label(self.notesFrame, textvariable=notedb) noteLabel.grid(column=0) authorLabel = Label(self.notesFrame, textvariable=messageAuthor) authorLabel.grid(column=1) dateLabel = Label(self.notesFrame, textvariable=dateOfNote) dateLabel.grid(column=1) db.cursor.execute( "UPDATE userNotes SET unread=0 WHERE userID=%s AND noteID=%s", (self.userID, val[3])) db.hubdb.commit() db.disconnect()
import tkinter from tkinter import * from tkinter import messagebox import homehubdb import hh_email db = homehubdb.Db_manager() mailer = hh_email.EmailManager() root = tkinter.Tk() root.geometry("512x512") def emailGroceryList(): mailer.setMsg(groceryList) mailer.sendMsg("*****@*****.**") #TODO: make based on user logged in, not hard coded def grabAndShowList(): db.cursor.execute("SELECT item FROM GroceryList WHERE id = 0") #TODO: make id not hard-coded, but based on user logged in groceryList = [] for val in db.cursor.fetchall(): fetchedStr = StringVar() fetchedStr.set(val) groceryItem = fetchedStr.get() groceryList.append(groceryItem) for item in groceryList: print(item + "\n") groceryHeader = StringVar() groceryHeaderLabel = Label(root, textvariable = groceryHeader) groceryHeader.set("Here is your grocery list: \n") groceryHeaderLabel.pack()