Example #1
0
    def terfisi_gelen_personel_liste(self):

        try:
            self.current.task_data["personeller"]
        except KeyError:
            personel_turu = self.current.input['form']['personel_turu']

            baslangic_tarihi = datetime.datetime.strptime(
                self.current.input['form']['baslangic_tarihi'], '%d.%m.%Y')
            bitis_tarihi = datetime.datetime.strptime(
                self.current.input['form']['bitis_tarihi'], '%d.%m.%Y')
            self.current.task_data["personeller"] = terfi_tarhine_gore_personel_listesi(
                baslangic_tarihi=baslangic_tarihi, bitis_tarihi=bitis_tarihi,
                personel_turu=personel_turu)

        if self.current.task_data["personeller"]:
            _form = TerfiForm(current=self.current, title=_(u"Terfi İşlemi"))
            _form.generate_form()

            _form.kaydet = fields.Button(_(u"Onaya Gönder"), cmd="onaya_gonder")
            _form.duzenle = fields.Button(_(u"Terfi Düzenle"), cmd="terfi_liste_duzenle")

            self.form_out(_form)
            self.current.output["meta"]["allow_actions"] = False
            self.current.output["meta"]["allow_add_listnode"] = False
        else:
            datetime.datetime.today()
            self.current.output['msgbox'] = {
                'type': 'info', "title": _(u'Terfi Bekleyen Personel Bulunamadı'),
                "msg": _(u'%(baslangic)s - %(bitis)s tarih aralığında terfi bekleyen personel bulunamadı.') % {
                    'baslangic': format_datetime(baslangic_tarihi),
                    'bitis': format_datetime(bitis_tarihi),
                }
            }
Example #2
0
    def goster(self):
        """
        AkademikTakvim modelinden kullanıcıya gösterilecek takvime erişir ve bir tablo
        halinde çıktıya ekler.

        Akademik Takvim öğelerinin (takvim etkinlikleri) sırlaması önemli olduğu için
        OrderedDict kullanılmıştır. Data bu sözlüğün içinde sıralandığı haliyle
        seriyalize edilir.

        AKADEMIK_TAKVIM_ETKINLIKLERI önceden tanımlanmış ve sıralanmış bir etkinlikler
        toplamıdır. AkademikTakvim modeli ile birlikte models.ogrenci modülü içinde
        sıralı olarak tanımlanmıştır. Örn::

            AKADEMIK_TAKVIM_ETKINLIKLERI = [
            ('1', 'Yeni Öğrenci Ön Kayıt'),
            ('2', 'Güz Dönem Başlangıcı'),
            ('3', 'Derslerin Acılması'),
            ('4', 'Subelendirme ve Ders Programının Ilan Edilmesi'),

            ...
            ('53', 'Yarıyıl Sınavı Not Giriş'),
            ('54', 'Yarıyıl Sınavı Notlarının Öğrenciye Yayınlanmasi'),
            ('55', 'Öğretim Elemanı Yoklama Girişi'),
            ]

        Kayıtların herbiri bu öğeler için belirli bir tarih veya tarih aralığına denk gelmektedir.

        """
        self.current.output['client_cmd'] = [
            'show',
        ]
        etkinlikler = []

        ogretim_yili = OgretimYili.objects.get(
            yil=Donem.guncel_donem().baslangic_tarihi.year)
        akademik_takvim = get_akademik_takvim(self.current.role.unit,
                                              ogretim_yili)

        for e in Takvim.objects.order_by().filter(
                akademik_takvim=akademik_takvim):
            etkinlik = OrderedDict({})
            etkinlik[_(u'Etkinlik')] = dict(AKADEMIK_TAKVIM_ETKINLIKLERI).get(
                str(e.etkinlik), '')
            etkinlik[_(u'Başlangıç')] = format_datetime(
                e.baslangic) if e.baslangic else ''
            etkinlik[_(u'Bitiş')] = format_datetime(e.bitis) if e.bitis else ''
            etkinlikler.append(etkinlik)

        # cikti multirow table seklindedir.
        self.output['object'] = {
            "type": "table-multiRow",
            "fields": etkinlikler
        }
Example #3
0
    def goster(self):
        """
        AkademikTakvim modelinden kullanıcıya gösterilecek takvime erişir ve bir tablo
        halinde çıktıya ekler.

        Akademik Takvim öğelerinin (takvim etkinlikleri) sırlaması önemli olduğu için
        OrderedDict kullanılmıştır. Data bu sözlüğün içinde sıralandığı haliyle
        seriyalize edilir.

        AKADEMIK_TAKVIM_ETKINLIKLERI önceden tanımlanmış ve sıralanmış bir etkinlikler
        toplamıdır. AkademikTakvim modeli ile birlikte models.ogrenci modülü içinde
        sıralı olarak tanımlanmıştır. Örn::

            AKADEMIK_TAKVIM_ETKINLIKLERI = [
            ('1', 'Yeni Öğrenci Ön Kayıt'),
            ('2', 'Güz Dönem Başlangıcı'),
            ('3', 'Derslerin Acılması'),
            ('4', 'Subelendirme ve Ders Programının Ilan Edilmesi'),

            ...
            ('53', 'Yarıyıl Sınavı Not Giriş'),
            ('54', 'Yarıyıl Sınavı Notlarının Öğrenciye Yayınlanmasi'),
            ('55', 'Öğretim Elemanı Yoklama Girişi'),
            ]

        Kayıtların herbiri bu öğeler için belirli bir tarih veya tarih aralığına denk gelmektedir.

        """
        self.current.output['client_cmd'] = ['show', ]
        etkinlikler = []

        ogretim_yili = OgretimYili.objects.get(yil=Donem.guncel_donem().baslangic_tarihi.year)
        akademik_takvim = get_akademik_takvim(self.current.role.unit, ogretim_yili)

        for e in Takvim.objects.filter(akademik_takvim=akademik_takvim):
            etkinlik = OrderedDict({})
            etkinlik[_(u'Etkinlik')] = dict(AKADEMIK_TAKVIM_ETKINLIKLERI).get(str(e.etkinlik), '')
            etkinlik[_(u'Başlangıç')] = format_datetime(e.baslangic) if e.baslangic else ''
            etkinlik[_(u'Bitiş')] = format_datetime(e.bitis) if e.bitis else ''
            etkinlikler.append(etkinlik)

        # cikti multirow table seklindedir.
        self.output['object'] = {
            "type": "table-multiRow",
            "fields": etkinlikler
        }
Example #4
0
        def etkinlik(de):
            """
            Ders etkinligi formatlar ve dondurur.

            :param de: ders etkinligi
            :return: ders adi ve zamani
            """
            aralik = format_datetime(de.tarih)
            return "\n\n**%s**\n%s\n\n" % (aralik, de.ders.ad)
Example #5
0
        def etkinlik(de):
            """
            Ders etkinligi formatlar ve dondurur.

            :param de: ders etkinligi
            :return: ders adi ve zamani
            """
            aralik = format_datetime(de.tarih)
            return "\n\n**%s**\n%s\n\n" % (aralik, de.ders.ad)
Example #6
0
    def terfisi_gelen_personel_liste(self):

        try:
            self.current.task_data["personeller"]
        except KeyError:
            personel_turu = self.current.input['form']['personel_turu']

            baslangic_tarihi = datetime.datetime.strptime(
                self.current.input['form']['baslangic_tarihi'], '%d.%m.%Y')
            bitis_tarihi = datetime.datetime.strptime(
                self.current.input['form']['bitis_tarihi'], '%d.%m.%Y')
            self.current.task_data[
                "personeller"] = terfi_tarhine_gore_personel_listesi(
                    baslangic_tarihi=baslangic_tarihi,
                    bitis_tarihi=bitis_tarihi,
                    personel_turu=personel_turu)

        if self.current.task_data["personeller"]:
            _form = TerfiForm(current=self.current, title=_(u"Terfi İşlemi"))
            _form.generate_form()

            _form.kaydet = fields.Button(_(u"Onaya Gönder"),
                                         cmd="onaya_gonder")
            _form.duzenle = fields.Button(_(u"Terfi Düzenle"),
                                          cmd="terfi_liste_duzenle")

            self.form_out(_form)
            self.current.output["meta"]["allow_actions"] = False
            self.current.output["meta"]["allow_add_listnode"] = False
        else:
            datetime.datetime.today()
            self.current.output['msgbox'] = {
                'type': 'info',
                "title": _(u'Terfi Bekleyen Personel Bulunamadı'),
                "msg":
                _(u'%(baslangic)s - %(bitis)s tarih aralığında terfi bekleyen personel bulunamadı.'
                  ) % {
                      'baslangic': format_datetime(baslangic_tarihi),
                      'bitis': format_datetime(bitis_tarihi),
                  }
            }
Example #7
0
def output_message(current):
    current.output['message'] = _(u'This is a translateable message.')
    current.output['lazy'] = MSG_LAZY
    current.output['untranslated'] = _(u'This message has not been translated.')
    current.output['singular'] = ngettext(u'One', u'Many', 1)
    current.output['plural'] = ngettext(u'One', u'Many', 50)
    marked_message = N_(u'This message is marked, but not translated yet.')
    current.output['marked'] = marked_message
    current.output['marked_translated'] = _(marked_message)
    current.output['datetime'] = format_datetime(datetime.datetime(2016, 7, 21, 17, 32))
    current.output['decimal'] = format_decimal(1.23456)
    current.output['second_day'] = get_day_names()[1]
Example #8
0
    def test_academic_calendar(self):
        """
        Adalet Meslek Yüksekokulu Öğrencisi rolüne sahip ogrenci_1 adlı kullanıcı giriş yaptığında,
        xxxxxxxxxxxxxx keyine sahip rektörlüğe ait akademik takvimi görmesi beklenir.
        Çünkü bölümüne veya fakültesine ait bir akademik takvim tanımlanmamıştır.

        Bu iş akışı ilk adımda rektörlüğe ait akademik takvim kayıtlarını listeler.

        Veritabanından çekilen akademik takvim kayıtlarının sayısı ile sunucudan dönen akademik takvim
        kayıtlarının sayısı karşılastırılıp test edilir.

        Akademik takvim kaydının nesnelerinden biri seçilir, seçilen nesnenin etkinliği, başlangıcı ve
        bitişi sunucudan dönen etkinlik, başlangıç ve bitiş kayıtlarıyla karşılaştırılıp test edilir.

        ogrenci_1 adlı kullanıcıya çıkış yaptırılır.

        Kamu Hukuku Bölümü öğrencisi rolüne sahip ogrenci_2 adlı kullanıcı giriş yaptığında, xxxxxxxxxx keyine sahip
        Kamu Hukuku Bölümü akademik takvimi görmesi beklenir.Çünkü kendi bölümüne ait tanımlı akademik takvim vardır.

        Bu iş akışı ilk adımda eğitim fakültesine ait akademik takvim kayıtlarını listeler.

        Veritabanından çekilen akademik takvim kayıtlarının sayısı ile sunucudan dönen akademik takvim
        kayıtlarının sayısı karşılastırılıp test edilir.

        Akademik takvim kaydının nesnelerinden biri seçilir, seçilen nesnenin etkinliği, başlangıcı ve
        bitişi sunucudan dönen etkinlik, başlangıç ve bitiş kayıtlarıyla karşılaştırılır.

        """
        def get_akademik_takvim(unit, ogretim_yili):
            try:
                akademik_takvim = AkademikTakvim.objects.get(
                    birim=unit, ogretim_yili=ogretim_yili)
                return akademik_takvim
            except ObjectDoesNotExist:
                parent_yoksis_no = unit.parent_unit_no
                birim = Unit.objects.get(yoksis_no=parent_yoksis_no)
                return get_akademik_takvim(birim, ogretim_yili)

        # Kullanıcıya login yaptırılır.
        self.prepare_client('/akademik_takvim', username='******')
        resp = self.client.post()

        # Veritabınından ogrenci_1 adlı kullanıcı seçilir.
        user = User.objects.get(username='******')

        # Rol'ün kayıtlı olduğu birim getirilir.
        unit = user.role_set[0].role.unit

        ogretim_yili = OgretimYili.objects.get(
            yil=Donem.guncel_donem().baslangic_tarihi.year)

        # Birimin kayıtlı olduğu akademik takvim kayıtlarını getirir.
        akademik_takvim = get_akademik_takvim(unit, ogretim_yili)

        # Sunucudan dönen akademik takvim kayıtları ile veritabanından çekilen akademik kayıtları
        # karşılaştırılıp test edilir
        assert len(akademik_takvim.etkinlikler()) == len(
            resp.json['object']['fields'])

        # Akademik takvim kaydının nesnelerinden biri seçilir.
        takvim = akademik_takvim.etkinlikler()[4]
        # Takvim kaydının etkinliğini getirir.
        etkinlik = takvim.etkinlik

        assert dict(AKADEMIK_TAKVIM_ETKINLIKLERI).get(str(etkinlik), '') == \
               resp.json['object']['fields'][4][
                   'Etkinlik']
        assert format_datetime(
            takvim.baslangic) == resp.json['object']['fields'][4][u'Başlangıç']
        assert format_datetime(
            takvim.bitis) == resp.json['object']['fields'][4][u'Bitiş']

        # Kullanıcıya çıkış yaptırılır.
        self.client.set_path('/logout')
        self.client.post()

        # Veritabınından ogrenci_2 adlı kullanıcı seçilir.
        usr = User.objects.get(username='******')
        time.sleep(1)

        # Kullanıcıya login yaptırılır.
        self.prepare_client('/akademik_takvim', user=usr)
        response = self.client.post()

        # Rol'ün kayıtlı olduğu birim getirilir.
        unit = usr.role_set[0].role.unit

        # Birimin kayıtlı olduğu akademik takvim kayıtını getirir.
        akademik_takvim = get_akademik_takvim(unit, ogretim_yili)

        # Sunucudan dönen akademik takvim kayıtları ile veritabanından çekilen akademik kayıtları
        # karşılaştırılıp test edilir.
        assert len(akademik_takvim.etkinlikler()) == len(
            response.json['object']['fields'])

        # Akademik takvim kaydının nesnelerinden biri seçilir.
        takvim = akademik_takvim.etkinlikler()[5]
        # Takvim kaydının etkinliğini getirir.
        etkinlik = takvim.etkinlik

        assert response.json['object']['fields'][5][u'Etkinlik'] == dict(
            AKADEMIK_TAKVIM_ETKINLIKLERI).get(str(etkinlik), '')
        assert response.json['object']['fields'][5][
            u'Başlangıç'] == format_datetime(takvim.baslangic)
        assert response.json['object']['fields'][5][
            u'Bitiş'] == format_datetime(takvim.bitis)
