/
hoca_ekrani.py
157 lines (136 loc) · 6.37 KB
/
hoca_ekrani.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
from PyQt5 import QtWidgets, QtCore
from PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import QMessageBox, QMainWindow
import DataBaseManager
from ui_pages.ui_hocaEkrani import Ui_HocaEkraniMainWindow
class HocaEkraniWidget(QMainWindow):
def __init__(self, ogretmen_kadi, ogretmen_sifre, parent=None):
super(HocaEkraniWidget, self).__init__(parent=parent)
self.id = None
self.ui = Ui_HocaEkraniMainWindow()
self.ui.setupUi(self)
self.Teacher = DataBaseManager.Teacher()
self.Lesson = DataBaseManager.Lessons()
self._translate = QtCore.QCoreApplication.translate
self.kadi = ogretmen_kadi
self.sifre = ogretmen_sifre
self.initSlots()
self.UI()
self.show()
def initSlots(self):
self.ui.actionExit.triggered.connect(lambda: QtCore.QCoreApplication.instance().quit())
self.ui.action_DersEkle.triggered.connect(self.DersEkleWidget)
self.ui.action_DerseOgrenciEkle.triggered.connect(self.OgrenciyiDerseEkle)
self.ui.action_OgrenciEkle.triggered.connect(self.OgrenciEkleWidget)
self.ui.action_OgrenciDuzenle.triggered.connect(self.OgrenciAraWidget)
self.ui.action_OgretmenDuzenle.triggered.connect(self.OgretmenDuzenleWidget)
self.ui.btn_login.clicked.connect(self.AnaPencereWidget)
self.ui.action_SayfayiYenile.triggered.connect(self.RefreshWidget)
self.ui.sinif_liste.triggered.connect(self.SinifListesiWidget)
def RefreshWidget(self):
QMessageBox.information(self, "Bilgi", "Sayfa Yenileniyor...")
self.UI()
def DersEkleWidget(self):
print(self.kadi, self.sifre)
try:
from DersEkle import DersEkleWidget
self.dersEkleWidget = DersEkleWidget(self.kadi, self.sifre)
except:
print("Öğretmen Kullanıcı Ad Hatası")
def OgrenciyiDerseEkle(self):
print("OgrenciyiDerseEkle")
try:
print("try içi")
if self.kadi and self.sifre is not None:
from OgrenciyiDerseEkle import DerseOgrenciEkleWidget
self.dersEkleWidget = DerseOgrenciEkleWidget(self.id, self.kadi)
else:
QMessageBox.warning(self, "Uyarı", "Öğretmen Kullanıcı Ad Hatası")
except:
print("Öğretmen Kullanıcı Ad Hatası")
def SinifListesiWidget(self):
try:
from OgrenciListesi import OgrenciListesiWidget
self.OgrenciListesi = OgrenciListesiWidget(self.ui.cmb_Dersler.currentText())
except:
QMessageBox.critical(self, "Uyarı", "Öğrenci Listesi Sayfasında Sorun Oluştu")
def OgrenciEkleWidget(self):
try:
from OgrenciEkle import OgrenciEkleWindow
self.ogrenciEkleWidget = OgrenciEkleWindow()
except:
QMessageBox.warning(self, "Uyarı", "Bir Hata Oluştu")
def OgrenciAraWidget(self):
try:
from OgrenciAra import OgrenciAraWidget
self.ogrenciAraWidget = OgrenciAraWidget()
except:
QMessageBox.warning(self, "Uyarı", "Bir Hata Oluştu")
def OgretmenDuzenleWidget(self):
try:
from OgretmenDuzenle import OgretmenDuzenleWidget
self.ogrenciAraWidget = OgretmenDuzenleWidget(self.kadi, self.sifre)
except Exception as e:
QMessageBox.warning(self, "Uyarı", "Bir Hata Oluştu Hata :", e)
def BilgileriGetir(self):
data = (self.kadi, self.sifre)
try:
result = self.Teacher.getTeacherInformation(data)
if result is not None:
self.id = result[0][0]
self.adi_soyadi = result[0][1] + " " + result[0][2]
self.bolum = result[0][3]
if result[0][7] is not None:
self.dersler = result[0][7].split(",")
else:
self.dersler = None
print("Hocaya Ait ders bulunmamaktadır.")
self.BilgileriGom()
except:
print("Bilgileri Getirmede Sorun Oluştu")
def BilgileriGom(self):
self.ui.text_AdSoyad.setText(self.adi_soyadi.upper())
self.ui.text_Bolum.setText(self.bolum.upper())
if self.dersler is not None:
self.ui.cmb_Dersler.clear()
self.ui.cmb_Dersler.addItems(self.dersler)
else:
_translate = QtCore.QCoreApplication.translate
QMessageBox.warning(self, "Uyarı", f'{self.adi_soyadi} hocaya ait ders kaydı bulunamadı.')
self.cmb_Dersler.setItemText(0, _translate("HocaEkraniMainWindow", "Öğretmene Ait Ders Kaydı Bulunamadı"))
def AnaPencereWidget(self):
# TODO : Derse Kayıtlı Öğrenci Yoksa AnaWidget ı açmasın
model_name = self.ui.cmb_Model.currentText()
distance_metric = self.ui.cmb_Metrik.currentText()
genelkod = self.ui.cmb_Dersler.currentText()
countTakenStudents = list(self.Lesson.getLessonTakenStudents(genelkod))
if None in countTakenStudents:
QMessageBox.warning(self, "Uyarı", "Derse Kayıtlı Öğrenci Yok Önce Derse Öğrenci Ekleyiniz None")
elif len(countTakenStudents[0].split(",")) < 1:
QMessageBox.warning(self, "Uyarı", "Derse Kayıtlı Öğrenci Yok Önce Derse Öğrenci Ekleyiniz")
else:
try:
from mainWindow import MainWindow
self.AnaWidget = MainWindow(self.id, self.kadi, self.sifre, genelkod, model_name, distance_metric)
except:
QMessageBox.warning(self, "Uyarı", "Ana Pencere Açılamadı")
def UI(self):
self.ui.text_Bolum.setEnabled(False)
self.ui.text_AdSoyad.setEnabled(False)
self.BilgileriGetir()
try:
self.ui.checkBox.hide()
self.setFixedSize(510, 554)
ImageStudentPath = f'ogretmenler/{self.kadi}_1.jpg'
self.ui.image_ogretmen.setPixmap(QPixmap(ImageStudentPath).scaled(263, 211))
self.ui.image_ogretmen.setScaledContents(True)
self.setWindowTitle(self._translate("HocaEkraniMainWindow", f'{self.kadi} Hoca Ekranı'))
except:
QMessageBox.warning(self, "Uyarı", "Hocaya Ait Resim Bulunamadı")
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
app.setStyle("fusion")
loginWindow = HocaEkraniWidget("ibrahim", "123456")
loginWindow.show()
sys.exit(app.exec_())