示例#1
0
文件: bap.py 项目: zetaops/ulakbus
class BAPSatinAlma(Model):
    class Meta:
        verbose_name = __(u"Bütçe Kalemi Satın Alma")
        verbose_name_plural = __(u"Bütçe Kalemi Satın Almaları")
        list_fields = ['ad', 'teklife_acilma_tarihi', 'teklife_kapanma_tarihi']

    ad = field.String(__(u"Satın Alma Duyuru Adı"))
    teklife_acilma_tarihi = field.DateTime(__(u"Teklife Açılma Tarihi"))
    teklife_kapanma_tarihi = field.DateTime(__(u"Teklife Kapanma Tarihi"))
    sonuclanma_tarihi = field.Date(__(u"Teklifin Sonuçlanma Tarihi"))
    onay_tarih_sayi = field.String(__(u"Onay Tarih/Sayı"))
    ekleyen = Personel()
    aciklama = field.Text(__(u"Açıklama"))
    teklif_durum = field.Integer(__(u"Teklif Durum"),
                                 choices='bap_satin_alma_durum')
    ilgili_proje = BAPProje()
    tek_firma = BAPFirma()
    tur = field.Integer(_(u"Satın Alma Türü"),
                        choices='bap_satin_alma_turleri')
    duyuruda = field.Boolean(_(u"Duyuru Durumu"), default=False)
    sorumlu = Role()
    duyuruda = field.Boolean(__(u"Duyurulma Durumu"), default=False)

    class ButceKalemleri(ListNode):
        butce = BAPButcePlani()

    def __unicode__(self):
        return "%s" % self.ad
示例#2
0
class PersonelEkleForm(JsonForm):
    class Meta:
        title = _(u"Personel Seç")

    personel = Personel()
    personel_ekle = fields.Button(_(u"Ekle"), cmd='ekle')
    iptal = fields.Button(_(u"İptal"))
示例#3
0
文件: bap.py 项目: zetaops/ulakbus
    class ArastirmaOlanaklari(ListNode):
        class Meta:
            verbose_name = __(u"Araştırma Olanağı")
            verbose_name_plural = __(u"Araştırma Olanakları")

        lab = Room()
        demirbas = Demirbas()
        personel = Personel()
示例#4
0
class DemirbasRezervasyon(Model):
    rezerve_eden = Personel()
    rezervasyon_baslama_tarihi = field.Date(_(u"Rezervasyon Başlama Tarihi"),
                                            format=DATE_DEFAULT_FORMAT)
    rezervasyon_bitis_tarihi = field.Date(_(u"Rezervasyon Başlama Tarihi"),
                                          format=DATE_DEFAULT_FORMAT)
    rezerve_edilen_demirbas = Demirbas()

    class Meta:
        app = 'Genel'
        verbose_name = _(u"Rezerve Bilgileri")
        verbose_name_plural = _(u"Rezerve Bilgileri")
        list_fields = [
            'rezerve_eden', 'rezervasyon_baslama_tarihi',
            'rezervasyon_bitis_tarihi'
        ]
        search_fields = [
            'rezerve_eden', 'rezervasyon_baslama_tarihi',
            'rezervasyon_bitis_tarihi'
        ]
示例#5
0
class AkademikFaaliyet(Model):
    """
    Akademik Faalyet bilgilerinin saklandigi model
    """
    tur = AkademikFaaliyetTuru(__(u"Faaliyet Tipi"))
    ad = String(__(u"Faaliyet Adı"))
    baslama = Date(__(u"Başlama Tarihi"), format="%d.%m.%Y")
    bitis = Date(__(u"Bitiş Tarihi"), format="%d.%m.%Y")
    durum = Integer(__(u"Durum"), choices='akademik_faaliyet_durum', required=False, default=1)
    kac_kisiyle_yapildi = Integer(__(u"Kaç kişiyle yapıldığı"), required=False)
    gorev = String(__(u"Görev"), required=False)
    personel = Personel()

    class Meta:
        app = 'Personel'
        verbose_name = _(u"Akademik Faaliyet")
        verbose_name_plural = _(u"Akademik Faaliyetler")
        list_fields = ['ad', 'baslama', 'bitis', 'durum']
        search_fields = ['ad', ]

    def __unicode__(self):
        return _(u"%(ad)s %(tur)s") % {'ad': self.ad, 'tur': self.tur}
