from tkinter import ttk import tkinter as tk import backend class admin: def __init__(self, window): self.window = window self.window.title('Admin User Page') self.frame = tk.LabelFrame(self.window, text='Register New Book',font=('Verdana', 10, 'bold')) self.frame.grid(row=0, column=0, columnspan=6, pady=30) # Title Input tk.Label(self.frame, text='Title:', font=('Verdana', 10, 'bold')).grid(row=1, column=0) self.title_text = tk.Entry(self.frame, width=25, font=('Arial', 12, 'bold')) self.title_text.focus() self.title_text.grid(row=1, column=1) # Year Input tk.Label(self.frame, text='Year:', font=('Verdana', 10, 'bold')).grid(row=2, column=0) self.year_text = tk.Entry(self.frame, width=25, font=('Arial', 12, 'bold')) self.year_text.focus() self.year_text.grid(row=2, column=1) # Author Input tk.Label(self.frame, text='Author:',font=('Verdana', 10, 'bold')).grid(row=3, column=0) self.author_text = tk.Entry(self.frame, width=25, font=('Arial', 12, 'bold')) self.author_text.focus() self.author_text.grid(row=3, column=1) # ISBN Input tk.Label(self.frame, text='Isbn:', font=('Verdana', 10, 'bold')).grid(row=4, column=0) self.isbn_text = tk.Entry(self.frame, width=25, font=('Arial', 12, 'bold')) self.isbn_text.focus() self.isbn_text.grid(row=4, column=1) # Button Add Book tk.Button(self.frame, text='Add Entry', font=('Verdana', 10, 'bold'),command=self.add_book).grid(row=5, columnspan=5, sticky= tk.W + tk.E) # Output Messages self.message = tk.Label(text = '', fg = 'red') self.message.grid(row = 3, column = 0, columnspan =6,padx=50,sticky = tk.N + tk.S + tk.W + tk.E) # Table self.tree = ttk.Treeview(height = 9, columns=("Title","Author", "Year", "Isbn")) self.tree.grid(row = 6, column = 0, columnspan =6,padx=50,sticky = tk.N + tk.S + tk.W + tk.E,) self.tree.heading('#0',text = 'ID', anchor = tk.CENTER) self.tree.heading('Title',text = 'Title', anchor = tk.CENTER) self.tree.heading('Author',text = 'Author', anchor = tk.CENTER) self.tree.heading('Year',text = 'Year', anchor = tk.CENTER) self.tree.heading('Isbn',text = 'Isbn', anchor = tk.CENTER) self.tree.column("#0", width=50) self.tree.column("Year", width=70) # Buttons self.button_view = ttk.Button(text = 'VIEW ALL', command = self.get_book) self.button_view.place(x=60, y=405, width=100, height=20) self.button_search = ttk.Button(text = 'SEARCH', command = self.delete_book) self.button_search.place(x=205, y=405, width=100, height=20) self.button_delete =ttk.Button(text = 'DELETE', command = self.delete_book) self.button_delete.place(x=355, y=405, width=100, height=20) self.button_update = self.button_issue = ttk.Button(text = 'UPDATE', command =" self.edit_product") self.button_update.place(x=505, y=405, width=100, height=20) self.button_requested = self.button_issue = ttk.Button(text = 'ISSUED BOOK', command =" self.edit_product",) self.button_requested.place(x=660, y=405, width=100, height=20) # User Input Validation def validation(self): return len(self.title_text.get()) != 0 and len(self.title_text.get()) != 0 and len(self.author_text.get()) != 0 and len(self.year_text.get()) != 0 and len(self.isbn_text.get()) def add_book(self): if self.validation(): backend.insert(self.title_text.get(), self.author_text.get(),self.year_text.get(), self.isbn_text.get()) self.message['text'] = 'Book {} added Successfully'.format(self.title_text.get()) self.title_text.delete(0, tk.END) self.author_text.delete(0,tk.END) self.year_text.delete(0, tk.END) self.isbn_text.delete(0, tk.END) else: self.message['text'] = 'Book not properly registered!. Complete the book registration form' # Get Book from Database def get_book(self): # cleaning Table records = self.tree.get_children() for element in records: self.tree.delete(element) # filling data for row in backend.view(): self.tree.insert("", "end", text=row[0], values=(row[1], row[2], row[3],row[4])) def delete_book(self): self.message['text'] = '' try: self.tree.item(self.tree.selection())['values'][0] except IndexError as e: self.message['text'] = 'Please select a Record' return self.message['text'] = '' value = self.tree.item(self.tree.selection())['text'] book_title = self.tree.item(self.tree.selection())['values'][0] backend.delete(value) self.message['text'] = 'Record {} deleted Successfully'.format(book_title) self.get_book() backend.connect()