section_students.sort(key=lambda student: student.name) self.student_listbox.delete(0, tk.END) for student in section_students: student_name = student.name self.student_listbox.insert(tk.END, f"{student_name}") def add_attended_students(self): selected_students = self.student_listbox.curselection() for student_index in selected_students: student_info = self.student_listbox.get(student_index) self.attended_students_listbox.insert(tk.END, student_info) self.student_listbox.selection_clear(0, tk.END) remove_button = tk.Button(self.master, text="<== Remove", command=self.remove_attended_students) remove_button.grid(row=2, column=4, padx=5, pady=5) def remove_attended_students(self): selected_students = self.attended_students_listbox.curselection() for student_index in selected_students[::-1]: self.attended_students_listbox.delete(student_index) def on_section_change(self, event): self.attended_students_listbox.delete(0, tk.END) self.update_student_listbox() def add_attendance(self): student_id = self.student_id_var.get() student_name = self.student_name_var.get() student_department = self.student_department_var.get() if student_id and student_name and student_department: self.attended_students_listbox.insert(tk.END, f"{student_id} {student_name} {student_department}") self.student_id_var.set("") self.student_name_var.set("") self.student_department_var.set("") else: messagebox.showerror("Hata", "Lütfen öğrenci bilgilerini eksiksiz girin.") def export_attendance(self): section = self.section_var.get() week = self.week_var.get() filetype = self.filetype_var.get() filename = f"{section} {week}.{filetype}" file_path = filedialog.asksaveasfilename(defaultextension=filetype, initialfile=filename, filetypes=[("Excel Dosyası", f"*.{filetype}")], parent=self.master) if file_path: if filetype == "xlsx": writer = pd.ExcelWriter(file_path) self.attended_students_listbox.insert(tk.END, "Attendance List Exported to Excel") self.attended_students_listbox.insert(tk.END, f"File saved as {filename}") df = pd.DataFrame(columns=["ID", "Name", "Department"]) for i in range(self.attended_students_listbox.size()): student_info = self.attended_students_listbox.get(i) student_info_list = student_info.split(",") student_id = student_info_list[0] student_name = " ".join(student_info_list[1:-1]) student_department = student_info_list[-1] df = df.append({"ID": student_id, "Name": student_name, "Department": student_department}, ignore_index=True) df.to_excel(writer, index=False) writer.save() elif filetype == "csv": raise ValueError("Dosya türü desteklenmiyor") else: with open(file_path, "w") as f: f.write("ID\tName\tDepartment\n") for i in range(self.attended_students_listbox.size()): student_info = self.attended_students_listbox.get(i) student_info_list = student_info.split(",") student_id = student_info_list[0] student_name = " ".join(student_info_list[1:-1]) student_department = student_info_list[-1] f.write(f"{student_id}\t{student_name}\t{student_department}\n") self.attended_students_listbox.insert(tk.END, "Attendance List Exported to Text File") self.attended_students_listbox.insert(tk.END, f"File saved as {filename}") root = tk.Tk() app = AttendanceApp(root) app.master.geometry("600x300") app.master.resizable(False, False) root.mainloop()