EduProjekt/main_v_2.6.py

590 lines
21 KiB
Python

from tkinter import *
import tkinter as tk
import pymysql as mysql
import socket
root = tk.Tk()
root.geometry('600x300+200+200')
def admin():
def edit_baza_pytan():
edit_baza_pytan_window = tk.Tk()
edit_baza_pytan_window.geometry('600x300+300+300')
def add_pyt_sql():
add_pytanie.destroy()
del_pytanie.destroy()
def add_pyt():
print("ok")
con = mysql.Connect(host="127.0.0.1", user='root', passwd='', db='test') # łączenie się z bazą danych
cur = con.cursor() # tworzy obiekt, dzięki któremu będzie można wysyłać zapytania do bazy danych
if(pytanie_entry.get()=='' or p_odp.get()=='' or b_odp_1.get()=='' or b_odp_2.get()=='' or b_odp_3.get()==''):
err = tk.Label(edit_baza_pytan_window, text='Wypełnij puste pola')
err.grid(row=7)
else:
cur.execute(
"INSERT INTO pytania (Pytanie, P_odp, B_odp_1, B_odp_2, B_odp_3) VALUES ('%s','%s','%s','%s','%s')" % (
pytanie_entry.get(), p_odp.get(), b_odp_1.get(),
b_odp_2.get(), b_odp_3.get()))
con.commit()
cur.close()
con.close()
add_pyt_sql()
pytanie_entry_label = tk.Label(edit_baza_pytan_window, text='Pytanie')
p_odp_label = tk.Label(edit_baza_pytan_window, text='Poprawna odpowiedz')
b_odp_1_label = tk.Label(edit_baza_pytan_window, text='Bledna odpowiedz')
b_odp_2_label = tk.Label(edit_baza_pytan_window, text='Bledna odpowiedz')
b_odp_3_label = tk.Label(edit_baza_pytan_window, text='Bledna odpowiedz')
pytanie_entry = tk.Entry(edit_baza_pytan_window, )
p_odp = tk.Entry(edit_baza_pytan_window, )
b_odp_1 = tk.Entry(edit_baza_pytan_window, )
b_odp_2 = tk.Entry(edit_baza_pytan_window, )
b_odp_3 = tk.Entry(edit_baza_pytan_window, )
add_pytanie_button = tk.Button(
edit_baza_pytan_window,
text='Dodaj pytanie',
command=add_pyt)
pytanie_entry_label.grid(row=0, column=0)
p_odp_label.grid(row=1, column=0)
b_odp_1_label.grid(row=2, column=0)
b_odp_2_label.grid(row=3, column=0)
b_odp_3_label.grid(row=4, column=0)
pytanie_entry.grid(row=0, column=1)
p_odp.grid(row=1, column=1)
b_odp_1.grid(row=2, column=1)
b_odp_2.grid(row=3, column=1)
b_odp_3.grid(row=4, column=1)
add_pytanie_button.grid(row=5, column=1)
def del_pyt_sql():
add_pytanie.destroy()
del_pytanie.destroy()
def del_pyt():
print("ok")
con = mysql.Connect(host="127.0.0.1", user='root', passwd='', db='test')
cur = con.cursor()
cur.execute(
"DELETE FROM `pytania` WHERE `id_pytania` = %s" % int(id_pyt.get()))
con.commit()
cur.close()
con.close()
del_pyt_sql()
con = mysql.Connect(host="127.0.0.1", user='root', passwd='', db='test')
cur = con.cursor()
cur.execute(
"SELECT * FROM `pytania`")
wyniki = cur.fetchall()
cur.close()
con.close()
listbox = Listbox(edit_baza_pytan_window)
a = 0
for list in wyniki:
listbox.insert(a, list)
a += 1
listbox.grid(row=0, column=0)
scrollbar = Scrollbar(edit_baza_pytan_window, orient='vertical', command=listbox.yview)
scrollbar.grid(row=0, column=1, stick='ns')
simple_label = tk.Label(edit_baza_pytan_window, text='Podaj nr do usuniecia')
simple_label.grid(row=1, column=0)
id_pyt = tk.Entry(edit_baza_pytan_window)
id_pyt.grid(row=2, column=0)
del_pytanie_button = tk.Button(
edit_baza_pytan_window,
text='Usun',
command=del_pyt)
del_pytanie_button.grid(row=3, column=0)
add_pytanie = tk.Button(
edit_baza_pytan_window,
text='Dodaj pytanie do bazy',
command=add_pyt_sql)
add_pytanie.grid(row=0, column=0)
del_pytanie = tk.Button(
edit_baza_pytan_window,
text='Usuń pytanie z bazy',
command=del_pyt_sql)
del_pytanie.grid(row=1, column=0)
edit_baza_pytan_window.mainloop()
def wyniki_window():
wyniki_window = tk.Tk()
#wyniki_window.geometry('600x300+300+300')
print("ok")
def filtr_wynik():
if(nazwa_quizu_entry.get() != '' and nazwa_ucznia_entry.get() == ''):
con = mysql.Connect(host="127.0.0.1", user='root', passwd='', db='test') # łączenie się z bazą danych
cur = con.cursor() # tworzy obiekt, dzięki któremu będzie można wysyłać zapytania do bazy danych
cur.execute(
'SELECT * FROM wyniki where quiz_nazwa = \'%s\'' % (nazwa_quizu_entry.get()))
wyniki = cur.fetchall()
listbox = Listbox(wyniki_window, width=50)
listbox.grid(row=0, columnspan=2)
scrollbar = Scrollbar(wyniki_window, orient='vertical', command=listbox.yview)
scrollbar.grid(row=0, columnspan=2, stick='ens')
a = 0
for list in wyniki:
listbox.insert(a, list)
a += 1
listbox.config(yscrollcommand=scrollbar.set)
scrollbar.config(command=listbox.yview)
elif(nazwa_quizu_entry.get() == '' and nazwa_ucznia_entry.get() != ''):
con = mysql.Connect(host="127.0.0.1", user='root', passwd='', db='test') # łączenie się z bazą danych
cur = con.cursor() # tworzy obiekt, dzięki któremu będzie można wysyłać zapytania do bazy danych
cur.execute(
'SELECT * FROM wyniki where user_nazwa = \'%s\'' % (nazwa_ucznia_entry.get()))
wyniki = cur.fetchall()
listbox = Listbox(wyniki_window, width=50)
listbox.grid(row=0, columnspan=2)
scrollbar = Scrollbar(wyniki_window, orient='vertical', command=listbox.yview)
scrollbar.grid(row=0, columnspan=2, stick='ens')
a = 0
for list in wyniki:
listbox.insert(a, list)
a += 1
listbox.config(yscrollcommand=scrollbar.set)
scrollbar.config(command=listbox.yview)
elif(nazwa_quizu_entry.get() != '' and nazwa_ucznia_entry.get() != ''):
con = mysql.Connect(host="127.0.0.1", user='root', passwd='', db='test')
cur = con.cursor()
cur.execute(
'SELECT * FROM wyniki where quiz_nazwa = \'%s\' AND user_nazwa = \'%s\'' % (nazwa_quizu_entry.get(),nazwa_ucznia_entry.get()))
wyniki = cur.fetchall()
listbox = Listbox(wyniki_window, width=50)
listbox.grid(row=0, columnspan=2)
scrollbar = Scrollbar(wyniki_window, orient='vertical', command=listbox.yview)
scrollbar.grid(row=0, columnspan=2, stick='ens')
a = 0
for list in wyniki:
listbox.insert(a, list)
a += 1
listbox.config(yscrollcommand=scrollbar.set)
scrollbar.config(command=listbox.yview)
else:
print("pusty filtr")
con = mysql.Connect(host="127.0.0.1", user='root', passwd='', db='test') # łączenie się z bazą danych
cur = con.cursor() # tworzy obiekt, dzięki któremu będzie można wysyłać zapytania do bazy danych
cur.execute(
"SELECT * FROM `wyniki`") # zapytanie o tabele zawarte w wybranej wcześniej bazie danych
wyniki = cur.fetchall()
cur.close()
con.close()
listbox = Listbox(wyniki_window, width=50)
listbox.grid(row=0,columnspan=2)
scrollbar = Scrollbar(wyniki_window, orient= 'vertical', command=listbox.yview)
scrollbar.grid(row=0,columnspan=2, stick='ens')
a = 0
for list in wyniki:
listbox.insert(a, list)
a += 1
listbox.config(yscrollcommand = scrollbar.set)
scrollbar.config(command = listbox.yview)
simple_label = tk.Label(wyniki_window, text='Pozostaw puste pole by nie uwzglednic')
simple_label.grid(row=1, columnspan=2, stick= 'we')
simple_label_1 = tk.Label(wyniki_window, text='Nazwa quizu')
simple_label_1.grid(row=2, column=0)
nazwa_quizu_entry = tk.Entry(wyniki_window)
nazwa_quizu_entry.grid(row=2, column=1)
simple_label_2 = tk.Label(wyniki_window, text='Nazwa ucznia')
simple_label_2.grid(row=3, column=0)
nazwa_ucznia_entry = tk.Entry(wyniki_window)
nazwa_ucznia_entry.grid(row=3, column=1)
filtr_button = tk.Button(
wyniki_window,
text='Filtruj',
command=filtr_wynik)
filtr_button.grid(row=4, columnspan=2, stick = 'we')
wyniki_window.mainloop()
def add_quiz_window():
add_quiz_window = tk.Tk()
def add_sql():
con = mysql.Connect(host="127.0.0.1", user='root', passwd='', db='test')
cur1 = con.cursor()
cur2 = con.cursor()
cur3 = con.cursor()
cur4 = con.cursor()
cur5 = con.cursor()
cur6 = con.cursor()
cur1.execute(
"INSERT INTO `quiz` (`quiz_nazwa`) VALUES ('%s')" % (quiz_nazwa.get()))
cur2.execute(
"INSERT INTO pytania_quiz (quiz_nazwa, pytanie, p_odp, b_odp_1, b_odp_2, b_odp_3) VALUES ('%s','%s','%s','%s','%s','%s')"
% (quiz_nazwa.get(), p1.get(), p_odp_1.get(), b_odp_1_1.get(), b_odp_1_2.get(), b_odp_1_3.get()))
cur3.execute(
"INSERT INTO pytania_quiz (quiz_nazwa, pytanie, p_odp, b_odp_1, b_odp_2, b_odp_3) VALUES ('%s','%s','%s','%s','%s','%s')"
% (quiz_nazwa.get(), p2.get(), p_odp_2.get(), b_odp_2_1.get(), b_odp_2_2.get(), b_odp_2_3.get()))
cur4.execute(
"INSERT INTO pytania_quiz (quiz_nazwa, pytanie, p_odp, b_odp_1, b_odp_2, b_odp_3) VALUES ('%s','%s','%s','%s','%s','%s')"
% (quiz_nazwa.get(), p3.get(), p_odp_3.get(), b_odp_3_1.get(), b_odp_3_2.get(), b_odp_3_3.get()))
cur5.execute(
"INSERT INTO pytania_quiz (quiz_nazwa, pytanie, p_odp, b_odp_1, b_odp_2, b_odp_3) VALUES ('%s','%s','%s','%s','%s','%s')"
% (quiz_nazwa.get(), p4.get(), p_odp_4.get(), b_odp_4_1.get(), b_odp_4_2.get(), b_odp_4_3.get()))
cur6.execute(
"INSERT INTO pytania_quiz (quiz_nazwa, pytanie, p_odp, b_odp_1, b_odp_2, b_odp_3) VALUES ('%s','%s','%s','%s','%s','%s')"
% (quiz_nazwa.get(), p5.get(), p_odp_5.get(), b_odp_5_1.get(), b_odp_5_2.get(), b_odp_5_3.get()))
con.commit()
cur1.close()
cur2.close()
cur3.close()
cur4.close()
cur5.close()
cur6.close()
con.close()
tk.Label(add_quiz_window, text='Nazwa quizu').grid(row=0, column=0)
for x in range(1,6):
tk.Label(add_quiz_window, text='Pytanie').grid(row=x, column=0)
tk.Label(add_quiz_window, text='Poprawna odp').grid(row=x, column=2)
for y in range(4,9):
if (y%2==1):
continue
tk.Label(add_quiz_window, text='Bledna odp').grid(row=x, column=y)
quiz_nazwa = tk.Entry(add_quiz_window)
quiz_nazwa.grid(row=0, column=1)
p1 = tk.Entry(add_quiz_window)
p1.grid(row=1, column=1)
p_odp_1 = tk.Entry(add_quiz_window)
p_odp_1.grid(row=1, column=3)
b_odp_1_1 = tk.Entry(add_quiz_window)
b_odp_1_1.grid(row=1, column=5)
b_odp_1_2 = tk.Entry(add_quiz_window)
b_odp_1_2.grid(row=1, column=7)
b_odp_1_3 = tk.Entry(add_quiz_window)
b_odp_1_3.grid(row=1, column=9)
""""""
p2 = tk.Entry(add_quiz_window)
p2.grid(row=2, column=1)
p_odp_2 = tk.Entry(add_quiz_window)
p_odp_2.grid(row=2, column=3)
b_odp_2_1 = tk.Entry(add_quiz_window)
b_odp_2_1.grid(row=2, column=5)
b_odp_2_2 = tk.Entry(add_quiz_window)
b_odp_2_2.grid(row=2, column=7)
b_odp_2_3 = tk.Entry(add_quiz_window)
b_odp_2_3.grid(row=2, column=9)
""""""
p3 = tk.Entry(add_quiz_window)
p3.grid(row=3, column=1)
p_odp_3 = tk.Entry(add_quiz_window)
p_odp_3.grid(row=3, column=3)
b_odp_3_1 = tk.Entry(add_quiz_window)
b_odp_3_1.grid(row=3, column=5)
b_odp_3_2 = tk.Entry(add_quiz_window)
b_odp_3_2.grid(row=3, column=7)
b_odp_3_3 = tk.Entry(add_quiz_window)
b_odp_3_3.grid(row=3, column=9)
""""""
p4 = tk.Entry(add_quiz_window)
p4.grid(row=4, column=1)
p_odp_4 = tk.Entry(add_quiz_window)
p_odp_4.grid(row=4, column=3)
b_odp_4_1 = tk.Entry(add_quiz_window)
b_odp_4_1.grid(row=4, column=5)
b_odp_4_2 = tk.Entry(add_quiz_window)
b_odp_4_2.grid(row=4, column=7)
b_odp_4_3 = tk.Entry(add_quiz_window)
b_odp_4_3.grid(row=4, column=9)
""""""
p5 = tk.Entry(add_quiz_window)
p5.grid(row=5, column=1)
p_odp_5 = tk.Entry(add_quiz_window)
p_odp_5.grid(row=5, column=3)
b_odp_5_1 = tk.Entry(add_quiz_window)
b_odp_5_1.grid(row=5, column=5)
b_odp_5_2 = tk.Entry(add_quiz_window)
b_odp_5_2.grid(row=5, column=7)
b_odp_5_3 = tk.Entry(add_quiz_window)
b_odp_5_3.grid(row=5, column=9)
submit_button = tk.Button(
add_quiz_window,
text='Prześlij',
command=add_sql)
submit_button.grid(columnspan=2, stick='we')
add_quiz_window.mainloop()
edit_db=tk.Button(
root,
text = 'Edytuj baze pytan',
command = edit_baza_pytan)
edit_db.grid(row=2, column=1)
wyniki=tk.Button(
root,
text = 'Wyniki',
command = wyniki_window)
wyniki.grid(row=3,column=1)
okno_add_quiz = tk.Button(
root,
text='Utwórz quiz',
command=add_quiz_window)
okno_add_quiz.grid(row=4, column=1)
def user():
def edit_baza_pytan():
edit_baza_pytan_window = tk.Tk()
edit_baza_pytan_window.geometry('600x300+300+300')
def add_pyt_sql():
add_pytanie.destroy()
del_pytanie.destroy()
def add_pyt():
print("ok")
con = mysql.Connect(host="127.0.0.1", user='root', passwd='', db='test') # łączenie się z bazą danych
cur = con.cursor() # tworzy obiekt, dzięki któremu będzie można wysyłać zapytania do bazy danych
cur.execute(
"INSERT INTO pytania (Pytanie, P_odp, B_odp_1, B_odp_2, B_odp_3) VALUES ('%s','%s','%s','%s','%s')" % (
pytanie_entry.get(), p_odp.get(), b_odp_1.get(),
b_odp_2.get(), b_odp_3.get()))
con.commit()
cur.close()
con.close()
edit_baza_pytan_window.destroy()
edit_baza_pytan()
pytanie_entry_label = tk.Label(edit_baza_pytan_window, text='Pytanie')
p_odp_label = tk.Label(edit_baza_pytan_window, text='Poprawna odpowiedz')
b_odp_1_label = tk.Label(edit_baza_pytan_window, text='Bledna odpowiedz')
b_odp_2_label = tk.Label(edit_baza_pytan_window, text='Bledna odpowiedz')
b_odp_3_label = tk.Label(edit_baza_pytan_window, text='Bledna odpowiedz')
pytanie_entry = tk.Entry(edit_baza_pytan_window, )
p_odp = tk.Entry(edit_baza_pytan_window, )
b_odp_1 = tk.Entry(edit_baza_pytan_window, )
b_odp_2 = tk.Entry(edit_baza_pytan_window, )
b_odp_3 = tk.Entry(edit_baza_pytan_window, )
add_pytanie_button = tk.Button(
edit_baza_pytan_window,
text='Dodaj pytanie',
command=add_pyt)
pytanie_entry_label.grid(row=0, column=0)
p_odp_label.grid(row=1, column=0)
b_odp_1_label.grid(row=2, column=0)
b_odp_2_label.grid(row=3, column=0)
b_odp_3_label.grid(row=4, column=0)
pytanie_entry.grid(row=0, column=1)
p_odp.grid(row=1, column=1)
b_odp_1.grid(row=2, column=1)
b_odp_2.grid(row=3, column=1)
b_odp_3.grid(row=4, column=1)
add_pytanie_button.grid(row=5, column=1)
def del_pyt_sql():
add_pytanie.destroy()
del_pytanie.destroy()
def del_pyt():
print("ok")
con = mysql.Connect(host="127.0.0.1", user='root', passwd='', db='test') # łączenie się z bazą danych
cur = con.cursor() # tworzy obiekt, dzięki któremu będzie można wysyłać zapytania do bazy danych
cur.execute(
"DELETE FROM `pytania` WHERE `id_pytania` = %s" % int(id_pyt.get()))
con.commit()
cur.close()
con.close()
edit_baza_pytan_window.destroy()
edit_baza_pytan()
con = mysql.Connect(host="127.0.0.1", user='root', passwd='', db='test') # łączenie się z bazą danych
cur = con.cursor() # tworzy obiekt, dzięki któremu będzie można wysyłać zapytania do bazy danych
cur.execute(
"SELECT * FROM `pytania`") # zapytanie o tabele zawarte w wybranej wcześniej bazie danych
wyniki = cur.fetchall()
cur.close()
con.close()
listbox = Listbox(edit_baza_pytan_window)
a = 0
for list in wyniki:
listbox.insert(a, list)
a += 1
listbox.grid(row=0, column=0)
id_pyt = tk.Entry(edit_baza_pytan_window, )
id_pyt.grid(row=1, column=0)
del_pytanie_button = tk.Button(
edit_baza_pytan_window,
text='Usun',
command=del_pyt)
del_pytanie_button.grid(row=2, column=0)
add_pytanie = tk.Button(
edit_baza_pytan_window,
text='Dodaj pytanie do bazy',
command=add_pyt_sql)
add_pytanie.grid(row=0, column=0)
del_pytanie = tk.Button(
edit_baza_pytan_window,
text='Usuń pytanie z bazy',
command=del_pyt_sql)
del_pytanie.grid(row=1, column=0)
edit_baza_pytan_window.mainloop()
def wyniki_window():
wyniki_window = tk.Tk()
wyniki_window.geometry('600x300+300+300')
print("ok")
con = mysql.Connect(host="127.0.0.1", user='root', passwd='', db='test') # łączenie się z bazą danych
cur = con.cursor() # tworzy obiekt, dzięki któremu będzie można wysyłać zapytania do bazy danych
cur.execute(
"SELECT * FROM `wyniki`") # zapytanie o tabele zawarte w wybranej wcześniej bazie danych
wyniki = cur.fetchall()
for record in wyniki:
print(record) # wyświetlanie rekordów (w tym przypadku to są nazwy tabelek)
cur.close()
con.close()
listbox = Listbox(wyniki_window)
a = 0
for list in wyniki:
listbox.insert(a, list)
a += 1
listbox.pack()
wyniki_window.mainloop()
okno_dodania_pytania = tk.Button(
root,
text='Edytuj baze pytan',
command=edit_baza_pytan)
okno_dodania_pytania.grid(row=2, column=1)
okno_wyniki = tk.Button(
root,
text='Wyniki',
command=wyniki_window)
okno_wyniki.grid(row=3, column=1)
def start_app():
name = socket.gethostname()
con = mysql.Connect(host="127.0.0.1", user='root', passwd='', db='test') # łączenie się z bazą danych
cur = con.cursor() # tworzy obiekt, dzięki któremu będzie można wysyłać zapytania do bazy danych
cur.execute(
'SELECT Typ FROM users where Nazwa = \'%s\'' % name)
wynik = cur.fetchone()
if (wynik[0] == 'Admin' or wynik[0] == 'admin'):
admin()
elif(wynik[0] == 'User' or wynik[0] == 'user'):
user()
start_app()
root.mainloop()