Example #9
0
 def sinav_zamani(self):
     return format_datetime(self.tarih) if self.tarih else _(u'Henüz zamanlanmadi')
    def test_academic_calendar(self):
        """
        Adalet Meslek Yüksekokulu Öğrencisi rolüne sahip ogrenci_1 adlı kullanıcı giriş yaptığında,
        xxxxxxxxxxxxxx keyine sahip rektörlüğe ait akademik takvimi görmesi beklenir.
        Çünkü bölümüne veya fakültesine ait bir akademik takvim tanımlanmamıştır.

        Bu iş akışı ilk adımda rektörlüğe ait akademik takvim kayıtlarını listeler.

        Veritabanından çekilen akademik takvim kayıtlarının sayısı ile sunucudan dönen akademik takvim
        kayıtlarının sayısı karşılastırılıp test edilir.

        Akademik takvim kaydının nesnelerinden biri seçilir, seçilen nesnenin etkinliği, başlangıcı ve
        bitişi sunucudan dönen etkinlik, başlangıç ve bitiş kayıtlarıyla karşılaştırılıp test edilir.

        ogrenci_1 adlı kullanıcıya çıkış yaptırılır.

        Kamu Hukuku Bölümü öğrencisi rolüne sahip ogrenci_2 adlı kullanıcı giriş yaptığında, xxxxxxxxxx keyine sahip
        Kamu Hukuku Bölümü akademik takvimi görmesi beklenir.Çünkü kendi bölümüne ait tanımlı akademik takvim vardır.

        Bu iş akışı ilk adımda eğitim fakültesine ait akademik takvim kayıtlarını listeler.

        Veritabanından çekilen akademik takvim kayıtlarının sayısı ile sunucudan dönen akademik takvim
        kayıtlarının sayısı karşılastırılıp test edilir.

        Akademik takvim kaydının nesnelerinden biri seçilir, seçilen nesnenin etkinliği, başlangıcı ve
        bitişi sunucudan dönen etkinlik, başlangıç ve bitiş kayıtlarıyla karşılaştırılır.

        """

        def get_akademik_takvim(unit, ogretim_yili):
            try:
                akademik_takvim = AkademikTakvim.objects.get(birim=unit, ogretim_yili=ogretim_yili)
                return akademik_takvim
            except ObjectDoesNotExist:
                parent_yoksis_no = unit.parent_unit_no
                birim = Unit.objects.get(yoksis_no=parent_yoksis_no)
                return get_akademik_takvim(birim, ogretim_yili)

        # Kullanıcıya login yaptırılır.
        self.prepare_client('/akademik_takvim', username='******')
        resp = self.client.post()

        # Veritabınından ogrenci_1 adlı kullanıcı seçilir.
        user = User.objects.get(username='******')

        # Rol'ün kayıtlı olduğu birim getirilir.
        unit = user.role_set[0].role.unit

        ogretim_yili = OgretimYili.objects.get(yil=Donem.guncel_donem().baslangic_tarihi.year)

        # Birimin kayıtlı olduğu akademik takvim kayıtlarını getirir.
        akademik_takvim = get_akademik_takvim(unit, ogretim_yili)

        # Sunucudan dönen akademik takvim kayıtları ile veritabanından çekilen akademik kayıtları
        # karşılaştırılıp test edilir
        assert len(akademik_takvim.etkinlikler()) == len(resp.json['object']['fields'])

        # Akademik takvim kaydının nesnelerinden biri seçilir.
        takvim = akademik_takvim.etkinlikler()[4]
        # Takvim kaydının etkinliğini getirir.
        etkinlik = takvim.etkinlik

        assert dict(AKADEMIK_TAKVIM_ETKINLIKLERI).get(str(etkinlik), '') == \
               resp.json['object']['fields'][4][
                   'Etkinlik']
        assert format_datetime(takvim.baslangic) == resp.json['object']['fields'][4][
            u'Başlangıç']
        assert format_datetime(takvim.bitis) == resp.json['object']['fields'][4][
            u'Bitiş']

        # Kullanıcıya çıkış yaptırılır.
        self.client.set_path('/logout')
        self.client.post()

        # Veritabınından ogrenci_2 adlı kullanıcı seçilir.
        usr = User.objects.get(username='******')
        time.sleep(1)

        # Kullanıcıya login yaptırılır.
        self.prepare_client('/akademik_takvim', user=usr)
        response = self.client.post()

        # Rol'ün kayıtlı olduğu birim getirilir.
        unit = usr.role_set[0].role.unit

        # Birimin kayıtlı olduğu akademik takvim kayıtını getirir.
        akademik_takvim = get_akademik_takvim(unit, ogretim_yili)

        # Sunucudan dönen akademik takvim kayıtları ile veritabanından çekilen akademik kayıtları
        # karşılaştırılıp test edilir.
        assert len(akademik_takvim.etkinlikler()) == len(response.json['object']['fields'])

        # Akademik takvim kaydının nesnelerinden biri seçilir.
        takvim = akademik_takvim.etkinlikler()[5]
        # Takvim kaydının etkinliğini getirir.
        etkinlik = takvim.etkinlik

        assert response.json['object']['fields'][5][u'Etkinlik'] == dict(
            AKADEMIK_TAKVIM_ETKINLIKLERI).get(
            str(etkinlik), '')
        assert response.json['object']['fields'][5][u'Başlangıç'] == format_datetime(takvim.baslangic)
        assert response.json['object']['fields'][5][u'Bitiş'] == format_datetime(takvim.bitis)