|
@@ -1,173 +1,39 @@
|
|
|
from tkinter import *
|
|
from tkinter import *
|
|
|
from linked_data import Chain, format_dict
|
|
from linked_data import Chain, format_dict
|
|
|
import pprint
|
|
import pprint
|
|
|
|
|
+from gui.gui_helpers import add_contract
|
|
|
|
|
|
|
|
-chain = Chain()
|
|
|
|
|
-chain.populate()
|
|
|
|
|
|
|
+from lib.transaction import Transaction
|
|
|
|
|
+from lib.contract import Contract
|
|
|
|
|
+
|
|
|
|
|
+# chain = Chain()
|
|
|
|
|
+# chain.populate()
|
|
|
|
|
|
|
|
root = Tk()
|
|
root = Tk()
|
|
|
root.title('dsp blockchain')
|
|
root.title('dsp blockchain')
|
|
|
|
|
|
|
|
-view = Entry(root, width=35, borderwidth=5)
|
|
|
|
|
-view.grid(row=0, column=1, columnspan=3, padx=10, pady=10)
|
|
|
|
|
-
|
|
|
|
|
-accept_id = Entry(root, width=35, borderwidth=5)
|
|
|
|
|
-accept_id.grid(row=4, column=1, columnspan=3, padx=10, pady=10)
|
|
|
|
|
-accept_id.insert(0, 'contract')
|
|
|
|
|
-
|
|
|
|
|
-accept_status = StringVar(root)
|
|
|
|
|
-accept_status.set('False') # default value
|
|
|
|
|
-OptionMenu(root, accept_status, 'False', 'True').grid(row=4, column=4)
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-def myClick():
|
|
|
|
|
- chain.current_contract_state(int(view.get()))
|
|
|
|
|
- pprint.pprint(chain.state)
|
|
|
|
|
-
|
|
|
|
|
-def add_contract():
|
|
|
|
|
-
|
|
|
|
|
- # add contract to the blockchain
|
|
|
|
|
- def add():
|
|
|
|
|
- chain.new_contract(client.get(), contractor.get(), deadline.get(), description.get(), name.get(), int(price.get()), people.get().split(','), initiator.get())
|
|
|
|
|
-
|
|
|
|
|
- # destroy add contract window, and print conformation
|
|
|
|
|
- newWindow.destroy()
|
|
|
|
|
- print('contract added')
|
|
|
|
|
-
|
|
|
|
|
- # make new window for adding the information for the contract
|
|
|
|
|
- newWindow = Toplevel(root)
|
|
|
|
|
- newWindow.title('Add contract')
|
|
|
|
|
-
|
|
|
|
|
- # create all text boxes
|
|
|
|
|
- Label(newWindow, text='The client: ').grid(row=0, column=0)
|
|
|
|
|
- client = Entry(newWindow, width=35, borderwidth=5)
|
|
|
|
|
- client.grid(row=0, column=1, columnspan=3, padx=10, pady=10)
|
|
|
|
|
-
|
|
|
|
|
- Label(newWindow, text='The contractor: ').grid(row=1, column=0)
|
|
|
|
|
- contractor = Entry(newWindow, width=35, borderwidth=5)
|
|
|
|
|
- contractor.grid(row=1, column=1, columnspan=3, padx=10, pady=10)
|
|
|
|
|
-
|
|
|
|
|
- Label(newWindow, text='Deadline: ').grid(row=2, column=0)
|
|
|
|
|
- deadline = Entry(newWindow, width=35, borderwidth=5)
|
|
|
|
|
- deadline.grid(row=2, column=1, columnspan=3, padx=10, pady=10)
|
|
|
|
|
-
|
|
|
|
|
- Label(newWindow, text='Description: ').grid(row=3, column=0)
|
|
|
|
|
- description = Entry(newWindow, width=35, borderwidth=5)
|
|
|
|
|
- description.grid(row=3, column=1, columnspan=3, padx=10, pady=10)
|
|
|
|
|
-
|
|
|
|
|
- Label(newWindow, text='Project name: ').grid(row=4, column=0)
|
|
|
|
|
- name = Entry(newWindow, width=35, borderwidth=5)
|
|
|
|
|
- name.grid(row=4, column=1, columnspan=3, padx=10, pady=10)
|
|
|
|
|
-
|
|
|
|
|
- Label(newWindow, text='Price: ').grid(row=5, column=0)
|
|
|
|
|
- price = Entry(newWindow, width=35, borderwidth=5)
|
|
|
|
|
- price.grid(row=5, column=1, columnspan=3, padx=10, pady=10)
|
|
|
|
|
-
|
|
|
|
|
- Label(newWindow, text='People involved: ').grid(row=6, column=0)
|
|
|
|
|
- people = Entry(newWindow, width=35, borderwidth=5)
|
|
|
|
|
- people.grid(row=6, column=1, columnspan=3, padx=10, pady=10)
|
|
|
|
|
-
|
|
|
|
|
- Label(newWindow, text='Initiator').grid(row=7, column=0)
|
|
|
|
|
- initiator = Entry(newWindow, width=35, borderwidth=5)
|
|
|
|
|
- initiator.grid(row=7, column=1, columnspan=3, padx=10, pady=10)
|
|
|
|
|
-
|
|
|
|
|
- # create the add contract button
|
|
|
|
|
- add_c = Button(newWindow, text = "Add contract", command=add)
|
|
|
|
|
- add_c.grid(row=8, column=0)
|
|
|
|
|
-
|
|
|
|
|
-def update():
|
|
|
|
|
-
|
|
|
|
|
- def up():
|
|
|
|
|
- chain.update_contract(int(iden.get()), term.get(), update_value.get(), name.get())
|
|
|
|
|
-
|
|
|
|
|
- newWindow.destroy()
|
|
|
|
|
- print('update pending approval')
|
|
|
|
|
|
|
+# view = Entry(root, width=35, borderwidth=5)
|
|
|
|
|
+# view.grid(row=0, column=1, columnspan=3, padx=10, pady=10)
|
|
|
|
|
|
|
|
- newWindow = Toplevel(root)
|
|
|
|
|
- newWindow.title('Update terms')
|
|
|
|
|
|
|
+# accept_id = Entry(root, width=35, borderwidth=5)
|
|
|
|
|
+# accept_id.grid(row=4, column=1, columnspan=3, padx=10, pady=10)
|
|
|
|
|
+# accept_id.insert(0, 'contract')
|
|
|
|
|
|
|
|
- Label(newWindow, text='Contract id: ').grid(row=0, column=0)
|
|
|
|
|
- iden = Entry(newWindow, width=35, borderwidth=5)
|
|
|
|
|
- iden.grid(row=0, column=1, columnspan=3, padx=10, pady=10)
|
|
|
|
|
|
|
+# accept_status = StringVar(root)
|
|
|
|
|
+# accept_status.set('False') # default value
|
|
|
|
|
+# OptionMenu(root, accept_status, 'False', 'True').grid(row=4, column=4)
|
|
|
|
|
|
|
|
- Label(newWindow, text='Term: ').grid(row=1, column=0)
|
|
|
|
|
- term = Entry(newWindow, width=35, borderwidth=5)
|
|
|
|
|
- term.grid(row=1, column=1, columnspan=3, padx=10, pady=10)
|
|
|
|
|
-
|
|
|
|
|
- Label(newWindow, text='New value: ').grid(row=2, column=0)
|
|
|
|
|
- update_value = Entry(newWindow, width=35, borderwidth=5)
|
|
|
|
|
- update_value.grid(row=2, column=1, columnspan=3, padx=10, pady=10)
|
|
|
|
|
-
|
|
|
|
|
- Label(newWindow, text='Name: ').grid(row=3, column=0)
|
|
|
|
|
- name = Entry(newWindow, width=35, borderwidth=5)
|
|
|
|
|
- name.grid(row=3, column=1, columnspan=3, padx=10, pady=10)
|
|
|
|
|
-
|
|
|
|
|
- Button(newWindow, text='Update', command=up).grid(row=4, column=0)
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-def accept_update():
|
|
|
|
|
- def accept_up():
|
|
|
|
|
- c = comment.get()
|
|
|
|
|
- ans = awnser.get()
|
|
|
|
|
- if ans == 'False':
|
|
|
|
|
- ans = False
|
|
|
|
|
- else: ans = True
|
|
|
|
|
-
|
|
|
|
|
- if c == '':
|
|
|
|
|
- chain.accept_update(int(iden.get()), int(update_id.get()), ans, name.get())
|
|
|
|
|
- else:
|
|
|
|
|
- chain.accept_update(int(iden.get()), int(update_id.get()), ans, name.get(), c)
|
|
|
|
|
-
|
|
|
|
|
- newWindow.destroy()
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- newWindow = Toplevel(root)
|
|
|
|
|
- newWindow.title('Update terms')
|
|
|
|
|
-
|
|
|
|
|
- Label(newWindow, text='Contract id: ').grid(row=0, column=0)
|
|
|
|
|
- iden = Entry(newWindow, width=35, borderwidth=5)
|
|
|
|
|
- iden.grid(row=0, column=1, columnspan=3, padx=10, pady=10)
|
|
|
|
|
-
|
|
|
|
|
- Label(newWindow, text='Update id: ').grid(row=1, column=0)
|
|
|
|
|
- update_id = Entry(newWindow, width=35, borderwidth=5)
|
|
|
|
|
- update_id.grid(row=1, column=1, columnspan=3, padx=10, pady=10)
|
|
|
|
|
-
|
|
|
|
|
- Label(newWindow, text='Awnser ').grid(row=2, column=0)
|
|
|
|
|
- awnser = Entry(newWindow, width=35, borderwidth=5)
|
|
|
|
|
- awnser.grid(row=2, column=1, columnspan=3, padx=10, pady=10)
|
|
|
|
|
-
|
|
|
|
|
- Label(newWindow, text='Name: ').grid(row=3, column=0)
|
|
|
|
|
- name = Entry(newWindow, width=35, borderwidth=5)
|
|
|
|
|
- name.grid(row=3, column=1, columnspan=3, padx=10, pady=10)
|
|
|
|
|
-
|
|
|
|
|
- Label(newWindow, text='Comment optional: ').grid(row=3, column=0)
|
|
|
|
|
- comment = Entry(newWindow, width=35, borderwidth=5)
|
|
|
|
|
- comment.grid(row=3, column=1, columnspan=3, padx=10, pady=10)
|
|
|
|
|
-
|
|
|
|
|
- Button(newWindow, text='Update', command=accept_up).grid(row=4, column=0)
|
|
|
|
|
|
|
+
|
|
|
|
|
|
|
|
-def view_updates():
|
|
|
|
|
- status =accept_status.get()
|
|
|
|
|
- if status == 'False':
|
|
|
|
|
- status = False
|
|
|
|
|
- else: status = True
|
|
|
|
|
- iden = int(accept_id.get())
|
|
|
|
|
- if status == None:
|
|
|
|
|
- pprint.pprint(chain.retrieve_updates(iden))
|
|
|
|
|
- else:
|
|
|
|
|
- pprint.pprint(chain.retrieve_updates(iden, status))
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-Button(root, text="View contract", command=myClick).grid(row=0, column=0)
|
|
|
|
|
-
|
|
|
|
|
Button(root, text="New contract", command=add_contract).grid(row=1, column=0)
|
|
Button(root, text="New contract", command=add_contract).grid(row=1, column=0)
|
|
|
|
|
|
|
|
-Button(root, text="Update contract", command=update).grid(row=2, column=0)
|
|
|
|
|
|
|
+# Button(root, text="View contract", command=myClick).grid(row=0, column=0)
|
|
|
|
|
+
|
|
|
|
|
+# Button(root, text="Update contract", command=update).grid(row=2, column=0)
|
|
|
|
|
|
|
|
-Button(root, text="Accept updates", command=accept_update).grid(row=3, column=0)
|
|
|
|
|
|
|
+# Button(root, text="Accept updates", command=accept_update).grid(row=3, column=0)
|
|
|
|
|
|
|
|
-Button(root, text="View pending updates", command=view_updates).grid(row=4, column=0)
|
|
|
|
|
|
|
+# Button(root, text="View pending updates", command=view_updates).grid(row=4, column=0)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|