Advertisement
EyeceScream

page 2

Sep 10th, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.46 KB | None | 0 0
  1. #WORK IN PROGRESS
  2. #
  3. #
  4. #
  5. #Imports
  6. import tkinter
  7. from tkinter import filedialog
  8. from tkinter import *
  9. import json
  10.  
  11.  
  12. window = tkinter.Tk()
  13. window.title("Employee Time Sheet")
  14. window.geometry("1400x820")
  15. window.wm_iconbitmap('application.ico')
  16. window.configure(background='#fcf9f0')
  17.  
  18.  
  19. #Labels
  20. title_lbl = tkinter.Label(window, text='Pre-Job Saftey Assessment',font=(None,16),height=3,background='#fcf9f0')
  21. title_lbl.grid(row=0, columnspan=5)
  22.  
  23. date_lbl = tkinter.Label(window, text = 'Date:', height=3,font=("None","12","bold"),background= '#fcf9f0')
  24. date_lbl.grid(row=1,column=5,padx=1, sticky=E)
  25.  
  26. title_lbl = tkinter.Label(window,relief=SUNKEN, text='The appropiate sections of this assessment MUST be completed PRIOR to beginning work.',font="Helvetica 11 bold",height=2,background='#fcf9f0')
  27. title_lbl.grid(row=2, columnspan=7)
  28.  
  29. companyLbl = tkinter.Label(window, text = 'Customer:',background='#fcf9f0', relief=RAISED, font = "Helvetica 11")
  30. companyLbl.grid(row=3, column=0,padx=1, ipadx=55, sticky=E)
  31.  
  32. loc_lbl = tkinter.Label(window, text = 'Location:',background='#fcf9f0',relief=RAISED, font = "Helvetica 11")
  33. loc_lbl.grid(row=4, column=0,padx=1,ipadx=60, sticky=E)
  34.  
  35. dow_lbl = tkinter.Label(window, text = 'Description of Work:', background= '#fcf9f0',relief=RAISED, font = "Helvetica 11")
  36. dow_lbl.grid(row=5, column=0,padx=1,ipadx=23, sticky=E)
  37.  
  38.  
  39. wr_lbl = tkinter.Label(window, text = 'Work Restrictions:',background='#fcf9f0',relief=RAISED, font = "Helvetica 11")
  40. wr_lbl.grid(row=6, column=0,padx=1,ipadx=29, sticky=E)
  41.  
  42. fsn_lbl = tkinter.Label(window, text = 'Foreman/Supervisor Name:',background='#fcf9f0',relief=RAISED, font = "Helvetica 11")
  43. fsn_lbl.grid(row=7, column=0,padx=1, sticky=E)
  44.  
  45. noti_lbl = tkinter.Label(window, text = 'Notification',background='#fcf9f0',relief=SUNKEN,width=71, font = "Helvetica 11 bold")
  46. noti_lbl.grid(row=8, columnspan=7)
  47.  
  48. fsr_lbl= tkinter.Label(window, text = 'FSR#:',background='#fcf9f0',relief=RAISED, font = "Helvetica 11")
  49. fsr_lbl.grid(row=3, column=5,padx=1,ipadx=34)
  50.  
  51. att_lbl= tkinter.Label(window, text = 'Attendees',background='#fcf9f0',relief=RAISED, font = "Helvetica 11")
  52. att_lbl.grid(row=4, column=5,padx=1,ipadx=22)
  53.  
  54. haz_lbl = tkinter.Label(window, text = 'Hazard Exposure Assessment',background='#fcf9f0',relief=SUNKEN,width=71, font = "Helvetica 11 bold")
  55. haz_lbl.grid(row=11, columnspan=7)
  56.  
  57. haz2_lbl = tkinter.Label(window, text = 'Rate the following potential Hazards as:   0 = None 1 = Low   2 = Medium   3 = High',background='#fcf9f0',relief=SUNKEN,width=71, font = "Helvetica 11")
  58. haz2_lbl.grid(row=12, columnspan=7)
  59.  
  60. #Check Boxes
  61. noti2_var = IntVar()
  62. noti3_var = IntVar()
  63. noti4_var = IntVar()
  64. noti5_var = IntVar()
  65.  
  66.  
  67. noti2_c = Checkbutton(window, text="The effects of this job are on/by neighboring equipment and public considered",font="Helvetica 11",background="#fcf9f0",variable= noti2_var)
  68. noti2_c.grid(row=9,columnspan=7)
  69.  
  70. noti3_c = Checkbutton(window, text = 'Pre-Job Saftey Meeting held with ALL crew members',background='#fcf9f0', font = "Helvetica 11", variable= noti3_var)
  71. noti3_c.grid(row=10, columnspan=2,sticky =W)
  72.  
  73. noti4_c = Checkbutton(window, text = 'Job Procedure Review',background='#fcf9f0', font = "Helvetica 11", variable= noti4_var)
  74. noti4_c.grid(row=10,column=4,columnspan=2,sticky =E)
  75.  
  76. noti5_c = Checkbutton(window, text = 'Responsibility Review',background='#fcf9f0', font = "Helvetica 11", variable= noti5_var)
  77. noti5_c.grid(row=10, column=6,sticky =W)
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89. #Title Entries
  90. date_ent= tkinter.Entry(font = "Helvetica 11")
  91. date_ent.grid(row=1,column=6,padx=1,pady=2)
  92.  
  93. #Body Entries
  94. company_ent= tkinter.Entry(font = "Helvetica 11")
  95. company_ent.grid(row=3,column=1,columnspan=4,pady=2, sticky=W)
  96.  
  97. loc_ent= tkinter.Entry(font = "Helvetica 11")
  98. loc_ent.grid(row=4,column=1,columnspan=4,pady=2, sticky=W)
  99.  
  100. dow_ent= tkinter.Entry(font = "Helvetica 11")
  101. dow_ent.grid(row=5,column=1,columnspan=4,pady=2, sticky=W)
  102.  
  103. wr_ent= tkinter.Entry(font = "Helvetica 11")
  104. wr_ent.grid(row=6,column=1,columnspan=4,pady=2, sticky=W)
  105.  
  106. fsn_ent= tkinter.Entry(font = "Helvetica 11")
  107. fsn_ent.grid(row=7,column=1,columnspan=4,pady=2, sticky=W)
  108.  
  109. fsr_ent=  tkinter.Entry(font = "Helvetica 11")
  110. fsr_ent.grid(row=3,column=6,pady=2, sticky=W)
  111.  
  112. att_ent=  tkinter.Entry(font = "Helvetica 11")
  113. att_ent.grid(row=4,column=6,pady=2, sticky=W)
  114.  
  115. haz_ent= tkinter.Entry(font = "Helvetica 11")
  116. haz_ent.grid(row=13,column=0,pady=2, sticky=W)
  117. haz_ent.configure(width=2)
  118.  
  119. #Needs Work
  120. #
  121. #
  122. class fileManagement:
  123.  
  124.     def save():
  125.        
  126.         saved_file = filedialog.asksaveasfilename(initialdir = "C:/" , title = "Save file", filetypes = (("JSON File", "*.json"),("All Files","*.*")))
  127.         if saved_file is None:
  128.             return
  129.         json_data = { key: value.get() for key, value in data['data'].items()}
  130.         json_data['name'] = ent_name.get()
  131.         with open(f'{saved_file}.json', 'w+') as file:
  132.             json.dump(json_data, file, indent=4)
  133.        
  134.     def load():
  135.        
  136.         selected_file = filedialog.askopenfilename(initialdir = "C:/" , title = "Select file", filetypes = (("JSON File", "*.json"),("All Files","*.*")))
  137.  
  138.         with open(f'{selected_file}', 'r') as file:
  139.             json_data = json.load(file)
  140.  
  141.         for name in data['data']:
  142.             text= json_data[name]
  143.             ent= data['data'][name]
  144.             ent.delete(0,'end')
  145.             ent.insert(0, text)
  146.             ent_name.delete(0, 'end')
  147.             ent_name.insert(0, json_data['name'])
  148.  
  149.  
  150.     def clear():
  151.        
  152.         clear_win = Toplevel()
  153.         clear_win.geometry("320x150")
  154.         clear_win.title("Clear All")
  155.         clear_win.configure(background='#fcf9f0')
  156.         clear_win.wm_iconbitmap('action_delete.ico')
  157.         clear_win_label = Label(clear_win,text= "Are you sure you want to clear all data?",background='#fcf9f0',font = "Helvetica 11")
  158.         clear_win_label.grid(row=0,column = 1, sticky=NSEW)
  159.        
  160.        
  161.         def Yes():
  162.             for name in data['data']:
  163.                 ent= data['data'][name]
  164.                 ent_name.delete(0, 'end')
  165.                 ent.delete(0,'end')
  166.             clear_win.destroy()
  167.        
  168.         def No():
  169.             clear_win.destroy()
  170.  
  171.         Yes_B= Button(clear_win, text = "Yes", command= Yes)
  172.         Yes_B.grid(row=1,column=1,sticky=W)
  173.  
  174.         No_B= Button(clear_win, text = "No", command= No)
  175.         No_B.grid(row=1,column=1,sticky=E)
  176. #
  177. #
  178. #
  179.  
  180.  
  181. #Buttons
  182.  
  183. load_B = Button(window, text = "Load", command = fileManagement.load)
  184. load_B.grid(row=0,column=6, sticky=NE)
  185.  
  186. save_B = Button(window, text = "Save", command = fileManagement.save)
  187. save_B.grid(row=0,column=6, sticky=NW)
  188.  
  189. clear_B = Button(window, text = "Clear All", command = fileManagement.clear)
  190. clear_B.grid(row=0,column=6,sticky=N)
  191.  
  192. window.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement