Commit 9bc1d969 authored by Ali Riza Keles's avatar Ali Riza Keles

ADD: sube kaydet ardindan sinavlari olustur, sube kayit ederken donemi guncel doneme bagla

parent 29257e73
...@@ -201,6 +201,16 @@ class Donem(Model): ...@@ -201,6 +201,16 @@ class Donem(Model):
bitis_tarihi = field.Date("Bitiş Tarihi", index=True, format="%d.%m.%Y") bitis_tarihi = field.Date("Bitiş Tarihi", index=True, format="%d.%m.%Y")
guncel = field.Boolean(index=True) guncel = field.Boolean(index=True)
@classmethod
def guncel_donem(cls):
return cls.objects.get(guncel=True)
def pre_save(self):
if self.guncel:
old = self.guncel_donem()
old.guncel = False
old.save()
class Meta: class Meta:
app = 'Ogrenci' app = 'Ogrenci'
verbose_name = "Dönem" verbose_name = "Dönem"
...@@ -288,7 +298,7 @@ class Ders(Model): ...@@ -288,7 +298,7 @@ class Ders(Model):
yerine_ders = LinkProxy("Ders", verbose_name="Yerine Açılan Ders", reverse_name="") yerine_ders = LinkProxy("Ders", verbose_name="Yerine Açılan Ders", reverse_name="")
class Degerlendirme(ListNode): class Degerlendirme(ListNode):
tur = field.String("Değerlendirme Türü", index=True) tur = field.Integer("Değerlendirme Türü", choices="sinav_turleri", index=True)
toplam_puana_etki_yuzdesi = field.Integer("Toplam Puana Etki Yüzdesi", index=True) toplam_puana_etki_yuzdesi = field.Integer("Toplam Puana Etki Yüzdesi", index=True)
class DersYardimcilari(ListNode): class DersYardimcilari(ListNode):
...@@ -358,6 +368,12 @@ class Sube(Model): ...@@ -358,6 +368,12 @@ class Sube(Model):
list_fields = ['ad', 'kontenjan'] list_fields = ['ad', 'kontenjan']
search_fields = ['ad', 'kontenjan'] search_fields = ['ad', 'kontenjan']
def sube_sinavlarini_olustur(self):
for dg in self.ders.Degerlendirme:
sinav = Sinav(tur=dg.tur, sube=self, ders=self.ders)
sinav.save()
def __unicode__(self): def __unicode__(self):
return '%s %s' % (self.ad, self.kontenjan) return '%s %s' % (self.ad, self.kontenjan)
...@@ -391,7 +407,7 @@ class Sinav(Model): ...@@ -391,7 +407,7 @@ class Sinav(Model):
search_fields = ['aciklama', 'tarih'] search_fields = ['aciklama', 'tarih']
def __unicode__(self): def __unicode__(self):
return '%s %s' % (self.tarih, self.yapilacagi_yer) return '%s %s %s' % (self.get_tur_display(), self.ders, self.sube)
class DersProgrami(Model): class DersProgrami(Model):
...@@ -603,6 +619,10 @@ class OgrenciDersi(Model): ...@@ -603,6 +619,10 @@ class OgrenciDersi(Model):
list_fields = ['sube_dersi', 'alis_bicimi'] list_fields = ['sube_dersi', 'alis_bicimi']
search_fields = ['alis_bicimi', ] search_fields = ['alis_bicimi', ]
def pre_save(self):
self.donem = self.ders.donem
def sube_dersi(self): def sube_dersi(self):
""" """
Şubenin bağlı olduğu ders. Şubenin bağlı olduğu ders.
......
...@@ -376,7 +376,9 @@ class DersSubelendirme(CrudView): ...@@ -376,7 +376,9 @@ class DersSubelendirme(CrudView):
sube.kontenjan = s['kontenjan'] sube.kontenjan = s['kontenjan']
sube.dis_kontenjan = s['dis_kontenjan'] sube.dis_kontenjan = s['dis_kontenjan']
sube.ad = s['ad'] sube.ad = s['ad']
sube.donem = Donem.guncel_donem()
sube.save() sube.save()
sube.sube_sinavlarini_olustur()
if is_new: if is_new:
self.current.task_data['just_created'].append((ders, sube.key)) self.current.task_data['just_created'].append((ders, sube.key))
# mevcut subelerde kalanlari sil # mevcut subelerde kalanlari sil
......
...@@ -537,7 +537,7 @@ class KayitDondurma(CrudView): ...@@ -537,7 +537,7 @@ class KayitDondurma(CrudView):
self.current.output['msgbox'] = { self.current.output['msgbox'] = {
'type': 'warning', "title": 'Bir Hata Oluştu', 'type': 'warning', "title": 'Bir Hata Oluştu',
"msg": 'Hata Kodu : %s' % (e.message) "msg": 'Hata Kodu : %s' % e.message
} }
try: try:
...@@ -555,7 +555,7 @@ class KayitDondurma(CrudView): ...@@ -555,7 +555,7 @@ class KayitDondurma(CrudView):
self.current.output['msgbox'] = { self.current.output['msgbox'] = {
'type': 'warning', "title": 'Bir Hata Oluştu', 'type': 'warning', "title": 'Bir Hata Oluştu',
"msg": 'Öğrenci Rol Değişim Kaydı Başarısız. Hata Kodu : %s' % (e.message) "msg": 'Öğrenci Rol Değişim Kaydı Başarısız. Hata Kodu : %s' % e.message
} }
# öğrencinin danışmanına bilgilendirme geçilir # öğrencinin danışmanına bilgilendirme geçilir
...@@ -600,8 +600,9 @@ class BasariDurum(CrudView): ...@@ -600,8 +600,9 @@ class BasariDurum(CrudView):
ogrenci=ogrenci) ogrenci=ogrenci)
donemler = [d.donem for d in ogrenci_program.OgrenciDonem] donemler = [d.donem for d in ogrenci_program.OgrenciDonem]
donemler = sorted(donemler, key=lambda donem: donem.baslangic_tarihi) donemler = sorted(donemler, key=lambda donem: donem.baslangic_tarihi)
# donemler = ogrenci_program.tarih_sirasiyla_donemler()
donem_tablosu = [] donem_tablosu = list()
for donem in donemler: for donem in donemler:
donem_basari_durumu = [ donem_basari_durumu = [
...@@ -609,8 +610,9 @@ class BasariDurum(CrudView): ...@@ -609,8 +610,9 @@ class BasariDurum(CrudView):
] ]
ogrenci_dersler = OgrenciDersi.objects.filter(donem=donem, ogrenci_dersler = OgrenciDersi.objects.filter(donem=donem,
ogrenci_program=ogrenci_program) ogrenci_program=ogrenci_program)
dersler = [] dersler = list()
for d in ogrenci_dersler: for d in ogrenci_dersler:
dersler = list()
dersler.append(d.ders.ders.kod) dersler.append(d.ders.ders.kod)
dersler.append(d.sube_ders_adi()) dersler.append(d.sube_ders_adi())
degerlendirmeler = DegerlendirmeNot.objects.filter( degerlendirmeler = DegerlendirmeNot.objects.filter(
...@@ -631,10 +633,12 @@ class BasariDurum(CrudView): ...@@ -631,10 +633,12 @@ class BasariDurum(CrudView):
donem_tablosu.append( donem_tablosu.append(
{ {
"key": donem.ad, "key": donem.ad,
"selected": donem.guncel,
"objects": donem_basari_durumu "objects": donem_basari_durumu
} }
) )
self.output['objects'] = donem_tablosu self.output['objects'] = donem_tablosu
self.output['meta']['selective_listing'] = True self.output['meta']['selective_listing'] = True
self.output['meta']['selective_listing_title'] = "Dönem Seçiniz"
self.output['meta']['allow_actions'] = False self.output['meta']['allow_actions'] = False
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment