'''
آموزشگاه کامپیوتر راهکار تبریز
04135574231 - 09146585123
www.rahkar01.ir
پیشنهاد میکنیم سورس برنامه را خودتان چند بار صفر تا صد پیاده سازی کنید
تا برای آزمون عملی به مشکل نخورید
از حفظ کردن برنامه خودداری کنید و با مطالعه ویدئو و یادداشت برداری
برای خودتان منطق برنامه را درک کنید
درصورت نیاز به هرگونه توضیح تکمیلی یا آموزش بهتر با ما تماس بگیرید
'''

from tkinter import *
import sqlite3

conn=sqlite3.connect('todolist.db')
curs=conn.cursor()
curs.execute('create table if not exists todolist (id integer primary key autoincrement, onvan text , vazeyat text)')
conn.commit()


def add():
    eonvan = e1.get()
    curs.execute('insert into todolist (onvan,vazeyat)  values(? , ?)' , (eonvan , '[❌]'))
    conn.commit()
    show()

def show():
    mylist.delete(0,END)
    curs.execute('select * from todolist')
    info = curs.fetchall()
    for i in info:
        mylist.insert(END, i)


def anjam():
    satrno = mylist.curselection()
    neveshte = mylist.get(satrno)
    if neveshte[2]=='[❌]':
        curs.execute('update todolist set vazeyat=? where id =?' , ('[✔]' , neveshte[0]))
    else:
        curs.execute('update todolist set vazeyat=? where id =?' , ('[❌]' , neveshte[0]))
    conn.commit()
    show()


def hazf():
    satrno = mylist.curselection()
    neveshte = mylist.get(satrno)
    curs.execute('delete from todolist where id=?' , (neveshte[0] ,))
    conn.commit()
    show()


win=Tk()
win.title('To DO List')
win.geometry('400x300')

e1 = Entry();       e1.place(x=20,y=20, width=200)

b1=Button(text='افزودن' , command=add).place(x=250,y=20,width=100)

mylist=Listbox();   mylist.place(x=20,y=60,width=300)
show()

b2=Button(text='انجام کار' , command=anjam).place(x=20,y=250,width=100)
b3=Button(text='حذف کار', command=hazf).place(x=150,y=250,width=100)

mainloop()