示例#6
0
class Demirbas(Model):
    ad = field.String(_(u"Adı"))
    tur = field.String(_(u"Türü"), required=False)
    url = field.String(_(u"Url"), required=False)
    olculer = field.String(_(u"Ölçüler"), required=False)
    yeri = field.String(_(u"Yeri"), required=False)
    muhasebe_kodu = field.String(_(u"Muhasebe Kodu"), required=False)
    kurum_kodu = field.String(_(u"Kurum Kodu"), required=False)

    demirbas_no = field.String(_(u"Demirbas Numarası"))
    satin_alindigi_proje = field.String(_(u"Satın Alındığı Proje"),
                                        required=False)
    satin_alinma_tarihi = field.Date(_(u"Satın Alınma Tarihi"))
    teslim_alinma_tarihi = field.Date(_(u"Teslim Alınma Tarihi"))
    satin_alinma_fiyati = field.Float(_(u"Maliyet"))
    teknik_ozellikler = field.Text(_(u"Teknik Özellikler"), required=False)

    # virgülle ayrılacak
    etiketler = field.String(_(u"Etiketler"), required=False)
    marka = field.String(_(u"Marka"), required=False)
    model = field.String(_(u"Model"), required=False)
    durum = field.Integer(_(u"Durum"), choices='demirbas_durum')
    birim = Unit(_(u"Birim"), required=False)
    sorumlu = Personel()
    notlar = field.Text(_(u"Notlar"), required=False)

    class Meta:
        app = 'Genel'
        verbose_name = _(u"Demirbaş")
        verbose_name_plural = _(u"Demirbaşlar")
        list_fields = [
            'ad', 'tur', 'demirbas_no', 'satin_alinma_tarihi',
            'teslim_alinma_tarihi', 'rezervasyonlar'
        ]
        search_fields = [
            'ad', 'tur', 'etiketler', 'marka', 'model', 'demirbas_no'
        ]

    def __unicode__(self):
        return _(u"%(ad)s") % {'ad': self.ad}

    def rezervasyonlar(self):
        rezervasyonlar = DemirbasRezervasyon.objects.filter(
            rezerve_edilen_demirbas_id=self.key)

        onceki_rezervasyonlar = []

        simdi = datetime.now().date()

        if not rezervasyonlar:
            onceki_rezervasyonlar.append(
                _(u"Bu demirbaşa ait rezervasyon bulunmamaktadır."))
        else:
            for rez in rezervasyonlar:
                onceki_rezervasyonlar.append(
                    "(%s - %s) - %s" %
                    (datetime.strftime(rez.rezervasyon_baslama_tarihi,
                                       DATE_DEFAULT_FORMAT),
                     datetime.strftime(rez.rezervasyon_bitis_tarihi,
                                       DATE_DEFAULT_FORMAT), rez.rezerve_eden))
                if rez.rezervasyon_baslama_tarihi < simdi < rez.rezervasyon_bitis_tarihi:
                    self.durum = 2
                    self.blocking_save()
        return "\n".join(onceki_rezervasyonlar) if len(onceki_rezervasyonlar) > 1 else \
            onceki_rezervasyonlar[0]

    rezervasyonlar.title = _(u"Rezervasyonlar")
