Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

import tkinter as tk from tkinter import ttk , messagebox from datetime import datetime class WorkshopApp: def _ _ init _ _ ( self ,

import tkinter as tk
from tkinter import ttk, messagebox
from datetime import datetime
class WorkshopApp:
def __init__(self, root):
self.root = root
self.root.title("Craft Workshop Management System")
self.teachers =[]
self.students =[]
self.courses =[]
self.init_data()
self.setup_ui()
def init_data(self):
self.teachers.append(Teacher("Kemal","123-456-7890","987-654-3210", "Elmal sk..", "kemal@example.com", 50,100,"9:00AM-5:00PM", "Woodworking, Pottery"))
self.teachers.append(Teacher("Aye","321-654-9870","654-321-9870", "ordu sk.","aye@example.com", 60,120,"10:00AM-6:00PM", "Painting, Sculpting"))
self.students.append(Student("Fatma","222-333-4444","333-444-5555","nar sk.", "fatma@example.com"))
self.students.append(Student("Mustafa","444-555-6666","555-666-7777","ar sk.", "mustafa@example.com"))
self.courses.append(Course("001", "Woodworking Basics", "Weekdays", "1:00PM-3:00PM",150, self.teachers[0],1))
self.courses.append(Course("002", "Pottery Intermediate", "Weekends", "10:00AM-12:00PM",180, self.teachers[0],10))
self.courses.append(Course("003", "Painting Techniques", "Weekdays", "2:00PM-4:00PM",160, self.teachers[1],10))
self.courses.append(Course("004", "Sculpting Advanced", "Weekends", "3:00PM-5:00PM",200, self.teachers[1],10))
def setup_ui(self):
ttk.Button(self.root, text="Course Enroll", command=self.course_enroll).grid(row=0, column=0, padx=10, pady=10)
ttk.Button(self.root, text="Add New Course", command=self.add_new_course).grid(row=0, column=1, padx=10, pady=10)
ttk.Button(self.root, text="View/Edit Courses", command=self.view_courses).grid(row=0, column=2, padx=10, pady=10)
ttk.Button(self.root, text="View Teachers", command=self.view_teachers).grid(row=0, column=3, padx=10, pady=10)
ttk.Button(self.root, text="View Students", command=self.view_students).grid(row=0, column=4, padx=10, pady=10)
ttk.Button(self.root, text="Add New Teacher", command=self.add_new_teacher).grid(row=0, column=5, padx=10, pady=10)
def view_students(self):
student_window = tk.Toplevel(self.root)
student_window.title("List of Students")
for index, student in enumerate(self.students):
row = index
ttk.Label(student_window, text=student.name).grid(row=row, column=0, padx=5, pady=2)
details_btn = ttk.Button(student_window, text="Details", command=lambda s=student: self.show_student_details(s))
details_btn.grid(row=row, column=1, padx=5, pady=2)
def show_student_details(self, student):
details_window = tk.Toplevel(self.root)
details_window.title("Student Details")
labels =["Name", "Home Phone", "Mobile Phone", "Address", "Email"]
entries ={}
for i, label in enumerate(labels):
ttk.Label(details_window, text=f"{label}:").grid(row=i, column=0, padx=5, pady=5)
entry = ttk.Entry(details_window)
entry.insert(0, getattr(student, label.lower().replace("","_")))
entry.grid(row=i, column=1, padx=5, pady=5)
entries[label]= entry
tree = ttk.Treeview(details_window, columns=('Course ID', 'Payment'), show='headings')
tree.heading('Course ID', text='Course ID')
tree.heading('Payment', text='Payment')
tree.grid(row=len(labels), column=0, columnspan=2, padx=5, pady=5, sticky='nsew')
for course_id, payment in student.payments.items():
tree.insert('', 'end', values=(course_id, f"${payment}"))
save_btn = ttk.Button(details_window, text="Save", command=lambda: self.save_student_changes(student, entries))
save_btn.grid(row=len(labels)+1, column=1, padx=5, pady=10)
def save_student_changes(self, student, entries):
for label, entry in entries.items():
setattr(student, label.lower().replace("","_"), entry.get())
messagebox.showinfo("Update Successful", f"Updated {student.name}'s details successfully")
def view_teachers(self):
teacher_window = tk.Toplevel(self.root)
teacher_window.title("List of Teachers")
for index, teacher in enumerate(self.teachers):
teacher_info = f"{teacher.name}-{teacher.working_hours}"
ttk.Label(teacher_window, text=teacher_info).grid(row=index, column=0, padx=5, pady=5)
how to write a unit test for a save students changes

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Data Management Databases And Organizations

Authors: Watson Watson

5th Edition

0471715360, 978-0471715368

More Books

Students also viewed these Databases questions

Question

=+b) Find the standard error of the estimated mean difference.

Answered: 1 week ago