def donem_kontrol(self): """ Seçilen ay ve yıla ait dönem olup olmadığını kontrol eder. """ secilen_ay = self.input['form']['ay_sec'] self.current.task_data["yil"] = self.input['form']['yil_sec'] self.current.task_data["ay"] = secilen_ay # guncel olan ayın ismi getirilir. self.current.task_data["ay_isim"] = dict(AYLAR).get(secilen_ay) # TODO: aktif donem ve oncesine rastlayan donem varmi diye kontrol etmeliyiz. donem_list = Donem.takvim_ayina_rastlayan_donemler(self.current.task_data["yil"], self.current.task_data["ay"]) self.current.task_data['donem_sayi'] = True if donem_list else False
def donem_kontrol(self): """ Seçilen ay ve yıla ait dönem olup olmadığını kontrol eder. """ secilen_ay = self.input['form']['ay_sec'] self.current.task_data["yil"] = self.input['form']['yil_sec'] self.current.task_data["ay"] = secilen_ay # guncel olan ayın ismi getirilir. self.current.task_data["ay_isim"] = dict(AYLAR).get(secilen_ay) # TODO: aktif donem ve oncesine rastlayan donem varmi diye kontrol etmeliyiz. donem_list = Donem.takvim_ayina_rastlayan_donemler( self.current.task_data["yil"], self.current.task_data["ay"]) self.current.task_data['donem_sayi'] = True if donem_list else False
def donem_kontrol(self): """ Seçilen ay ve yıla ait dönem olup olmadığını kontrol eder. """ self.current.task_data["yil"] = YIL[self.input['form']['yil_sec']][1] self.current.task_data["ay"] = self.input['form']['ay_sec'] # guncel olan ayın ismi getirilir. self.current.task_data["ay_isim"] = AYLAR[self.input['form']['ay_sec'] - 1][1] takvim = calendar.monthrange(self.current.task_data["yil"], self.current.task_data["ay"]) donem_list = Donem.takvim_ayina_rastlayan_donemler(self.current.task_data["yil"], self.current.task_data["ay"], takvim) if len(donem_list) > 0: self.current.task_data['donem_sayi'] = True else: self.current.task_data['donem_sayi'] = False
def resmi_tatil_gunleri_getir(birim_unit, yil, ay): from ulakbus.models.ogrenci import Takvim, Donem from ulakbus.lib.common import get_akademik_takvim baslangic, bitis = yil_ve_aya_gore_ilk_ve_son_gun(yil, ay) resmi_tatil_list = [] donem_list = Donem.takvim_ayina_rastlayan_donemler(yil, ay) for donem in donem_list: akademik_takvim = get_akademik_takvim(birim_unit, donem.ogretim_yili) tatil_list = [] for resmi_tatil in Takvim.objects.filter( akademik_takvim=akademik_takvim, resmi_tatil=True, baslangic__gte=baslangic, bitis__lte=bitis ): for gun in zaman_araligi(resmi_tatil.baslangic, resmi_tatil.bitis): tatil_list.append(gun.day) resmi_tatil_list.append(tatil_list) return resmi_tatil_list
def resmi_tatil_gunleri_getir(birim_unit, yil, ay): from ulakbus.models.ogrenci import Takvim, Donem from ulakbus.lib.common import get_akademik_takvim baslangic, bitis = yil_ve_aya_gore_ilk_ve_son_gun(yil, ay) resmi_tatil_list = [] donem_list = Donem.takvim_ayina_rastlayan_donemler(yil, ay) for donem in donem_list: akademik_takvim = get_akademik_takvim(birim_unit, donem.ogretim_yili) tatil_list = [] for resmi_tatil in Takvim.objects.filter( akademik_takvim=akademik_takvim, resmi_tatil=True, baslangic__gte=baslangic, bitis__lte=bitis): for gun in zaman_araligi(resmi_tatil.baslangic, resmi_tatil.bitis): tatil_list.append(gun.day) resmi_tatil_list.append(tatil_list) return resmi_tatil_list
def donem_kontrol(self): """ Seçilen ay ve yıla ait dönem olup olmadığını kontrol eder. """ self.current.task_data["yil"] = YIL[self.input['form']['yil_sec']][1] self.current.task_data["ay"] = self.input['form']['ay_sec'] # guncel olan ayın ismi getirilir. self.current.task_data["ay_isim"] = AYLAR[self.input['form']['ay_sec'] - 1][1] takvim = calendar.monthrange(self.current.task_data["yil"], self.current.task_data["ay"]) donem_list = Donem.takvim_ayina_rastlayan_donemler( self.current.task_data["yil"], self.current.task_data["ay"], takvim) if len(donem_list) > 0: self.current.task_data['donem_sayi'] = True else: self.current.task_data['donem_sayi'] = False
def ucret_hesapla(self): """ Seçilen ay ve yıla göre, seçilen her bir öğretim elemanının resmi tatil ve izinleri dikkate alarak aylık ders saati planlamasını yapar """ # Ders seçim türüne göre ayarlamalar yapılır. ek_ders, ders_turu = ( True, 'Ek') if self.input['form']['ek_ders'] == 1 else (False, '') yil = self.current.task_data["yil"] # girilen yil ay = self.current.task_data["ay"] # girilen ayin orderi ay_isim = self.current.task_data["ay_isim"] # ayin adi # verilen ayın son gunu bulunur 28,31 gibi ilk, son = yil_ve_aya_gore_ilk_ve_son_gun(yil, ay) ayin_son_gunu = son.day birim_unit = self.current.role.unit # Secilen ay hangi donemleri kapsiyor, kac donemi kapsıyorsa # o donemleri dondürür. donem_list = Donem.takvim_ayina_rastlayan_donemler(yil, ay) # Resmi tatillerin gununu (23, 12, 8) gibi döndürür. resmi_tatil_list = resmi_tatil_gunleri_getir(birim_unit, yil, ay) # Kapsadığı dönemlere göre ders baslangıc ve bitis tarihlerini # baz alarak kapsadığı her bir dönemin seçilen ayda hangi gün # aralıklarını kapsadığı bilgisini tuple olarak dondurur. Bir # dönemi kapsıyorsa bir tuple, iki dönemi kapsıyorsa iki tuple # döner. (1,12) (19,31) gibi tarih_araligi = ders_etkinligine_gore_tarih_araligi( donem_list, yil, ay, birim_unit) table_head = ['Öğretim Elemanı'] table_head.extend([str(d) for d in range(1, ayin_son_gunu + 1)]) table_head.append('Toplam') self.output['objects'] = [table_head] # Seçilen okutmanların bulunmaması demek, title = _( u"%(baslik)s %(yil)s-%(ay)s AYI %(ders)s DERS PUANTAJ TABLOSU") % { 'baslik': self.current.task_data["title"], 'yil': yil, 'ay': ay_isim.upper(), 'ders': ders_turu.upper(), } _form = PuantajFormu(title=title) self.form_out(_form) for secilen_okutman in self.current.task_data["secilen_okutmanlar"]: okutman = Okutman.objects.get(secilen_okutman['key']) # Seçilen okutmanın İzin ve Ücretsiz İzinlerini dikkate alarak, verilen ayda # hangi günler izinli olduğunu liste halinde döndürmeye yarayan method # [17,18,19] gibi personel_izin_list = personel_izin_gunlerini_getir( okutman, yil, ay) # Verilen döneme ve okutmana göre, haftada hangi gün kaç saat dersi # (seçilen seçeneğe göre ders veya ek ders) olduğunu gösteren # dictionarylerden oluşan liste, seçilen yıl ve ay bir dönemi kapsıyorsa # bir dict, iki dönemi kapsıyorsa iki dict döner. ders_etkinlik_list = doneme_gore_okutman_etkinlikleri( donem_list, okutman, ek_ders) # Bulunan tarih araliklarina, okutmanın aylık ders etkinliklerine göre # ayın hangi gününde dersi varsa kaç saat dersi olduğu bilgisi, # izinliyse İ, resmi tatilse R bilgisini bir dictionary e doldurur. okutman_aylik_plan, ders_saati = okutman_aylik_plani( donem_list, ders_etkinlik_list, resmi_tatil_list, personel_izin_list, tarih_araligi, yil, ay) # Okutmanın oluşturulan bilgilerinin ekrana basılacağı şeklinin oluşturulması okutman_bilgi_listesi = okutman_bilgileri_doldur( okutman, ayin_son_gunu, okutman_aylik_plan, ders_saati) item = { "type": "table-multiRow", "fields": okutman_bilgi_listesi, "actions": False, } self.output['objects'].append(item)
def ucret_hesapla(self): """ Seçilen ay ve yıla göre, seçilen her bir öğretim elemanının resmi tatil ve izinleri dikkate alarak aylık ders saati planlamasını yapar """ # Ders seçim türüne göre ayarlamalar yapılır. ek_ders, ders_turu = (True, 'Ek') if self.input['form']['ek_ders'] == 1 else (False, '') yil = self.current.task_data["yil"] # girilen yil ay = self.current.task_data["ay"] # girilen ayin orderi ay_isim = self.current.task_data["ay_isim"] # ayin adi # verilen ayın son gunu bulunur 28,31 gibi ilk, son = yil_ve_aya_gore_ilk_ve_son_gun(yil, ay) ayin_son_gunu = son.day birim_unit = self.current.role.unit # Secilen ay hangi donemleri kapsiyor, kac donemi kapsıyorsa # o donemleri dondürür. donem_list = Donem.takvim_ayina_rastlayan_donemler(yil, ay) # Resmi tatillerin gununu (23, 12, 8) gibi döndürür. resmi_tatil_list = resmi_tatil_gunleri_getir(birim_unit, yil, ay) # Kapsadığı dönemlere göre ders baslangıc ve bitis tarihlerini # baz alarak kapsadığı her bir dönemin seçilen ayda hangi gün # aralıklarını kapsadığı bilgisini tuple olarak dondurur. Bir # dönemi kapsıyorsa bir tuple, iki dönemi kapsıyorsa iki tuple # döner. (1,12) (19,31) gibi tarih_araligi = ders_etkinligine_gore_tarih_araligi(donem_list, yil, ay, birim_unit) table_head = ['Öğretim Elemanı'] table_head.extend([str(d) for d in range(1, ayin_son_gunu + 1)]) table_head.append('Toplam') self.output['objects'] = [table_head] # Seçilen okutmanların bulunmaması demek, title = _(u"%(baslik)s %(yil)s-%(ay)s AYI %(ders)s DERS PUANTAJ TABLOSU") % { 'baslik': self.current.task_data["title"], 'yil': yil, 'ay': ay_isim.upper(), 'ders': ders_turu.upper(), } _form = PuantajFormu(title=title) self.form_out(_form) for secilen_okutman in self.current.task_data["secilen_okutmanlar"]: okutman = Okutman.objects.get(secilen_okutman['key']) # Seçilen okutmanın İzin ve Ücretsiz İzinlerini dikkate alarak, verilen ayda # hangi günler izinli olduğunu liste halinde döndürmeye yarayan method # [17,18,19] gibi personel_izin_list = personel_izin_gunlerini_getir(okutman, yil, ay) # Verilen döneme ve okutmana göre, haftada hangi gün kaç saat dersi # (seçilen seçeneğe göre ders veya ek ders) olduğunu gösteren # dictionarylerden oluşan liste, seçilen yıl ve ay bir dönemi kapsıyorsa # bir dict, iki dönemi kapsıyorsa iki dict döner. ders_etkinlik_list = doneme_gore_okutman_etkinlikleri(donem_list, okutman, ek_ders) # Bulunan tarih araliklarina, okutmanın aylık ders etkinliklerine göre # ayın hangi gününde dersi varsa kaç saat dersi olduğu bilgisi, # izinliyse İ, resmi tatilse R bilgisini bir dictionary e doldurur. okutman_aylik_plan, ders_saati = okutman_aylik_plani(donem_list, ders_etkinlik_list, resmi_tatil_list, personel_izin_list, tarih_araligi, yil, ay) # Okutmanın oluşturulan bilgilerinin ekrana basılacağı şeklinin oluşturulması okutman_bilgi_listesi = okutman_bilgileri_doldur(okutman, ayin_son_gunu, okutman_aylik_plan, ders_saati) item = { "type": "table-multiRow", "fields": okutman_bilgi_listesi, "actions": False, } self.output['objects'].append(item)
def ucret_hesapla(self): """ Seçilen ay ve yıla göre, seçilen her bir öğretim elemanının resmi tatil ve izinleri dikkate alarak aylık ders saati planlamasını yapar """ okutman_personel = Personel.objects.get(user=self.current.user) okutman = Okutman.objects.get(personel=okutman_personel) okutman_adi = okutman.ad + ' ' + okutman.soyad yil = self.current.task_data["yil"] # girilen yil ay = self.current.task_data["ay"] # girilen ayin orderi ay_isim = self.current.task_data["ay_isim"] # ayin adi takvim = calendar.monthrange(yil, ay) # verilen yıl ve aya göre tuple şeklinde ayın ilk gününü # ve ayın kaç gün sürdüğü bilgisini döndürür. # Ayın ilk günü = 0-6 Pazt-Pazar # 2016 yılı Temmuz ayı için = (4,31) birim_no = self.current.role.unit.yoksis_no # rolden gelecek birim_unit = Unit.objects.get(yoksis_no=birim_no) # Secilen ay hangi donemleri kapsiyor, kac donemi kapsıyorsa # o donemleri dondürür. donem_list = Donem.takvim_ayina_rastlayan_donemler(yil, ay, takvim) # Resmi tatilerin gununu (23, 12, 8) gibi ve doneme gore akademik takvim donduruyor resmi_tatil_list, akademik_takvim_list = Takvim.resmi_tatil_gunleri_getir(donem_list, birim_unit, yil, ay) # Kapsadığı dönemlere göre ders baslangıc ve bitis tarihlerini # baz alarak kapsadığı her bir dönemin seçilen ayda hangi gün # aralıklarını kapsadığı bilgisini tuple olarak dondurur. Bir # dönemi kapsıyorsa bir tuple, iki dönemi kapsıyorsa iki tuple # döner. (4,12) (19,31) gibi tarih_araligi = DU.donem_aralik_dondur(donem_list, yil, ay, takvim, akademik_takvim_list) object_list = ['Öğretim Elemanı'] tarih_list = list(range(1, takvim[1] + 1)) for tarih in tarih_list: object_list.append(' ' + str(tarih)) # object_list = ['Ogretim Elemani', 'bir', 'iki', 'uc'] _form = JsonForm(current=self.current) kontrol = self.current.task_data["control"] if kontrol: _form.title = _(u"%(ad)s - %(birim)s %(yil)s-%(ay)s AYI DERS PUANTAJ TABLOSU") % { 'ad': okutman_adi.upper(), 'birim': birim_unit.name, 'yil': yil, 'ay': ay_isim.upper()} ders_saati_turu = _(u'Ders Saati') else: _form.title = _(u"%s - %s %s-%s AYI EK DERS PUANTAJ TABLOSU") % ( okutman_adi.upper(), birim_unit.name, yil, ay_isim.upper()) ders_saati_turu = _(u'Ek Ders Saati') object_list.append(ders_saati_turu) self.output['objects'] = [object_list] data_list = OrderedDict({}) # Seçilen okutmanın İzin ve Ücretsiz İzinlerini dikkate alarak, verilen ayda # hangi günler izinli olduğunu liste halinde döndürmeye yarayan method # [17,18,19] gibi personel_izin_list = Izin.personel_izin_gunlerini_getir(okutman, yil, ay) # Verilen döneme ve okutmana göre, haftada hangi gün kaç saat dersi # (seçilen seçeneğe göre ders veya ek ders) olduğunu gösteren # dictionarylerden oluşan liste, seçilen yıl ve ay bir dönemi kapsıyorsa # bir dict, iki dönemi kapsıyorsa iki dict döner. ders_etkinlik_list = DU.okutman_etkinlikleri_hesaplama(donem_list, okutman, kontrol) # Bulunan tarih araliklarina, okutmanın aylık ders etkinliklerine göre # ayın hangi gününde dersi varsa kaç saat dersi olduğu bilgisi, # izinliyse İ, resmi tatilse R bilgisini bir dictionary e doldurur. okutman_aylik_plan, ders_saati = DU.ders_saati_doldur(donem_list, ders_etkinlik_list, resmi_tatil_list, personel_izin_list, tarih_araligi, yil, ay) data_list['Öğretim Elemanı'] = okutman_adi for gun in range(1, takvim[1] + 1): if gun in okutman_aylik_plan: data_list[' ' + str(gun)] = str(okutman_aylik_plan[gun]) else: data_list[' ' + str(gun)] = ' ' data_list[ders_saati_turu] = str(ders_saati) item = { "type": "table-multiRow", "fields": data_list, "actions": False, 'key': okutman.key } self.output['objects'].append(item) _form.pdf_sec = fields.Button(_(u"Pdf Çıkar")) _form.help_text = _(u""" R: Resmi Tatil İ: İzinli""") self.form_out(_form)
def ucret_hesapla(self): """ Seçilen ay ve yıla göre, seçilen her bir öğretim elemanının resmi tatil ve izinleri dikkate alarak aylık ders saati planlamasını yapar """ okutman_personel = Personel.objects.get(user=self.current.user) okutman = Okutman.objects.get(personel=okutman_personel) okutman_adi = okutman.ad + ' ' + okutman.soyad yil = self.current.task_data["yil"] # girilen yil ay = self.current.task_data["ay"] # girilen ayin orderi ay_isim = self.current.task_data["ay_isim"] # ayin adi takvim = calendar.monthrange(yil, ay) # verilen yıl ve aya göre tuple şeklinde ayın ilk gününü # ve ayın kaç gün sürdüğü bilgisini döndürür. # Ayın ilk günü = 0-6 Pazt-Pazar # 2016 yılı Temmuz ayı için = (4,31) birim_no = self.current.role.unit.yoksis_no # rolden gelecek birim_unit = Unit.objects.get(yoksis_no=birim_no) # Secilen ay hangi donemleri kapsiyor, kac donemi kapsıyorsa # o donemleri dondürür. donem_list = Donem.takvim_ayina_rastlayan_donemler(yil, ay, takvim) # Resmi tatilerin gununu (23, 12, 8) gibi ve doneme gore akademik takvim donduruyor resmi_tatil_list, akademik_takvim_list = Takvim.resmi_tatil_gunleri_getir( donem_list, birim_unit, yil, ay) # Kapsadığı dönemlere göre ders baslangıc ve bitis tarihlerini # baz alarak kapsadığı her bir dönemin seçilen ayda hangi gün # aralıklarını kapsadığı bilgisini tuple olarak dondurur. Bir # dönemi kapsıyorsa bir tuple, iki dönemi kapsıyorsa iki tuple # döner. (4,12) (19,31) gibi tarih_araligi = DU.donem_aralik_dondur(donem_list, yil, ay, takvim, akademik_takvim_list) object_list = ['Öğretim Elemanı'] tarih_list = list(range(1, takvim[1] + 1)) for tarih in tarih_list: object_list.append(' ' + str(tarih)) # object_list = ['Ogretim Elemani', 'bir', 'iki', 'uc'] _form = JsonForm(current=self.current) kontrol = self.current.task_data["control"] if kontrol: _form.title = _( u"%(ad)s - %(birim)s %(yil)s-%(ay)s AYI DERS PUANTAJ TABLOSU" ) % { 'ad': okutman_adi.upper(), 'birim': birim_unit.name, 'yil': yil, 'ay': ay_isim.upper() } ders_saati_turu = _(u'Ders Saati') else: _form.title = _(u"%s - %s %s-%s AYI EK DERS PUANTAJ TABLOSU") % ( okutman_adi.upper(), birim_unit.name, yil, ay_isim.upper()) ders_saati_turu = _(u'Ek Ders Saati') object_list.append(ders_saati_turu) self.output['objects'] = [object_list] data_list = OrderedDict({}) # Seçilen okutmanın İzin ve Ücretsiz İzinlerini dikkate alarak, verilen ayda # hangi günler izinli olduğunu liste halinde döndürmeye yarayan method # [17,18,19] gibi personel_izin_list = Izin.personel_izin_gunlerini_getir( okutman, yil, ay) # Verilen döneme ve okutmana göre, haftada hangi gün kaç saat dersi # (seçilen seçeneğe göre ders veya ek ders) olduğunu gösteren # dictionarylerden oluşan liste, seçilen yıl ve ay bir dönemi kapsıyorsa # bir dict, iki dönemi kapsıyorsa iki dict döner. ders_etkinlik_list = DU.okutman_etkinlikleri_hesaplama( donem_list, okutman, kontrol) # Bulunan tarih araliklarina, okutmanın aylık ders etkinliklerine göre # ayın hangi gününde dersi varsa kaç saat dersi olduğu bilgisi, # izinliyse İ, resmi tatilse R bilgisini bir dictionary e doldurur. okutman_aylik_plan, ders_saati = DU.ders_saati_doldur( donem_list, ders_etkinlik_list, resmi_tatil_list, personel_izin_list, tarih_araligi, yil, ay) data_list['Öğretim Elemanı'] = okutman_adi for gun in range(1, takvim[1] + 1): if gun in okutman_aylik_plan: data_list[' ' + str(gun)] = str(okutman_aylik_plan[gun]) else: data_list[' ' + str(gun)] = ' ' data_list[ders_saati_turu] = str(ders_saati) item = { "type": "table-multiRow", "fields": data_list, "actions": False, 'key': okutman.key } self.output['objects'].append(item) _form.pdf_sec = fields.Button(_(u"Pdf Çıkar")) _form.help_text = _(u""" R: Resmi Tatil İ: İzinli""") self.form_out(_form)