示例#7
0
文件: bap.py 项目: zetaops/ulakbus
class BAPProje(Model):
    durum = field.Integer(_(u"Durum"), choices='bap_proje_durum')
    basvuru_rolu = Role()

    # Komisyon kararıyla doldurulacak alanlar
    proje_no = field.Integer(_(u"Proje No"))
    kabul_edilen_baslama_tarihi = field.Date(_(u"Kabul Edilen Başlama Tarihi"))
    kabul_edilen_butce = field.Float(_(u"Kabul Edilen Bütçe"))

    # Başvuruda doldurulacak alanlar
    yurutucu = Okutman()
    gerceklestirme_gorevlisi = Personel()
    harcama_yetkilisi = Personel()
    muhasebe_yetkilisi = Personel()

    tur = BAPProjeTurleri()

    ad = field.String(_(u"Proje Adı"))
    sure = field.Integer(_(u"Süre(Ay Cinsinden Olmalıdır)"))
    anahtar_kelimeler = field.String(
        _(u"Anahtar Kelimeler(Virgülle Ayrılmış Şekilde Olmalıdır)"))
    teklif_edilen_baslama_tarihi = field.Date(
        _(u"Teklif Edilen Başlama Tarihi"))
    teklif_edilen_butce = field.Float(_(u"Teklif Edilen Bütçe"))
    butce_fazlaligi = field.Float(_(u"Bütçe Fazlalığı"), default=0.0)

    konu_ve_kapsam = field.Text(_(u"Konu ve Kapsam"),
                                min_length=650,
                                max_length=1000)
    literatur_ozeti = field.Text(_(u"Literatür Özeti"),
                                 min_length=650,
                                 max_length=1000)
    ozgun_deger = field.Text(_(u"Özgün Değer"),
                             min_length=650,
                             max_length=1000)
    hedef_ve_amac = field.Text(_(u"Hedef ve Amaç"),
                               min_length=650,
                               max_length=1000)
    yontem = field.Text(_(u"Yöntem"), min_length=650, max_length=1000)
    basari_olcutleri = field.Text(_(u"Başarı Ölçütleri"),
                                  min_length=650,
                                  max_length=1000)
    b_plani = field.Text(_(u"B Planı"), min_length=650, max_length=1000)

    bitis_tarihi = field.Date(_(u"Tamamlanma Tarihi"))

    yurutucu_talep = field.String(__(u"Yürütücü Değişikliği Talebi"),
                                  hidden=True,
                                  required=False)
    komisyon_uyesi = Role(__(u"Komisyon Üyesi"), hidden=True)
    talep_uygunlugu = field.Boolean(__(u"Talep Uygunluğu"),
                                    hidden=True,
                                    default=True)

    class ProjeBelgeleri(ListNode):
        class Meta:
            verbose_name = __(u"Proje Belgesi")
            verbose_name_plural = __(u"Proje Belgeleri")

        belge = field.File(_(u"Belge"), random_name=True)
        belge_aciklamasi = field.String(_(u"Belge Açıklaması"), required=False)

    class ArastirmaOlanaklari(ListNode):
        class Meta:
            verbose_name = __(u"Araştırma Olanağı")
            verbose_name_plural = __(u"Araştırma Olanakları")

        lab = Room()
        demirbas = Demirbas()
        personel = Personel()

    class ProjeCalisanlari(ListNode):
        class Meta:
            verbose_name = __(u"Proje Çalışanı")
            verbose_name_plural = __(u"Proje Çalışanları")

        ad = field.String(_(u"Ad"))
        soyad = field.String(_(u"Soyad"))
        nitelik = field.String(_(u"Nitelik"))
        calismaya_katkisi = field.String(_(u"Çalışmaya Katkısı"))
        kurum = field.String(_(u"Kurum"))

    class UniversiteDisiUzmanlar(ListNode):
        class Meta:
            verbose_name = __(u"Üniversite Dışı Uzman")
            verbose_name_plural = __(u"Üniversite Dışı Uzmanlar")

        ad = field.String(_(u"Ad"))
        soyad = field.String(_(u"Soyad"))
        unvan = field.String(_(u"Unvan"))
        kurum = field.String(_(u"Kurum"))
        tel = field.String(_(u"Telefon"))
        faks = field.String(_(u"Faks"))
        eposta = field.String(_(u"E-posta"))

    class UniversiteDisiDestek(ListNode):
        class Meta:
            verbose_name = __(u"Üniversite Dışı Destek")
            verbose_name_plural = __(u"Üniversite Dışı Destekler")

        kurulus = field.String(_(u"Destekleyen Kurulus"))
        tur = field.String(_(u"Destek Türü"))
        destek_miktari = field.Float(_(u"Destek Miktarı"))
        verildigi_tarih = field.Date(_(u"Verildiği Tarih"))
        sure = field.Integer(_(u"Süresi(Ay CinsindenBA)"))
        destek_belgesi = field.File(_(u"Destek Belgesi"), random_name=True)
        destek_belgesi_aciklamasi = field.String(_(u"Belge Açıklaması"),
                                                 required=False)

    # Koordinatörlük tarafından atanacak
    class BAPHakem(ListNode):
        class Meta:
            verbose_name = __(u"Hakem")
            verbose_name_plural = __(u"Hakemler")

        ad = field.String(_(u"Ad"))
        soyad = field.String(_(u"Soyad"))
        # todo hakemler sorulacak
        birim = field.String(_(u"Birim"))

    class ProjeIslemGecmisi(ListNode):
        class Meta:
            verbose_name = __(u"İşlem Geçmişi")
            verbose_name_plural = __(u"İşlem Geçmişi")

        eylem = field.String(_(u"Eylem"))
        aciklama = field.String(_(u"Açıklama"))
        tarih = field.DateTime(_(u"Tarih"))

    class ProjeDegerlendirmeleri(ListNode):
        class Meta:
            verbose_name = __(u"Proje Değerlendirmesi")
            verbose_name_plural = __(u"Proje Değerlendirmeleri")

        hakem = Okutman()
        form_data = field.Text(_(u"Form Data"))
        hakem_degerlendirme_durumu = field.Integer(
            _(u"Hakem/Değerlendirme Durumu"),
            choices='bap_proje_hakem_degerlendirme_durum')
        degerlendirme_sonucu = field.Integer(
            _(u"Değerlendirme Sonucu"),
            choices="bap_proje_degerlendirme_sonuc")

    @lazy_property
    def yurutucu_diger_projeler(self):
        return self.objects.filter(yurutucu=self.yurutucu)

    @lazy_property
    def proje_kodu(self):
        return "%s%s" % (self.tur.kod, self.proje_no)

    class Meta:
        app = 'BAP'
        verbose_name = _(u"BAP Proje")
        verbose_name_plural = _(u"BAP Projeler")
        list_fields = ['ad', 'yurutucu']
        search_fields = ['ad']
        list_filters = ['durum']
        unique_together = [('tur', 'proje_no')]

    def __unicode__(self):
        return "%s: %s" % (self.ad, self.yurutucu.__unicode__())

    def post_save(self):
        if self.durum == 5 and self.is_changed('durum'):
            genel = BAPGenel.get()
            genel.toplam_taahhut += self.kabul_edilen_butce
            genel.save()
示例#8
0
    def __init__(self, current=None):
        super(PersonelDataGridView, self).__init__(current)
        # Gösterilecek alanlar listesi.
        column_list = [
            'tckn',
            'ad',
            'soyad',
            'dogum_tarihi',
            'cinsiyet',
            'medeni_hali',
            'dogum_yeri',
            'kan_grubu',
            'ana_adi',
            'baba_adi',
            'brans',
            'unvan',
            'personel_turu',
            'kurum_sicil_no_int',
            'birim_id',
            'kayitli_oldugu_il',
            'kayitli_oldugu_ilce',
            'kayitli_oldugu_mahalle_koy',
            'cuzdan_seri',
            'cuzdan_seri_no',
            'kayitli_oldugu_cilt_no',
            'kayitli_oldugu_aile_sira_no',
            'kayitli_oldugu_sira_no',
            'kimlik_cuzdani_verildigi_yer',
            'kimlik_cuzdani_verilis_nedeni',
            'kimlik_cuzdani_kayit_no',
            'kimlik_cuzdani_verilis_tarihi',
            'emekli_sicil_no',
            'emekli_giris_tarihi',
            'hizmet_sinifi',
            'kazanilmis_hak_derece',
            'kazanilmis_hak_kademe',
            'kazanilmis_hak_ekgosterge',
            'gorev_ayligi_derece',
            'gorev_ayligi_kademe',
            'gorev_ayligi_ekgosterge',
            'emekli_muktesebat_derece',
            'emekli_muktesebat_kademe',
            'emekli_muktesebat_ekgosterge',
            'kh_sonraki_terfi_tarihi',
            'ga_sonraki_terfi_tarihi',
            'goreve_baslama_tarihi',
            'mecburi_hizmet_suresi',
        ]
        ordered_dict_param = []
        for col in column_list:

            if col == "birim_id":
                ordered_dict_param.append((col, _(u"Birim")))
            elif col == "baslama_sebep_id":
                ordered_dict_param.append((col, _(u"Başlama Sebep")))
            else:
                ordered_dict_param.append(
                    (col, str(Personel.get_field(col).title)
                     if Personel.get_field(col) is not None else col))
        self.column_dict = OrderedDict(ordered_dict_param)
        select_fields = {
            'cinsiyet': prepare_options_from_catalog_data('cinsiyet'),
            'kan_grubu': prepare_options_from_catalog_data('kan_grubu'),
            'medeni_hali': prepare_options_from_catalog_data('medeni_hali'),
            'personel_turu': prepare_options_from_catalog_data('personel_turu')
        }

        birim = ModelLabelValue(Unit).get_or_set()

        # birim = [{"value": u.key, "label": u.name} for u in Unit.objects.all()]

        multiselect_fields = {
            'birim_id': birim,
            'hizmet_sinifi':
            prepare_options_from_catalog_data('hizmet_sinifi'),
            'unvan': prepare_options_from_catalog_data('unvan_kod'),
            'statu': prepare_options_from_catalog_data('personel_statu')
        }
        range_date_fields = [
            'dogum_tarihi', 'em_sonraki_terfi_tarihi', 'emekli_giris_tarihi',
            'ga_sonraki_terfi_tarihi', 'gorev_suresi_baslama',
            'gorev_suresi_bitis', 'goreve_baslama_tarihi',
            'kh_sonraki_terfi_tarihi', 'mecburi_hizmet_suresi'
        ]
        range_int_fields = [
            'emekli_muktesebat_derece', 'emekli_muktesebat_ekgosterge',
            'emekli_muktesebat_kademe', 'engel_orani', 'gorev_ayligi_derece',
            'gorev_ayligi_ekgosterge', 'gorev_ayligi_kademe',
            'kazanilmis_hak_derece', 'kazanilmis_hak_ekgosterge',
            'kazanilmis_hak_kademe'
        ]
        starts_fields = [
            'tckn', 'ad', 'soyad', 'dogum_yeri', 'ana_adi', 'baba_adi',
            'brans', 'kurum_sicil_no_int', 'kayitli_oldugu_il',
            'kayitli_oldugu_ilce', 'kayitli_oldugu_mahalle_koy', 'cuzdan_seri',
            'cuzdan_seri_no', 'kayitli_oldugu_cilt_no',
            'kayitli_oldugu_aile_sira_no', 'kayitli_oldugu_sira_no',
            'kimlik_cuzdani_verildigi_yer', 'kimlik_cuzdani_verilis_nedeni',
            'kimlik_cuzdani_kayit_no', 'kimlik_cuzdani_verilis_tarihi',
            'emekli_sicil_no'
        ]

        column_types_dict = {
            'select_fields': select_fields,
            'multiselect_fields': multiselect_fields,
            'range_date_fields': range_date_fields,
            'range_num_fields': range_int_fields,
            'starts_fields': starts_fields
        }

        self.kwargs = {
            'default_fields':
            ['ad', 'soyad', 'cinsiyet', 'dogum_tarihi', 'personel_turu'],
            'column_types_dict':
            column_types_dict
        }
