ComputerKeeper/main.py

80 lines
2.4 KiB
Python
Raw Normal View History

2022-08-19 02:17:43 +00:00
"""This is the main function"""
2022-08-26 02:27:35 +00:00
from copy import deepcopy
2022-08-19 02:17:43 +00:00
import PySimpleGUI as sg
2022-08-26 02:27:35 +00:00
from tinydb import TinyDB, Query
2022-08-19 02:17:43 +00:00
# Define the window's contents
2022-09-07 01:02:03 +00:00
colum_lut = ["Serial Number","Brand","Grade","Name"],
layout = [[sg.Menu([['File', ['Open', 'Save', 'Add Computer',]]])]
[sg.Table([["word","Yes"]],colum_lut,key = "table")],
2022-08-26 01:10:43 +00:00
[sg.Text("Serial Number")],
2022-08-26 02:27:35 +00:00
[sg.Input(key='Serial Number')],
2022-08-26 01:10:43 +00:00
[sg.Text("Brand")],
2022-08-26 02:27:35 +00:00
[sg.Input(key='Brand')],
2022-08-26 01:10:43 +00:00
[sg.Text("Grade")],
2022-08-26 02:27:35 +00:00
[sg.Input(key='Grade')],
2022-08-26 01:10:43 +00:00
[sg.Text("Name")],
2022-08-26 02:27:35 +00:00
[sg.Input(key='Name')],
[sg.Text(size=(40,1), key='OUTPUT')],
2022-08-26 01:10:43 +00:00
[sg.Button('Check In'), sg.Button('Check Out')]]
2022-08-19 02:17:43 +00:00
2022-08-26 02:27:35 +00:00
add_computer_layout = [[sg.Text("Serial Number")],
2022-09-07 00:23:49 +00:00
[sg.Input(key='Serial Number')],
2022-08-26 02:27:35 +00:00
[sg.Text("Brand")],
[sg.Input(key='Brand')],
[sg.Text("Grade")],
[sg.Input(key='Grade')],
[sg.Text("Name")],
[sg.Input(key='Name')],
[sg.Button('Add Computer'),]]
2022-08-19 02:17:43 +00:00
2022-08-26 02:27:35 +00:00
def add_computer():
window = sg.Window('Add Computer', deepcopy(add_computer_layout))
while True:
event, values = window.read()
if event == sg.WINDOW_CLOSED or event == 'Add Computer':
break
# Finish up by removing from the screen
window.close()
return values
2022-08-19 02:17:43 +00:00
def main():
"""Core of ComputerKeeper - The Main Application."""
2022-08-26 02:27:35 +00:00
db= TinyDB("./db.json")
2022-09-07 01:02:03 +00:00
Computer = []
for item in db.all():
print(item)
The_Device = []
for colum in colum_lut:
The_Device.append(item[colum])
Computer.append(The_Device)
2022-08-19 02:17:43 +00:00
# Create the window
2022-09-07 01:02:03 +00:00
window = sg.Window('Window Title', layout, finalize=True)
window["table"].update(Computer)
2022-08-19 02:17:43 +00:00
# Display and interact with the Window using an Event Loop
while True:
event, values = window.read()
# See if user wants to quit or window was closed
if event == sg.WINDOW_CLOSED or event == 'Quit':
break
2022-08-26 02:27:35 +00:00
if event == 'Add Computer':
new_computer = add_computer()
existing_table = window["table"].get()
2022-09-05 01:57:27 +00:00
existing_table.append( list(new_computer.values()))
2022-08-26 02:27:35 +00:00
window["table"].update(existing_table)
2022-09-05 01:57:27 +00:00
db.insert(new_computer)
2022-08-19 02:17:43 +00:00
# Finish up by removing from the screen
window.close()
if __name__ == "__main__":
main()