class Room(Model): """Oda modeli Üniversitenin sahip olduğu odalara (sınıf, lab, amfi) ait data modelidir. Her odanın bir kodu bulunur. Odalar, binalara ve binalar aracılığıyla kampüslere bağlanır. """ code = field.String(_(u"Kod"), index=True) name = field.String(_(u"İsim"), index=True) room_type = RoomType(_(u"Oda Tipi"), index=True) unit = Unit(_(u"Bölüm")) #: Bina içerisindeki kat bilgisi floor = field.String(_(u"Kat"), index=True) capacity = field.Integer(_(u"Kapasite"), index=True) building = Building() exam_capacity = field.Integer(_(u"Sınav Kapasitesi")) is_active = field.Boolean(_(u"Aktif"), index=True) unitime_key = field.String( ) # Ders/Sınav programları hazırlanırken id'leri eşleştirmek için class Meta: verbose_name = _(u"Oda") verbose_name_plural = _(u"Odalar") search_fields = ['code', 'name'] list_fields = ['code', 'name'] def __unicode__(self): return '%s %s %s' % (self.code, self.name, self.capacity)
class Degerlendirme(ListNode): tur = field.Integer(_(u"Değerlendirme Türü"), choices="sinav_turleri", index=True) sinav_suresi = field.Integer(_(u"Sınav Süresi (dakika)")) toplam_puana_etki_yuzdesi = field.Integer( _(u"Toplam Puana Etki Yüzdesi"), index=True)
class HizmetKurs(Model): tckn = field.String(_(u"TC Kimlik No"), index=True) kayit_no = field.String(_(u"Kursa Kayıt No"), index=True) kurs_ogrenim_suresi = field.Integer(_(u"Kurs Öğrenim Süresi"), index=True) mezuniyet_tarihi = field.Date(_(u"Mezuniyet Tarihi"), index=True, format="%d.%m.%Y") kurs_nevi = field.Integer(_(u"Kurs Nevi"), index=True, choices="kurs_nevi") bolum_ad = field.Integer( _(u"Bölüm Adı"), index=True, choices="bolum_adi") # TODO: serviste karsiligi yok okul_ad = field.Integer(_(u"Okul Adı"), index=True, choices="okul_adi") # TODO: servisten gelen string ogrenim_yeri = field.String(_(u"Öğrenim Yeri"), index=True) denklik_tarihi = field.Date(_(u"Denklik Tarihi"), index=True, format="%d.%m.%Y") denklik_okulu = field.String(_(u"Denklik Okulu"), index=True) denklik_bolum = field.String(_(u"Denklik Bölüm"), index=True) kurum_onay_tarihi = field.Date(_(u"Kurum Onay Tarihi"), index=True, format="%d.%m.%Y") sync = field.Integer(_(u"Senkronize"), index=True) personel = Personel() class Meta: app = 'Personel' verbose_name = _(u"Kurs") verbose_name_plural = _(u"Kurslar") list_fields = ['kayit_no', 'bolum_ad', 'okul_ad'] search_fields = ['tckn', 'okul_ad', 'bolum_ad'] hitap_service_prefix = "HitapKurs" def __unicode__(self): return '%s %s %s' % (self.kurs_nevi, self.bolum_ad, self.okul_ad)
class Odeme(Model): """Ödeme Modeli Öğrencilerin borçlarına karşılık, banka veya diğer yollar ile tahsil edilen ödemelerin saklandığı data modelidir. """ miktar = field.Float("Borç Miktarı", index=True) para_birimi = field.Integer("Para Birimi", index=True, choices="para_birimleri") aciklama = field.String("Borç Açıklaması", index=True) odeme_sekli = field.Integer("Ödeme Şekli", index=True, choices="odeme_sekli") odeme_tarihi = field.Date("Ödeme Tarihi", index=True) borc = Borc() ogrenci = Ogrenci() banka = Banka() banka_sube_kodu = field.String("Banka Sube Kodu", index=True) banka_kanal_kodu = field.String("Kanal Kodu", index=True) tahsilat_referans_no = field.String("Tahsilat Referans No", index=True) donem = Donem() class Meta: app = 'Ogrenci' verbose_name = "Borc" verbose_name_plural = "Borclar" list_fields = ['miktar', 'son_odeme_tarihi'] search_fields = ['miktar', 'odeme_tarihi'] def __unicode__(self): return '%s %s %s %s' % (self.miktar, self.para_birimi, self.sebep, format_date(self.son_odeme_tarihi))
class UcretsizIzin(Model): """Ücretsiz izin Modeli Personelin ücretsiz izin bilgilerini içeren modeldir. """ tip = field.Integer("Tip", index=True, choices="ucretsiz_izin") baslangic_tarihi = field.Date("İzin Başlangıç Tarihi", index=True, format="%d.%m.%Y") bitis_tarihi = field.Date("İzin Bitiş Tarihi", index=True, format="%d.%m.%Y") donus_tarihi = field.Date("Dönüş Tarihi", index=True, format="%d.%m.%Y") donus_tip = field.Integer("Dönüş Tip", index=True) onay_tarihi = field.Date("Onay Tarihi", index=True, format="%d.%m.%Y") personel = Personel() class Meta: app = 'Personel' verbose_name = "Ücretsiz İzin" verbose_name_plural = "Ücretsiz İzinler" list_fields = [ 'tip', 'baslangic_tarihi', 'bitis_tarihi', 'donus_tarihi' ] search_fields = ['tip', 'onay_tarihi'] def __unicode__(self): return '%s %s' % (self.tip, self.onay_tarihi)
class ZamanDilimleri(Model): class Meta: verbose_name = _(u"Zaman Dilimi") verbose_name_plural = _(u"Zaman Dilimleri") unique_together = [('birim', 'gun_dilimi')] search_fields = ['birim', 'gun_dilimi'] birim = Unit(_(u'Bölüm')) gun_dilimi = field.Integer(_(u'Gün Dilimi'), choices=gun_dilimi_listele, index=True) baslama_saat = field.String(_(u"Başlama Saati"), index=True) baslama_dakika = field.String(_(u"Başlama Dakikası"), index=True) bitis_saat = field.String(_(u"Bitiş Saati"), index=True) bitis_dakika = field.String(_(u"Bitiş Dakikası"), index=True) # Ara suresi de dahil. Ornek olarak 30 girildiyse ders 9, 9.30, 10 gibi surelerde baslayabilir. ders_araligi = field.Integer(_(u'Ders Süresi'), default=60, index=True) ara_suresi = field.Integer(_(u'Tenefüs Süresi'), default=10, index=True) zaman_dilimi_suresi = field.Integer(_(u"Zaman Dilimi Süresi"), index=True) def pre_save(self): self.zaman_dilimi_suresi = int(self.bitis_saat) - int(self.baslama_saat) def __unicode__(self): return '%s - %s|%s' % ( dict(gun_dilimi_listele())[int(self.gun_dilimi)], format_time(time(int(self.baslama_saat), int(self.baslama_dakika))), format_time(time(int(self.baslama_dakika), int(self.bitis_dakika))), )
class Borc(Model): """Borç modeli Öğrencilerin ödemesi gereken ücret (harc, belge, belgeler, kimlik ücretleri vb.) bilgilerinin saklandığı modeldir. ``tahakkuk_referans_no`` sistem tarafından üretilen ve 3. taraflara (banka veya ilgili diğer kurumlar) iletilen tekil takip koddur. """ miktar = field.Float(_(u"Borç Miktarı"), index=True) para_birimi = field.Integer(_(u"Para Birimi"), index=True, choices="para_birimleri") sebep = field.Integer(_(u"Borç Sebebi"), index=True, choices="ogrenci_borc_sebepleri") son_odeme_tarihi = field.Date(_(u"Son Ödeme Tarihi"), index=True) tahakkuk_referans_no = field.String(_(u"Tahakkuk Referans No"), index=True) aciklama = field.String(_(u"Borç Açıklaması"), index=True) ogrenci = Ogrenci() donem = Donem() class Meta: app = 'Ogrenci' verbose_name = _(u"Borç") verbose_name_plural = _(u"Borçlar") list_fields = ['miktar', 'son_odeme_tarihi'] search_fields = ['miktar', 'odeme_tarihi'] def __unicode__(self): return '%s %s %s %s' % (self.miktar, self.para_birimi, self.sebep, self.son_odeme_tarihi)
class ZamanCetveli(Model): """ Ilgili birime ait belirlenen zaman dilimleri ders program koordinatoru tarafindan ogretim elemanlarin saat araliklarina gore durumlarini belirleyecegi model """ class Meta: verbose_name = _(u'Zaman Cetveli') verbose_name_plural = _(u'Zaman Cetvelleri') unique_together = [('zaman_dilimi', 'ogretim_elemani_zaman_plani', 'gun')] search_fields = ['zaman_dilimi', 'ogretim_elemani_zaman_plani', 'birim', 'gun', 'durum'] birim = Unit(_(u"Birim")) gun = field.Integer(_(u"Gün"), choices=gun_listele, index=True) zaman_dilimi = ZamanDilimleri(_(u"Zaman Dilimi")) durum = field.Integer( _(u"Uygunluk Durumu"), choices=uygunluk_durumu_listele, default=1, index=True ) ogretim_elemani_zaman_plani = OgElemaniZamanPlani(_(u"Öğretim Elemanı")) def __unicode__(self): return '%s - %s - %s' % (self.ogretim_elemani_zaman_plani, self.zaman_dilimi, dict(uygunluk_durumu_listele())[int(self.durum)])
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
class SaglikRaporu(Model): personel = Personel(_(u"Raporu Alan Personel")) rapor_cesidi = field.Integer(_(u"Rapor Çeşidi"), choices='saglik_raporu_cesitleri', required=True) sure = field.Integer(_(u"Gün"), required=True) baslama_tarihi = field.Date(_(u"Rapor Başlanğıç Tarihi"), required=True) bitis_tarihi = field.Date(_(u"Raporlu Olduğu Son Gün"), required=True) onay_tarihi = field.Date(_(u"Onay Tarihi"), required=True) raporun_alindigi_il = field.Integer(_(u"Raporun Alındığı İl"), choices='iller', required=False) nerden_alindigi = field.String(_(u"Sağlık Raporunun Alındığı Kurum"), required=True) gecirecegi_adres = field.Text(_(u"Geçireceği Adres"), required=False) telefon = field.String(_(u"Telefon Numarası"), required=False) class Meta: verbose_name = _(u"Sağlık Raporu") verbose_name_plural = _(u"Sağlık Raporları") list_fields = ['rapor_cesidi', 'sure', 'bitis_tarihi'] def __unicode__(self): return "%s %s - %s - %s" % (self.personel.ad, self.personel.soyad, self.get_rapor_cesidi_display(), self.bitis_tarihi)
class BAPFirma(Model): class Meta: verbose_name = __(u"Firma") verbose_name_plural = __(u"Firmalar") list_fields = ['ad', 'vergi_no'] unique_together = [('vergi_no', 'vergi_dairesi')] ad = field.String(__(u"Firma Adı"), required=True) telefon = field.String(__(u"Telefon"), required=True) adres = field.String(__(u"Adres"), required=True) e_posta = field.String(__(u"E-posta Adresi"), required=True, unique=True) vergi_no = field.String(__(u"Vergi Kimlik Numarası"), required=True) vergi_dairesi = field.Integer(__(u"Vergi Dairesi"), choices='vergi_daireleri', required=True) faaliyet_belgesi = field.File(_(u"Firma Faaliyet Belgesi"), random_name=False, required=True) faaliyet_belgesi_verilis_tarihi = field.Date( __(u"Faaliyet Belgesi Veriliş Tarihi"), required=True) durum = field.Integer(__(u"Durum"), choices='bap_firma_durum') class Yetkililer(ListNode): yetkili = User() def __unicode__(self): return "%s" % self.ad
class HizmetUnvan(Model): kayit_no = field.String(_(u"Hizmet Kayıt No"), index=True) tckn = field.String(_(u"TC Kimlik No"), index=True) unvan_kod = field.Integer(_(u"Ünvan Kodu"), index=True) unvan_tarihi = field.Date(_(u"Ünvan Tarihi"), index=True, format="%d.%m.%Y") unvan_bitis_tarihi = field.Date(_(u"Ünvan Bitiş Tarihi"), index=True, format="%d.%m.%Y") hizmet_sinifi = field.String(_(u"Hizmet Sınıfı"), index=True) asil_vekil = field.String(_(u"Asıl Vekil"), index=True) atama_sekli = field.String(_(u"Atama Sekli"), index=True) kurum_onay_tarihi = field.Date(_(u"Kurum Onay Tarihi"), index=True, format="%d.%m.%Y") fhz_orani = field.Float(_(u"FHZ Oranı"), index=True) sync = field.Integer(_(u"Senkronize"), index=True) personel = Personel() class Meta: app = 'Personel' verbose_name = _(u"Ünvan") verbose_name_plural = _(u"Ünvanlar") list_fields = ['unvan_kod', 'hizmet_sinifi', 'kurum_onay_tarihi'] search_fields = ['unvan_kod', 'hizmet_sinifi'] hitap_service_prefix = "HitapUnvan" def __unicode__(self): return '%s %s' % (self.unvan_kod, self.hizmet_sinifi)
class HizmetIstisnaiIlgi(Model): tckn = field.String(_(u"TC Kimlik No"), index=True) kayit_no = field.String(_(u"Kayıt No"), index=True) baslama_tarihi = field.Date(_(u"Başlama Tarihi"), index=True, format="%d.%m.%Y") bitis_tarihi = field.Date(_(u"Bitiş Tarihi"), index=True, format="%d.%m.%Y") gun_sayisi = field.Integer(_(u"Gün Sayısı"), index=True) istisnai_ilgi_nevi = field.Integer(_(u"İstisnai İlgi Nevi"), index=True) kha_durum = field.Integer(_(u"KHA Durum"), index=True, choices="kha_durum") kurum_onay_tarihi = field.Date(_(u"Kurum Onay Tarihi"), index=True, format="%d.%m.%Y") sync = field.Integer(_(u"Senkronize"), index=True) personel = Personel() class Meta: app = 'Personel' verbose_name = _(u"İstisnai İlgi") verbose_name_plural = _(u"İstisnai İlgiler") list_fields = [ 'baslama_tarihi', 'bitis_tarihi', 'istisnai_ilgi_nevi', 'kha_durum' ] search_fields = ['istisnai_ilgi_nevi', 'kha_durum'] hitap_service_prefix = "HitapIstisnaiIlgi" def __unicode__(self): return '%s %s %s' % (self.kayit_no, self.istisnai_ilgi_nevi, self.kha_durum)
class Sinav(Model): """Sınav Modeli Derse ait sınav(ara sınav, genel sınav, bütünleme, tek ders, muafiyet) bilgilerinin saklandığı modeldir. Sınavlar şubeler için ders dolayısı ile otomatik açılırlar. Bu sebeple temel bağ Şube modelidir. Ders arama kolaylığı için eklenmiştir. """ tarih = field.Date(_(u"Sınav Tarihi"), index=True) yapilacagi_yer = field.String(_(u"Yapılacağı Yer"), index=True) tur = field.Integer(_(u"Sınav Türü"), index=True, choices="sinav_turleri") aciklama = field.String(_(u"Açıklama"), index=True) sube = Sube() degerlendirme = field.Boolean(_(u"Değerlendirme Durumu"), index=True, default=False) # arama amacli ders = Ders() puan = field.Integer(_(u"Puan"), index=True) class Meta: app = 'Ogrenci' verbose_name = _(u"Sınav") verbose_name_plural = _(u"Sınavlar") list_fields = ['tarih', 'yapilacagi_yer'] search_fields = ['aciklama', 'tarih'] def __unicode__(self): return '%s %s' % (self.get_tur_display(), self.sube)
class OgrenciProgram(Model): """Öğrenci Program Modeli Öğrencilerin kayıt yaptırdığı programların saklandığı modeldir. Öğrenciler birden fazla programa kayıt yaptırabilirler. Herbir program için ayrı bir öğrenci numarası alırlar. Aktif dönem öğrencinin ilgili programda geldiği aşamayı ifade eder. Buna göre ilgili program derslerinden faydalanabilir. Başarı durumu, Genel Ağırlıklı Not Ortalamasını ifade eder: http://www.ulakbus.org/wiki/standart_fakulteler_icin_yazilim_ihtiyac_analizi_belgesi.html#basari-hesaplama Öğrencinin ilgili programdaki danışman bilgisi de burada saklanır. """ ogrenci_no = field.String(_(u"Öğrenci Numarası"), index=True) giris_tarihi = field.Date(_(u"Giriş Tarihi"), index=True, format="%d.%m.%Y") mezuniyet_tarihi = field.Date(_(u"Mezuniyet Tarihi"), index=True, format="%d.%m.%Y") giris_puan_turu = field.Integer(_(u"Puan Türü"), index=True, choices="giris_puan_turleri") giris_puani = field.Float(_(u"Giriş Puani"), index=True) aktif_donem = field.String(_(u"Dönem"), index=True) ogrencilik_statusu = field.Integer(_(u'Öğrencilik Statüsü'), index=True, choices="ogrenci_program_durumlar") ogrenci_ders_kayit_status = field.Integer(_(u'Öğrencilik Ders Kayıt Statüsü'), index=True, choices="ogrenci_ders_kayit_durum") ayrilma_nedeni = field.Integer(_(u'Ayrılma Nedeni'), index=True, choices='ayrilma_nedeni') basari_durumu = field.String(_(u"Başarı Durumu"), index=True) diploma_no = field.String(_(u"Diploma No"), index=True) ders_programi = DersProgrami() danisman = Personel() program = Program() ogrenci = Ogrenci() bagli_oldugu_bolum = Unit(_(u"Bölüm")) class Meta: app = 'Ogrenci' verbose_name = _(u"Öğrenci Programı") verbose_name_plural = _(u"Öğrenci Programları") class Belgeler(ListNode): tip = field.Integer(_(u"Belge Tipi"), choices="belge_tip", index=True) aciklama = field.String(_(u"Ek Açıklama"), index=True, default="-", required=False) tamam = field.Boolean(_(u"Belge kontrol edildi"), index=True, required=True) class OgrenciDonem(ListNode): donem = Donem() def __unicode__(self): return '%s - %s / %s' % (self.ogrenci, self.program.adi, self.program.yil) def tarih_sirasiyla_donemler(self): r = [] for ogd in self.OgrenciDonem: r.append((ogd.donem.ad, ogd.donem.baslangic_tarihi)) r.sort(key=lambda tup: tup[1]) return r
class HizmetAcikSure(Model): tckn = field.String("TC Kimlik No", index=True) kayit_no = field.String("Kayıt No", index=True) acik_sekil = field.Integer("Açığa Alınma Şekli", index=True, choices="acik_sekli") iade_sekil = field.Integer("İade Şekil", index=True) hizmet_durum = field.Integer("Hizmet Durumu", index=True, choices="hizmet_durumu") husus = field.Integer("Husus", index=True, choices="husus") husus_aciklama = field.String("Husus Açıklaması", index=True) aciga_alinma_tarih = field.Date("Açığa Alınma Tarihi", index=True, format="%d.%m.%Y") goreve_son_tarih = field.Date("Göreve Son Tarih", index=True, format="%d.%m.%Y") goreve_iade_istem_tarih = field.Date("Göreve İade İstem Tarihi", index=True, format="%d.%m.%Y") goreve_iade_tarih = field.Date("Göreve İade Tarihi", index=True, format="%d.%m.%Y") acik_aylik_bas_tarih = field.Date("Açık Aylık Başlama Tarihi", index=True, format="%d.%m.%Y") acik_aylik_bit_tarih = field.Date("Açık Aylık Bitiş Tarihi", index=True, format="%d.%m.%Y") goreve_son_aylik_bas_tarih = field.Date( "Göreve Sonlandırma Aylık Başlangıç Tarihi", index=True, format="%d.%m.%Y") goreve_son_aylik_bit_tarih = field.Date( "Göreve Sonlandırma Aylık Bitiş Tarihi", index=True, format="%d.%m.%Y") s_yonetim_kald_tarih = field.Date("Sıkı Yönetim Kaldırıldığı Tarih", index=True, format="%d.%m.%Y") aciktan_atanma_tarih = field.Date("Açıktan Atanma Tarihi", index=True, format="%d.%m.%Y") kurum_onay_tarihi = field.Date("Kurum Onay Tarihi", index=True, format="%d.%m.%Y") sync = field.Integer("Senkronize", index=True) personel = Personel() class Meta: app = 'Personel' verbose_name = "Açığa Alınma" verbose_name_plural = "Açığa Alınmalar" list_fields = ['acik_sekil', 'aciga_alinma_tarih', 'kurum_onay_tarihi'] search_fields = ['hizmet_durum', 'acik_sekil', 'aciga_alinma_tarih'] def __unicode__(self): return '%s %s %s' % (self.iade_sekil, self.kayit_no, self.aciga_alinma_tarih)
class Unit(Model): """Unit modeli Kullanıcılara rol tanımlarken kullanılan, kullanıcının hangı birimde olduğunu taşıyan modeldir. Akademik ve idari birimlerin özelliklerini taşır. """ name = field.String(_(u"İsim"), index=True) long_name = field.String(_(u"Uzun İsim"), index=True) yoksis_no = field.Integer(_(u"Yoksis ID"), index=True) unit_type = field.String(_(u"Birim Tipi"), index=True) parent_unit_no = field.Integer(_(u"Üst Birim ID"), index=True) current_situation = field.String(_(u"Guncel Durum"), index=True) language = field.String(_(u"Öğrenim Dili"), index=True) learning_type = field.String(_(u"Öğrenme Tipi"), index=True) osym_code = field.String(_(u"ÖSYM Kodu"), index=True) opening_date = field.Date(_(u"Açılış Tarihi"), index=True) learning_duration = field.Integer(_(u"Öğrenme Süresi"), index=True) english_name = field.String(_(u"İngilizce Birim Adı."), index=True) quota = field.Integer(_(u"Birim Kontenjan"), index=True) city_code = field.Integer(_(u"Şehir Kodu"), index=True) district_code = field.Integer(_(u"Semt Kodu"), index=True) unit_group = field.Integer(_(u"Birim Grup"), index=True) foet_code = field.Integer(_(u"FOET Kodu"), index=True) # yoksis KILAVUZ_KODU mu? is_academic = field.Boolean(_(u"Akademik")) is_active = field.Boolean(_(u"Aktif")) uid = field.Integer(index=True) parent = LinkProxy('Unit', verbose_name=_(u'Üst Birim'), reverse_name='alt_birimler') # parent = field.String(verbose_name='Üst Birim') # fake @classmethod def get_role_keys(cls, unit_key): """recursively gets all roles (keys) under given unit""" return cls.get_role_keys_by_yoksis(Unit.objects.get(unit_key).yoksis_no) # stack = Role.objects.filter(unit_id=unit_key).values_list('user_id', flatten=True) # for unit_key in cls.objects.filter(parent_id=unit_key).values_list('key', flatten=True): # stack.extend(cls.get_role_keys(unit_key)) # return stack @classmethod def get_role_keys_by_yoksis(cls, yoksis_no): # because we don't refactor our data to use Unit.parent, yet! stack = Role.objects.filter(unit_id=Unit.objects.get(yoksis_no=yoksis_no).key).values_list( 'key', flatten=True) for yoksis_no in cls.objects.filter(parent_unit_no=yoksis_no).values_list('yoksis_no', flatten=True): stack.extend(cls.get_role_keys_by_yoksis(yoksis_no)) return stack class Meta: app = 'Sistem' verbose_name = _(u"Unit") verbose_name_plural = _(u"Units") search_fields = ['name', 'yoksis_no'] list_fields = ['name', 'unit_type'] def __unicode__(self): return '%s - %s - %s' % (self.name, self.english_name, self.yoksis_no)
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")
class AskerlikKayitlari(Model): askerlik_nevi = field.Integer(_(u"Askerlik Nevi"), index=True, choices="askerlik_nevi") baslama_tarihi = field.Date(_(u"Başlama Tarihi"), index=True, format="%d.%m.%Y") bitis_tarihi = field.Date(_(u"Bitiş Tarihi"), index=True, format="%d.%m.%Y") kayit_no = field.String(_(u"Kayıt No"), index=True) kita_baslama_tarihi = field.Date(_(u"Kıta Başlama Tarihi"), index=True, format="%d.%m.%Y") kita_bitis_tarihi = field.Date(_(u"Kıta Bitiş Tarihi"), index=True, format="%d.%m.%Y") muafiyet_neden = field.String(_(u"Muafiyet Neden"), index=True) sayilmayan_gun_sayisi = field.Integer(_(u"Sayılmayan Gün Sayısı"), index=True) sinif_okulu_sicil = field.String(_(u"Sınıf Okulu Sicil"), index=True) subayliktan_erlige_gecis_tarihi = field.Date( _(u"Subaylıktan Erliğe Geçiş Tarihi"), index=True, format="%d.%m.%Y") subay_okulu_giris_tarihi = field.Date(_(u"Subay Okulu Giriş Tarihi"), index=True, format="%d.%m.%Y") tckn = field.String(_(u"TC Kimlik No"), index=True) tegmen_nasp_tarihi = field.Date(_(u"Teğmen Nasp Tarihi"), index=True, format="%d.%m.%Y") gorev_yeri = field.String(_(u"Görev Yeri"), index=True) kurum_onay_tarihi = field.Date(_(u"Kurum Onay Tarihi"), index=True, format="%d.%m.%Y") astegmen_nasp_tarihi = field.Date(_(u"Asteğmen Nasp Tarihi"), index=True, format="%d.%m.%Y") sync = field.Integer(_(u"Senkronize"), index=True) personel = Personel() class Meta: app = 'Personel' verbose_name = _(u"Kayıt") verbose_name_plural = _(u"Kayıtlar") list_fields = ['askerlik_nevi', 'kita_baslama_tarihi', 'gorev_yeri'] search_fields = ['askerlik_nevi', 'gorev_yeri', 'tckn'] hitap_service_prefix = "HitapAskerlik" def __unicode__(self): return '%s %s %s %s' % (self.askerlik_nevi, self.kayit_no, self.kita_baslama_tarihi, self.gorev_yeri)
class Ceza(Model): """ Ceza Modeli Personelin ceza bilgilerini içeren modeldir. """ dosya_sira_no = field.String(_(u"Dosya No"), unique=True) muhbir_musteki_ad_soyad = field.String( _(u"Muhbir veya Müştekinin Adı Soyadı"), required=False) ihbar_sikayet_suc_ogrenildigi_tarih = field.Date( _(u"İhbar, Şikayet veya Suçun Öğrenildiği Tarih")) personel = Personel(_(u"Soruşturma Yapılan Personel")) sucun_nevi = field.String(_(u"Suçun Nev'i"), required=False) af_kapsami = field.String(_(u"Af Kapsamı"), required=False) kapsadigi_donem_tarihler = field.String(_(u"Kapsadığı Dönem Tarihler"), required=False) acilis_tarihi = field.Date(_(u"Açılış Tarihi")) baslama_tarihi = field.Date(_(u"Başlangıç Tarihi")) bitis_tarihi = field.Date(_(u"Bitiş Tarihi")) teklif_edilen_ceza = field.Integer(_(u"Teklif Edilen Ceza"), choices="ceza_turleri", required=False) takdir_edilen_ceza = field.Integer(_(u"Takdir Edilen Ceza"), choices="ceza_turleri", required=False) kararin_teblig_tarihi = field.Date(_(u"Kararın Tebliğ Tarihi")) itiraz_neticesi = field.String(_(u"İtiraz Edilmişse Neticesi"), required=False) dusunceler = field.String(_(u"Düşünceler"), required=False) class TayinEdilenSorusturmacilar(ListNode): # class Meta: # title = _(u"Tayin Edilen Soruşturmacılar") sorusturmaci_adi_soyadi = field.String( _(u"Soruşturmacının Adı Soyadı")) class Meta: verbose_name = _(u"İdari Ceza") verbose_name_plural = _(u"İdari Cezalar") list_fields = [ 'dosya_sira_no', 'baslama_tarihi', 'bitis_tarihi', 'takdir_edilen_ceza' ] def __unicode__(self): return "%s %s - %s" % (self.personel.ad, self.personel.soyad, self.dosya_sira_no)
class NufusKayitlari(Model): tckn = field.String(_(u"Sigortalının TC Kimlik No"), index=True, hidden=True) kayit_no = field.String(_(u"Bildirge Kayıt No"), index=True, hidden=True) ad = field.String(_(u"Adı"), index=True) soyad = field.String(_(u"Soyadı"), index=True) ilk_soy_ad = field.String(_(u"Memuriyete Girişteki İlk Soyadı"), index=True) dogum_tarihi = field.Date(_(u"Doğum Tarihi"), index=True, format="%d.%m.%Y") cinsiyet = field.String(_(u"Cinsiyet"), index=True) emekli_sicil_no = field.Integer(_(u"Emekli Sicil No"), index=True) memuriyet_baslama_tarihi = field.Date(_(u"Memuriyete İlk Başlama Tarihi"), index=True, format="%d.%m.%Y") kurum_sicil = field.String(_(u"Kurum Sicili"), index=True) maluliyet_kod = field.Integer(_(u"Malul Kod"), index=True, choices="maluliyet_kod") yetki_seviyesi = field.String(_(u"Yetki Seviyesi"), index=True) aciklama = field.String(_(u"Açıklama"), index=True) kuruma_baslama_tarihi = field.Date(_(u"Kuruma Başlama Tarihi"), index=True, format="%d.%m.%Y") gorev_tarihi_6495 = field.Date( _(u"Emeklilik Sonrası Göreve Başlama Tarihi"), index=True, format="%d.%m.%Y") emekli_sicil_6495 = field.Integer(_(u"2. Emekli Sicil No"), index=True) durum = field.Boolean(_(u"Durum"), index=True) sebep = field.Integer(_(u"Sebep"), index=True) sync = field.Integer(_(u"Senkronize"), index=True, hidden=True) personel = Personel(one_to_one=True) # TODO: Personele gore unique olmali class Meta: app = 'Personel' verbose_name = _(u"Nüfus Bilgisi") verbose_name_plural = _(u"Nüfus Bilgileri") hitap_service_prefix = "HitapNufus" def __unicode__(self): return gettext(u'%(ad)s %(soyad)s %(sicil_no)s') % { 'ad': self.ad, 'soyad': self.soyad, 'sicil_no': self.emekli_sicil_no }
class HitapSebep(Model): sebep_no = field.Integer("Sebep No", index=True) ad = field.String("Sebep Adı", index=True) nevi = field.Integer("Sebep Nevi", index=True) zorunlu_alan = field.String("Zorunlu ALan") class Meta: app = 'Personel' verbose_name = "Hitap Sebep Kodu" verbose_name_plural = "Hitap Sebep Kodları" list_fields = ['sebep_no', 'ad', 'nevi', 'zorunlu_alan'] search_fields = ['sebep_no', 'ad'] def __unicode__(self): return '%s - %s' % (self.sebep_no, self.ad)
class BAPRapor(Model): class Meta: verbose_name = __(u"Proje Rapor") verbose_name_plural = __(u"Proje Raporları") proje = BAPProje() tur = field.Integer(__(u"Rapor Türü"), choices='bap_rapor_turu') durum = field.Integer(__(u"Rapor Durumu"), choices='bap_rapor_durum', default=1) belge = field.File(_(u"Proje Rapor Belgesi"), random_name=True) olusturulma_tarihi = field.Date(_(u"Rapor Oluşturulma Tarihi")) def __unicode__(self): return "%s-%s" % (self.proje.ad, self.get_tur_display())
class HitapSebep(Model): sebep_no = field.Integer(_(u"Sebep No")) ad = field.String(_(u"Sebep Adı")) nevi = field.Integer(_(u"Sebep Nevi")) zorunlu_alan = field.String(_(u"Zorunlu Alan")) class Meta: app = 'Personel' verbose_name = _(u"Hitap Sebep Kodu") verbose_name_plural = _(u"Hitap Sebep Kodları") list_fields = ['sebep_no', 'ad', 'nevi', 'zorunlu_alan'] search_fields = ['sebep_no', 'ad'] def __unicode__(self): return '%s - %s' % (self.sebep_no, self.ad)
class ZatoServiceChannel(Model): cluster_id = field.Integer(__(u'Zato cluster')) channel_id = field.Integer(__(u"Channel id")) channel_name = field.String(__(u"Channel name")) channel_connection = field.String(__(u"channel or outgoing connection")) channel_transport = field.String(__(u"plain_http or soap")) channel_url_path = field.String(__(u"Example: /test/zato-url-path")) channel_data_format = field.String(__(u"xml or json")) channel_is_internal = field.Boolean(default=False) channel_is_active = field.Boolean(default=True) service_id = field.Integer(__(u"Service Id")) service_name = field.String(__(u"Service name")) deploy = field.Boolean(__(u"Deploy Channel"), default=False) def __unicode__(self): return self.channel_name
class Izin(Model): """İzin Modeli Personelin ücretli izin bilgilerini içeren modeldir. """ tip = field.Integer(_(u"Tip"), choices="izin") baslangic = field.Date(_(u"Başlangıç"), format="%d.%m.%Y") bitis = field.Date(_(u"Bitiş"), format="%d.%m.%Y") onay = field.Date(_(u"Onay"), format="%d.%m.%Y") adres = field.String(_(u"Geçireği Adres")) telefon = field.String(_(u"Telefon")) personel = Personel() vekil = Personel() class Meta: app = 'Personel' verbose_name = _(u"İzin") verbose_name_plural = _(u"İzinler") list_fields = ['tip', 'baslangic', 'bitis', 'onay', 'telefon'] search_fields = ['tip', 'baslangic', 'onay'] def __unicode__(self): return '%s %s' % (self.tip, self.onay)
class Pool(ListNode): order = field.Integer(__(u"Lane order")) actor_name = field.String(__(u"Actor name")) wf_name = field.String(__(u"Actor specific name of WF")) relations = field.String(__(u"Lane relations")) possible_owners = field.String(__(u"Possible owners")) permissions = field.String(__(u"Permissions"))
class Takvim(Model): """ olay, bir zaman araliginda gerceklesiyorsa(ayni gunun saat araliklari dahil), baslangic ve bitis zamanlari ayri ayri verilir, olay, bir gun icinde ancak kesin zaman bagimsiz/belirsiz gerceklesiyorsa, baslangic ve bitis zamanlari ayni verilir, olay, belirsiz bir baslangic yani son gun belirtilmisse, sadece bitis tarihi verilir, olay, belirsiz bir son yani baslama gun belirtilmisse, sadece baslangic tarihi verilir, """ etkinlik = field.Integer(_(u"Etkinlik"), index=True, choices=AKADEMIK_TAKVIM_ETKINLIKLERI) baslangic = field.DateTime(_(u"Başlangıç"), index=True, format="%d.%m.%Y", required=False) bitis = field.DateTime(_(u"Bitiş"), index=True, format="%d.%m.%Y", required=False) akademik_takvim = AkademikTakvim(_(u"Akademik Takvim")) resmi_tatil = field.Boolean(_(u"Resmi Tatil"), index=True) def pre_save(self): if not self.baslangic and not self.bitis: raise Exception("Tarihlerden en az bir tanesi dolu olmalidir.") class Meta: app = 'Ogrenci' verbose_name = _(u"Takvim") verbose_name_plural = _(u"Takvimler") list_filters = ["etkinlik", "baslangic", "bitis", 'resmi_tatil'] def __unicode__(self): return '%s %s %s' % ( self.akademik_takvim.birim, self.akademik_takvim.ogretim_yili, self.etkinlik)
class HizmetMahkeme(Model): tckn = field.String(_(u"TC Kimlik No"), index=True) kayit_no = field.String(_(u"Kayıt No"), index=True) mahkeme_ad = field.String(_(u"Mahkeme Adı"), index=True) sebep = field.Integer(_(u"Mahkeme Sebebi"), index=True, choices="mahkeme_sebep") karar_tarihi = field.Date(_(u"Mahkeme Karar Tarihi"), index=True, format="%d.%m.%Y") karar_sayisi = field.Integer(_(u"Karar Sayısı"), index=True) kesinlesme_tarihi = field.Date(_(u"Kesinleşme Tarihi"), index=True, format="%d.%m.%Y") asil_dogum_tarihi = field.Date(_(u"Asıl Doğum Tarihi"), index=True, format="%d.%m.%Y") tashih_dogum_tarihi = field.Date(_(u"Tashih Doğum Tarihi"), index=True, format="%d.%m.%Y") asil_ad = field.String(_(u"Asıl Ad"), index=True) tashih_ad = field.String(_(u"Tashih Ad"), index=True) asil_soyad = field.String(_(u"Asıl Soyad"), index=True) tashih_soyad = field.String(_(u"Tashih Soyad"), index=True) gecerli_dogum_tarihi = field.Date(_(u"Geçerli Doğum Tarihi"), index=True, format="%d.%m.%Y") aciklama = field.String(_(u"Açıklama"), index=True) gun_sayisi = field.Integer(_(u"Gün Sayısı"), index=True) kurum_onay_tarihi = field.Date(_(u"Kurum Onay Tarihi"), index=True, format="%d.%m.%Y") sync = field.Integer(_(u"Senkronize"), index=True) personel = Personel() class Meta: app = 'Personel' verbose_name = _(u"Mahkeme") verbose_name_plural = _(u"Mahkemeler") list_fields = [ 'mahkeme_ad', 'karar_sayisi', 'aciklama', 'kurum_onay_tarihi' ] search_fields = ['kayit_no', 'mahkeme_ad', 'karar_sayisi'] hitap_service_prefix = "HitapMahkeme" def __unicode__(self): return '%s %s %s' % (self.mahkeme_ad, self.karar_tarihi, self.aciklama)
class Kadro(Model): """Kadro Modeli Kurum için ayrılmış Kadro bilgilerine modeldir. Kadrolar 4 halde bulunabilirler: SAKLI, IZINLI, DOLU ve BOŞ * SAKLI: Saklı kadro, atama yapılmaya müsadesi olmayan, etkinlik onayı alınmamış fakat kurum için ayrılmış potansiyel kadroyu tanımlar. * IZINLI: Henüz atama yapılmamış, fakat etkinlik onayı alınmış kadroyu tanımlar. * DOLU: Bir personel tarafından işgal edilmiş bir kadroyu tanımlar. Ataması yapılmıştır. * BOŞ: Çeşitli sebepler ile DOLU iken boşaltılmış kadroyu tanınmlar. ``unvan`` ve ``unvan_kod`` karşıt alanlardır. Birisi varken diğeri mevcut olamaz. """ kadro_no = field.Integer(_(u"Kadro No"), required=False) derece = field.Integer(_(u"Derece"), required=False) durum = field.Integer(_(u"Durum"), choices="kadro_durumlari", required=False) birim = Unit(_(u"Birim"), required=False) aciklama = field.String(_(u"Açıklama"), index=True, required=False) unvan = field.Integer(_(u"Unvan"), index=True, choices="unvan_kod", required=False) unvan_aciklama = field.String(_(u"Unvan Aciklama"), index=True, required=False) class Meta: app = 'Personel' verbose_name = _(u"Kadro") verbose_name_plural = _(u"Kadrolar") list_fields = ['durum', 'unvan', 'aciklama'] search_fields = ['unvan', 'derece'] list_filters = ['durum'] def __unicode__(self): # tn: Kadro bilgileri gösterilirken kullanılan mesaj return gettext(u"%(no)s - %(unvan)s %(derece)s. derece") % { 'no': self.kadro_no, 'unvan': self.get_unvan_display(), 'derece': self.derece }