示例#9
0
    def test_gorevlendirme_tarih_kontrol(self):
        """

        """
        personel = Personel()
        personel.save()

        # gorevlendirme zamanlari (gorev_baslama(ay-gun),gorev_bitis(ay-gun)) olarak belirtilmiştir.
        # default yil 2017.
        gorevlendirme_zamanlari = [((1, 3), (1, 10)), ((1, 12), (1, 15)),
                                   ((3, 15), (3, 20)), ((7, 16), (8, 16))]

        # gorevlendirme_zamanlari'ndaki tarihlerle uyusmayacak sekilde tarihler yine belirtilen formatta seçilmiştir.
        invalid_gorevlendirme_zamanlari = [
            ((1, 2), (1, 5)), ((1, 11), (1, 20)), ((1, 11), (4, 1)),
            ((7, 20), (8, 10)), ((8, 15), (8, 20)), ((1, 10), (1, 12)),
            ((2, 20), (2, 2)), ((1, 15), (1, 15))
        ]
        # gorevlendirme_zamanlari ile uyusan sekilde belirtilen formatta tarihler secilmistir.
        valid_gorevlendirme_zamanlari = [((1, 1), (1, 2)), ((11, 6), (11, 6)),
                                         ((2, 2), (2, 20)), ((9, 9), (9, 11))]

        for counter, tarih in enumerate(gorevlendirme_zamanlari):
            if counter % 2 == 0:
                gorevlendirme = KurumIciGorevlendirmeBilgileri(
                    personel=personel,
                    baslama_tarihi=datetime.date(2017, tarih[0][0],
                                                 tarih[0][1]),
                    bitis_tarihi=datetime.date(2017, tarih[1][0], tarih[1][1]))
            else:
                gorevlendirme = KurumDisiGorevlendirmeBilgileri(
                    personel=personel,
                    baslama_tarihi=datetime.date(2017, tarih[0][0],
                                                 tarih[0][1]),
                    bitis_tarihi=datetime.date(2017, tarih[1][0], tarih[1][1]))
            gorevlendirme.blocking_save()

        mevcut_gorev_sayisi = KurumDisiGorevlendirmeBilgileri.objects.filter(personel=personel).count() + \
                              KurumIciGorevlendirmeBilgileri.objects.filter(personel=personel).count()

        for counter, tarih in enumerate(invalid_gorevlendirme_zamanlari):
            if counter % 2 == 0:
                invalid_gorevlendirme = KurumIciGorevlendirmeBilgileri(
                    personel=personel,
                    baslama_tarihi=datetime.date(2017, tarih[0][0],
                                                 tarih[0][1]),
                    bitis_tarihi=datetime.date(2017, tarih[1][0], tarih[1][1]))
            else:
                invalid_gorevlendirme = KurumDisiGorevlendirmeBilgileri(
                    personel=personel,
                    baslama_tarihi=datetime.date(2017, tarih[0][0],
                                                 tarih[0][1]),
                    bitis_tarihi=datetime.date(2017, tarih[1][0], tarih[1][1]))
            with pytest.raises(Exception):
                invalid_gorevlendirme.blocking_save()
            assert invalid_gorevlendirme.key is None

        for counter, tarih in enumerate(valid_gorevlendirme_zamanlari):
            if counter % 2 == 0:
                valid_gorevlendirme = KurumIciGorevlendirmeBilgileri(
                    personel=personel,
                    baslama_tarihi=datetime.date(2017, tarih[0][0],
                                                 tarih[0][1]),
                    bitis_tarihi=datetime.date(2017, tarih[1][0], tarih[1][1]))

            else:
                valid_gorevlendirme = KurumDisiGorevlendirmeBilgileri(
                    personel=personel,
                    baslama_tarihi=datetime.date(2017, tarih[0][0],
                                                 tarih[0][1]),
                    bitis_tarihi=datetime.date(2017, tarih[1][0], tarih[1][1]))

            assert valid_gorevlendirme.blocking_save()

            valid_gorevlendirme.baslama_tarihi = datetime.date(2017, 1, 13)
            valid_gorevlendirme.bitis_tarihi = datetime.date(2017, 2, 13)

            with pytest.raises(Exception):
                valid_gorevlendirme.blocking_save()

        guncel_gorev_sayisi = KurumDisiGorevlendirmeBilgileri.objects.filter(personel=personel).count() + \
                              KurumIciGorevlendirmeBilgileri.objects.filter(personel=personel).count()
        assert guncel_gorev_sayisi == mevcut_gorev_sayisi + len(
            valid_gorevlendirme_zamanlari)

        personel.blocking_delete()
        KurumIciGorevlendirmeBilgileri.objects.filter(
            personel=personel).delete()
        KurumDisiGorevlendirmeBilgileri.objects.filter(
            personel=personel).delete()