Advertisement
Guest User

Untitled

a guest
May 22nd, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.31 KB | None | 0 0
  1. from tkinter import *
  2. import mysql.connector
  3.  
  4.  
  5. class ConnectAndCommit:
  6. def __init__(self, query):
  7. self.query = query
  8. self.connection = None # The reason for this is to get rid of an annoying PEP8 warning
  9. self.cursor = None # The reason for this is to get rid of an annoying PEP8 warning
  10.  
  11. def est_connection(self):
  12. self.connection = mysql.connector.connect(
  13. user='helgiste_test',
  14. password='ab123',
  15. host='108.167.160.53',
  16. database='helgiste_boxes'
  17. )
  18.  
  19. def execute_n_commit(self):
  20. self.cursor = self.connection.cursor(buffered=True)
  21. result = self.cursor.execute(self.query)
  22. self.connection.commit()
  23. return result
  24.  
  25. def close_connection(self):
  26. self.cursor.close()
  27. self.connection.close()
  28.  
  29.  
  30. class Data:
  31. def __init__(self, bwindow):
  32. self.bWindow = bwindow
  33. self.errText = None
  34.  
  35. def get_box_data(self, box_nr, do_with_box, desc):
  36. query = ("INSERT INTO boxes"
  37. "(BoxNr, DoWithBox, Description) "
  38. "VALUES ('" + box_nr + "', '" + do_with_box + "', '" + desc + "')")
  39. cac = ConnectAndCommit(query)
  40. cac.est_connection()
  41. try:
  42. cac.execute_n_commit()
  43. cac.close_connection()
  44. return "success"
  45. except mysql.connector.Error as err:
  46. print("Something went wrong: {}".format(err))
  47.  
  48. if err.errno == 1062:
  49. self.errText = "BoxNr tekið"
  50. else:
  51. self.errText = err
  52.  
  53. self.errLabel()
  54. cac.close_connection()
  55. return "error"
  56.  
  57. def return_data(self):
  58. query = ("SELECT * FROM boxes")
  59. cac = ConnectAndCommit(query)
  60. cac.est_connection()
  61. cac.execute_n_commit()
  62. BNs = []
  63. DWB = []
  64. Desc = []
  65. label = {}
  66. for (BoxNr, DoWithBox, Description) in cac.cursor:
  67. BNs.append(BoxNr)
  68. DWB.append(DoWithBox)
  69. Desc.append(Description)
  70. col = 0
  71.  
  72. if len(BNs) == 0:
  73. empty = Label(self.bWindow, text="[Engin box fundin]")
  74. empty.grid(row=6, column=1)
  75.  
  76. label1 = Label(self.bWindow, text="[BoxNr]")
  77. label2 = Label(self.bWindow, text="[Gera við box]")
  78. label3 = Label(self.bWindow, text="[Lýsing]")
  79. label1.grid(row=5, column=0)
  80. label2.grid(row=5, column=1)
  81. label3.grid(row=5, column=2)
  82.  
  83. for list in [BNs, DWB, Desc]:
  84. cnt = 6
  85. for id in list:
  86. lb = Label(self.bWindow, text=id)
  87. lb.grid(row=cnt, column=col)
  88. label[id] = lb
  89. cnt += 1
  90. col += 1
  91.  
  92. cac.close_connection()
  93.  
  94. def errLabel(self, errText=None):
  95. if errText == None:
  96. errLabel = Label(self.bWindow, text=self.errText)
  97. else:
  98. errLabel = Label(self.bWindow, text=errText)
  99. errLabel.grid(row=3, column=1)
  100.  
  101. def succLabel(self):
  102. succLabel = Label(self.bWindow, text="Tókst")
  103. succLabel.grid(row=3, column=1)
  104.  
  105.  
  106. class Myclass:
  107. def __init__(self, master, entry1, entry2, entry3):
  108. frame = Frame(master)
  109. self.frame = frame
  110. self.master = master
  111. frame.grid()
  112. self.entry1 = entry1
  113. self.entry2 = entry2
  114. self.entry3 = entry3
  115.  
  116. self.submitButton = Button(frame, text="Senda", command=self.submit)
  117. self.submitButton.grid(row=3)
  118.  
  119. self.tableButton = Button(frame, text="Tafla", command=self.table)
  120. self.tableButton.grid(row=3, column=1)
  121.  
  122. def refresh(self, succ):
  123. self.master.destroy()
  124. create(succ)
  125.  
  126. def submit(self):
  127. boxNr = self.entry1.get()
  128. doWithBox = self.entry2.get()
  129. desc = self.entry3.get("1.0", "end-1c")
  130. if boxNr == "":
  131. Data(self.master).errLabel(errText="BoxNr Tómt")
  132. elif desc == "":
  133. Data(self.master).errLabel(errText="Lýsing Tóm")
  134. else:
  135. data = Data(self.master)
  136. e = data.get_box_data(boxNr, doWithBox, desc)
  137. if e == "success":
  138. self.refresh(succ=True)
  139. elif e != "error":
  140. self.refresh(succ=False)
  141.  
  142. def table(self):
  143. data = Data(self.master)
  144. data.return_data()
  145.  
  146. def create(succ=False):
  147. bWindow = Tk() # Makes a blank window
  148. bWindow.title("Box manager")
  149.  
  150. boxLabel = Label(bWindow, text="BoxNr(Max 4)")
  151. dwbLabel = Label(bWindow, text="Gera við kassa")
  152. descLabel = Label(bWindow, text="Lýsing")
  153. boxEntry = Entry(bWindow, width=20) # Input Field
  154. dwbEntry = Entry(bWindow, width=20)
  155. descEntry = Text(bWindow, height=5, width=20)
  156.  
  157. if succ == True:
  158. Data(bWindow).succLabel()
  159.  
  160. boxLabel.grid(row=0, sticky=E) # Sticky controls the alignment (North, East, South, West)
  161. dwbLabel.grid(row=1, sticky=E)
  162. descLabel.grid(row=2, sticky=E)
  163.  
  164. boxEntry.grid(row=0, column=1)
  165. dwbEntry.grid(row=1, column=1)
  166. descEntry.grid(row=2, column=1)
  167.  
  168. Myclass(bWindow, boxEntry, dwbEntry, descEntry)
  169.  
  170. bWindow.mainloop() # Makes sure the window doesn't close instantly
  171.  
  172.  
  173. create()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement