Cod
Cod
class Curs:
def __init__(self, nume, profesor, tip, zi, ora_inceput, ora_sfarsit):
self.nume = nume
self.profesor = profesor
self.tip = tip
self.zi = zi
self.ora_inceput = ora_inceput
self.ora_sfarsit = ora_sfarsit
class AplicatieOrar:
def __init__(self, root):
self.root = root
self.root.title("Orar Universitar")
self.root.resizable(False, False)
self.orar = []
self.profesor_culori = {
"Prof. A": "lightblue",
"Prof. B": "lightgreen",
"Prof. C": "lightyellow",
"Prof. D": "lightcoral",
"Prof. E": "lightpink"
}
self.tip_culori = {
"Curs": "lightgray",
"Seminar": "lightcyan",
"Laborator": "lightgoldenrod"
}
# Etichete și câmpuri
self.create_widgets()
def create_widgets(self):
tk.Label(self.root, text="Nume Curs:").grid(row=1, column=0, sticky='e')
self.txt_nume = ttk.Combobox(self.root,
values=list(self.course_professor_mapping.keys()), state="readonly")
self.txt_nume.grid(row=1, column=1, sticky='ew')
self.txt_nume.bind("<<ComboboxSelected>>", self.on_course_selected)
# Butoane
button_frame = tk.Frame(self.root)
button_frame.grid(row=7, column=0, columnspan=4, pady=10, sticky='ew')
def adauga_curs(self):
curs_nou = Curs(
self.txt_nume.get(),
self.profesor_combo.get(),
self.var_tip.get(),
self.txt_zi.get(),
self.ora_inceput_combo.get(),
self.ora_sfarsit_combo.get()
)
self.orar.append(curs_nou)
self.actualizeaza_orar()
self.clear_fields()
def actualizeaza_orar(self):
self.canvas.delete("all") # Șterge toate formele existente
def clear_fields(self):
self.txt_nume.set('') # Reset the ComboBox
self.profesor_combo.set('') # Reset the ComboBox
self.var_tip.set("Curs") # Reset radiobutton
self.txt_zi.delete(0, tk.END)
self.ora_inceput_combo.set('') # Reset the ComboBox
self.ora_sfarsit_combo.set('') # Reset the ComboBox
def salveaza_orar(self):
filename = filedialog.asksaveasfilename(defaultextension=".json",
filetypes=[("JSON files", "*.json")])
if filename:
with open(filename, 'w') as f:
json.dump([curs.__dict__ for curs in self.orar], f)
messagebox.showinfo("Info", "Orarul a fost salvat.")
def printare(self):
filename = filedialog.asksaveasfilename(defaultextension=".pdf",
filetypes=[("PDF files", "*.pdf")])
if filename:
self.generare_pdf(filename)
messagebox.showinfo("Info", f"Orarul a fost salvat ca PDF: {filename}")
c.save()
def editare_curs(self):
messagebox.showinfo("Info", "Funcționalitate de editare nu este
implementată încă.")
if __name__ == "__main__":
root = tk.Tk()
app = AplicatieOrar(root)
root.mainloop()