class BagimliBirimSecimi(FlaskForm): """ 3 adimlik birbirine bağımlı birim seçimi formu. Ornek formdur. FormField olarak olusturdugunuz forma eklenip kullanilamaz. Proje Basvuru formunun genel_bilgiler bölümünde FakulteForm'u icerisinde kullanilmistir.Oradan yararlanilabilir """ select_node_one = Select2Field(_('Fakülte'), url="/select/birim", validators=[ DataRequired(message=_("Fakülte Alanı Boş Bırakılamaz")) ], placeholder=_("Fakülte"), node_name="first_node_name") select_node_two = Select2Field(_('Bölüm'), url="/select/birim", validators=[DataRequired(message=_("Bu Alan Boş Bırakılamaz"))], placeholder=_("Bölüm"), dependent="first_node_name", node_name="second_node_name") select_node_three = Select2Field(_('Ana Bilim Dali'), url="/select/birim", validators=[ DataRequired( message=_("Bu Alan Boş Bırakılamaz")) ], placeholder=_("Ana Bilim Dali"), dependent="second_node_name")
class KurumDisiHakemKayitForm(FlaskForm): """Proje Kayit Formu""" ad = StringField(label=_('Adı'), validators=[Length(max=50)]) soyad = StringField(label=_('Soyadı'), validators=[Length(max=50)]) universitede_gorev_almayan = BooleanField( label=_('Herhangi bir üniversitede görev almayan hakem ekle'), default=False) kurum = StringField(label='Kurum', validators=[Length(max=120)]) daire = StringField(label='Daire', validators=[Length(max=120)]) birim = StringField(label='Birim', validators=[Length(max=120)]) universite = Select2Field(_('Üniversite Seç'), url="/select/birim", placeholder=_("Üniversite"), node_name="fakulte_parent", birim_tipi=BirimTipiEnum.universite.value, kurum_ici=False) fakulte = Select2Field(_('Fakülte Seç'), url="/select/birim", placeholder=_("Fakülte"), dependent="fakulte_parent", node_name="bolum_parent", birim_tipi=BirimTipiEnum.fakulte.value, kurum_ici=False) bolum = Select2Field(_('Bölüm Seç'), url="/select/birim", placeholder=_("Bölüm"), dependent="bolum_parent", birim_tipi=BirimTipiEnum.bolum.value, kurum_ici=False) unvan = Select2Field( label=_('Ünvan'), validators=[DataRequired(message=_("Ünvan boş bırakılamaz"))], url='/select/hitap_unvan') email = EmailField( 'E-posta', validators=[ DataRequired(message=_('E-posta alanı boş bırakılamaz')), Email(message='Bir email adresi girmelisiniz'), Length(max=80) ]) hakem_turu = SelectField(label=_('Hakem Türü'), choices=HAKEM)
class STA1(FlaskForm, GenelIslemler): ilgili_memur = Select2Field( label=_('İlgili Memur Adı Soyadı'), validators=[ validators.DataRequired(message=_('Bu alan boş bırakılamaz.')) ], url='/select/personel')
class YurutucuForm(ProjeCalisani): """ Arastirma Projesi basvurusu Genel Bilgiler Form Wizard adımının içindeki projenin yürütücü bilgilerini içeren panelin form classı """ form_title = _('Proje Yürütücüsü') # yurutucu alanlari yurutucu_id = Select2Field(_('Yürütücü Seç'), url="/select/ogretim-elemani", placeholder=_("Yürütücü"), disabled=True) projeye_katkisi = FloatField( _('Katki (%)'), default=0, validators=[ DataRequired(message=_("Katkı Alanı Boş Bırakılamaz")), NumberRange( min=0, max=100, message= _("Projeye Katkisi Alanı İçin 0-100 Arası Bir Sayı Girmelisiniz." )) ]) ozgecmis_file_id = MultiFileField(_("Özgeçmiş Yükle"), validators=[Optional()], ids=uuid4().hex)
class OdemeYapilacakKisiBilgileri(Form): adi_soyadi = StringField(_("Adı Soyadı"), validators=[ DataRequired(_("Bu alan boş bırakılamaz")), Length(max=50), ]) banka_sube = StringField(_("Banka/şube"), validators=[ DataRequired(_("Bu alan boş bırakılamaz")), Length(max=50), ]) vergi_no = StringField(_("Vergi No"), validators=[ DataRequired(_("Bu alan boş bırakılamaz")), Length(max=50), ]) hesap_no = StringField(_("IBAN"), validators=[ DataRequired(_("Bu alan boş bırakılamaz")), Length(max=40), ]) vergi_dairesi_id = Select2Field(_('Vergi Dairesi'), url="/select/vergi-dairesi", placeholder=_("Vergi Dairesi Adı"), validators=[ DataRequired( _("Bu alan boş bırakılamaz")), ])
class HakemOneri(Form): """Hakem Oneri Formu""" ad = StringField(_("Ad"), validators=[Length(max=50)]) soyad = StringField(_("Soyad"), validators=[Length(max=50)]) email = StringField(_("Email"), validators=[Length(max=80)]) ogretim_elemani_id = Select2Field(_("Öğretim Üyesi Seç"), url="/select/ogretim-uyesi", placeholder=_("Öğretim Üyesi"))
class HariciArastirmaciForm(ProjeCalisani): """ Proje personelleri arasına eklenecek araştırmacı paneline karşılık gelen formdur """ form_title = _('Üniversite Dışı Araştırmacı') ad = StringField(_('Adı'), validators=[Length(max=50)], render_kw={"class": "form-control"}) soyad = StringField(_('Soyadı'), validators=[Length(max=50)], render_kw={"class": "form-control"}) hitap_unvan_id = Select2Field(_('Unvan Seç'), url="/select/hitap_unvan", render_kw={"class": "form-control"}, placeholder=_("Unvan")) fakulte_id = Select2Field( _('Fakülte Seç'), url="/select/birim", render_kw={"class": "form-control"}, placeholder=_("Fakülte/Enstitü/Yüksek Okul/Merkez")) bolum_id = Select2Field(_('Bölüm Seç'), url="/select/birim", render_kw={"class": "form-control"}, placeholder=_("Bölüm/Ana Bilim Dalı")) eposta = StringField( _('E-posta'), validators=[Length(max=80), Email(message=_('Geçersiz e-posta.'))], render_kw={"class": "form-control"}) is_telefonu = StringField(_('İş Telefonu'), validators=[Length(max=16)], render_kw={"class": "form-control"}) yonetici_yetkisi_var_mi = BooleanField( _('Bu kişi online olarak projeyi ve ara raporları düzenleyebilir/güncelleyebilir' )) ozgecmis_file_id = MultiFileField(_("Özgeçmiş Yükle"), validators=[Optional()], ids=uuid4().hex)
class GenelForm(FlaskForm): """Site ayarlari icindeki genel alani formu""" site_adi = StringField(_("Site Adı")) logo = FileField(label=_('Logo')) universite_id = Select2Field(_("Üniversite Adı"), url="/select/universite") bap_kisa_adi = StringField(_("BAP Kısa Adı")) sehir = StringField(_("Şehir")) adres = TextAreaField(_("Adres")) telefon = StringField(_("Telefon")) faks = StringField(_("Faks"))
class KurumBankaBilgisi(Form): hesap_adi = StringField(_("Hesap Adı")) iban = StringField(_("IBAN No"), validators=[Length(max=100)]) banka_adi = StringField(_("Banka Adı"), validators=[Length(max=100)]) banka_subesi = StringField(_("Banka Şubesi"), validators=[Length(max=100)]) vergi_no = StringField(_("Vergi No")) vergi_dairesi_id = Select2Field(_('Vergi Dairesi'), url="/select/vergi-dairesi", placeholder=_("Vergi Dairesi Adı"))
class KurumIciHakemKayitForm(FlaskForm): """Proje Kayit Formu""" personel_sec = Select2Field( label=_('Adı Soyadı'), validators=[ validators.DataRequired(message=_('Bu alan boş bırakılamaz.')) ], url='/select/personel') kurum_ici_hakem_turu = SelectField(label=_('Hakem Türü'), choices=HAKEM)
class FakulteForm(Form): """ Arastirma Projesi basvurusu Genel Bilgiler Form Wizard adımının içindeki projenin yürütüleceği fakülte/bölüm/bilim dalı bilgilerinin bulunduğu panelin form classı """ form_title = _('Projenin Yürütüleceği Faküllte/Bölüm/Ana Bilim Dalı Bilgileri (*)') proje_fakulte = Select2Field(_('Fakülte Seç'), url="/select/birim", validators=[ DataRequired(message=_("Fakülte Alanı Boş Bırakılamaz")) ], placeholder=_("Fakülte"), node_name="proje_bolum_parent", birim_tipi=BirimTipiEnum.fakulte.value, kurum_ici=True) proje_bolum = Select2Field(_('Bölüm Seç'), url="/select/birim", validators=[DataRequired(message=_("Bölüm Alanı Boş Bırakılamaz"))], placeholder=_("Bölüm"), dependent="proje_bolum_parent", node_name="proje_anabilim_dali_parent", birim_tipi=BirimTipiEnum.bolum.value, kurum_ici=True) proje_ana_bilim_dali = Select2Field(_('Ana Bilim Dalı Seç'), url="/select/birim", validators=[ DataRequired( message=_("Ana Bilim Dalı Alanı Boş Bırakılamaz")) ], placeholder=_("Anabilim Dalı"), dependent="proje_anabilim_dali_parent", node_name="proje_bilim_dali_parent", birim_tipi=BirimTipiEnum.ana_bilim_dali.value, kurum_ici=True)
class ArastirmaciForm(ProjeCalisani): """ Proje personelleri arasına eklenecek araştırmacı paneline karşılık gelen formdur """ form_title = _('Araştırmacı') personel_id = Select2Field(_("Personel Seç"), url="/select/personel", placeholder=_("Personel")) yonetici_yetkisi_var_mi = BooleanField( _('Bu kişi online olarak projeyi ve ara raporları düzenleyebilir/güncelleyebilir' )) ozgecmis_file_id = MultiFileField(_("Özgeçmiş Yükle"), validators=[Optional()], ids=uuid4().hex)
class Bursiyer(ProjeCalisani): """ Proje personelleri arasına eklenecek tez öğrencisi paneline karşılık gelen formdur """ form_title = _('Bursiyer') ogrenci_id = Select2Field(_("Ögrenci Seç"), url="/select/ogrenci", render_kw={"class": "form-control"}, placeholder=_("Öğrenci")) yonetici_yetkisi_var_mi = BooleanField( _('Bu kişi online olarak projeyi ve ara raporları düzenleyebilir/güncelleyebilir' )) ozgecmis_file_id = MultiFileField(_("Özgeçmiş Yükle"), validators=[Optional()], ids=uuid4().hex)
class OnaylayanYetkiliForm(Form): """ Arastirma Projesi basvurusu Genel Bilgiler Form Wizard adımının içindeki projenin onaylayan yetkili bilgilerini içeren panelin form classı """ form_title = _('Onaylayan Yetkili') # onaylayan yetkili onaylayan_yetkili_id = Select2Field(_('Onaylayan Yetkili Seç'), url="/select/personel", validators=[ DataRequired(message=_( "Onaylayan Yetkili Alanı Boş Bırakılamaz")) ], placeholder=_("Onaylayan Yetkili")) onay_tarihi = DatePickerField(_('Onay Tarihi'), format='%d.%m.%Y', validators=[ DataRequired(message=_("Onay Tarihi Alanı Boş Bırakılamaz")) ], disable_older_dates=False, disable_further_dates=True)
class MuhasebeFisMaddesi(Form): class Meta(DefaultMeta): locales = ["tr"] # todo: select2 hesap_kodu = Select2Field(_("Hesap Kodu"), url="/select/detayli-hesap-kodu", placeholder=_("Detaylı Hesap Kodu"), validators=[ DataRequired(_("Bu alan boş bırakılamaz")), ]) kurumsal_kod = StringField(_("Kurumsal Kod"), render_kw={"class": "form-control"}, validators=[ DataRequired(_("Bu alan boş bırakılamaz")), Length(max=20), ]) fonksiyonel_kod = SelectField(_("Fonksiyonel Kodlar"), render_kw={"class": "form-control"}, validators=[ DataRequired( _("Bu alan boş bırakılamaz")), ]) finans_kodu = StringField(_("Finans Kodu"), render_kw={"class": "form-control"}, validators=[ DataRequired(_("Bu alan boş bırakılamaz")), ], default=2) borc = ZopseduDecimalField(_('Borç(TL)'), validators=[ DecimalLength( max_length=12, error_message="Borç için en fazla 12 " "haneli bir değer girebilirsiniz") ]) alacak = ZopseduDecimalField( _('Alacak(TL)'), validators=[ DecimalLength(max_length=12, error_message="Alacak için en fazla 12 " "haneli bir değer girebilirsiniz") ])
class HakemSearchForm(FlaskForm): """Proje Arama Formu""" ad = StringField(label=_('Adı'), validators=[Length(max=50)]) soyad = StringField(label=_('Soyadı'), validators=[Length(max=50)]) bolum = Select2Field(label=_('Bölüm'), url='/select/bolum') kurum_ici_option = SelectField(label='Kurum İçi', choices=[('0', 'Hepsi'), ('1', 'Kurum İçi'), ('2', 'Kurum Dışı')], default=0) choice = HakemTuru.choices() choice = [('0', 'Hepsi')] + choice hakem_turu_option = SelectField(label='Hakem Türü', choices=choice, default=0) def validate(self): if not any([self.ad.data, self.soyad.data]): return False return True
class ProjeSatinAlmaTalepleri(FlaskForm): urun_secimi_information = [ _( "Ürünleriniz için teknik şartnamenizi 'Teknik Şartname Ekle' butonu ile ekleyebilirsiniz."), _("Genel teknik şartname ekle butonu teknik şartname yüklenmeyen " "kalemler için ortak şartname eklemek için kullanılır."), _("TEKNİK ŞARTNAME DOSYALARINIZI İMZA ETMENİZ ZORUNLUDUR"), _("Seçili kalemler için talep edilen miktar değeri yazmak zorundasınız."), _("Talep edilen miktar kullanılabilir miktardan büyük olamaz"), _("Muayene komisyon üyelerini belirtmek zorundasınız"), _('Muayene kabul komisyonu başkanı aksi bir durum oluşmadığı takdirde proje yürütücüsü olmalıdır') ] talepler = FieldList(FormField(TalepForm), min_entries=0) genel_teknik_sartname_belge = CustomFileField( _("Genel Teknik Şartname"), validators=[FileExtensionRestriction( error_message=_("Lütfen uzantısı geçerli bir dosya yükleyiniz."))]) baskan = Select2Field(label=_('Adı Soyadı'), validators=[ DataRequired(message=_('Bu alan boş bırakılamaz.'))], url='/select/personel') yedek_baskan = Select2Field(label=_('Adı Soyadı'), validators=[ DataRequired(message=_('Bu alan boş bırakılamaz.'))], url='/select/personel') uye = Select2Field(label=_('Adı Soyadı'), validators=[ DataRequired(message=_('Bu alan boş bırakılamaz.'))], url='/select/personel') uye2 = Select2Field(label=_('Adı Soyadı'), validators=[ DataRequired(message=_('Bu alan boş bırakılamaz.'))], url='/select/personel') yedek_uye = Select2Field(label=_('Adı Soyadı'), validators=[ DataRequired(message=_('Bu alan boş bırakılamaz.'))], url='/select/personel') yedek_uye2 = Select2Field(label=_('Adı Soyadı'), validators=[ DataRequired(message=_('Bu alan boş bırakılamaz.'))], url='/select/personel')
class AnasayfaFormu(FlaskForm): proje_ara = Select2Field(label=_('Proje Ara'), url='') makine_ara = Select2Field(label=_('Makine/Teçhizat Ara'), url='')
class ProjeTuruFormu(FlaskForm): """ Proje Türü Formu """ information = [ "Proje türünü taslak olarak kaydedip daha sonra işlem yapmaya devam edebilirsiniz", "Başvuru yapılmış bir proje türünü güncelleyemezsiniz.", "Başvuru yapılmış bir projeyi güncellemek isterseniz versiyonlama özelliğini kullanabilirsiniz", "Bir proje türünü versiyonlarsanız eski versiyona artık başvuru yapılamayacaktır. Başvurular yeni versiyona yapılabilir." "Basvuru aktif mi seçeneğini işaretlemezseniz proje türü başvuruya açık olmaz", ] # Proje türü formu Genel Ayarlar-1 Bölümü # pylint: disable=line-too-long ad = StringField( _("Proje Tür Adı"), [validators.DataRequired(message=_("Proje Tür Adı Alanı Boş Olamaz"))]) proje_turu_aciklama = SummerNoteField(_("Proje Türü Açıklaması")) kategori = SelectField( _("Kategori"), choices=ProjeTuruKategorisi.choices(), default=ProjeTuruKategorisi.bilimsel_arastirma_projesi, coerce=ProjeTuruKategorisi.coerce) gelir_kasasi_id = Select2Field( _('Kasa Seç'), url="/select/gelir-kasasi", validators=[DataRequired(message=_("Kasa alanı boş bırakılamaz"))], placeholder=_("Kasa Seçiniz")) basvuru_baslama_tarihi = DatePickerField( "Başvuru Başlangıç Tarihi", format='%d.%m.%Y', validators=[ validators.DataRequired( message=_("Başvuru Başlama Tarihi Giriniz")) ]) basvuru_bitis_tarihi = DatePickerField( "Başvuru Bitiş Tarihi", format='%d.%m.%Y', validators=[ validators.DataRequired(message=_("Başvuru Bitiş Tarihi Giriniz")) ]) hakem_onerilsin_mi = BooleanField("Hakem Önerilsin mi?", default=False) basvuru_hakem_oneri_sayisi = IntegerField("Hakem Öneri Sayısı", default=0) hakem_degerlendirmesi_gerekli_mi = BooleanField( "Hakem Değerlendirmesi Gerekli mi?", default=False) sure_alt_limiti = IntegerField( "Proje Süre Alt Limiti", validators=[ validators.DataRequired( message=_("Süre alt limiti alanı boş bırakılamaz")), LessThan( "sure_ust_limiti", message= "Proje süre alt limit değeri süre üst limit değerinden küçük olmalıdır" ) ]) sure_ust_limiti = IntegerField( "Proje Süre Üst Limiti", validators=[ validators.DataRequired( message=_("Süre Üst Limiti Alanı Boş Bırakılamaz")) ]) sure_birimi = SelectField(_("Proje Süre Birimi"), choices=ProjeSuresiBirimi.choices(), default=ProjeSuresiBirimi.ay, coerce=ProjeSuresiBirimi.coerce) proje_mali_destek_suresi = IntegerField(_("Proje Mali Destek Süresi"), default=0) mali_destek_suresi_birimi = SelectField( _("Mali Destek Süresi Birimi"), choices=ProjeSuresiBirimi.choices(), default=ProjeSuresiBirimi.ay, coerce=ProjeSuresiBirimi.coerce) # Proje Türü Formu Genel Ayarlar-2 Bölümü # # ek süre ile ilgili alanlar ek_sure_talep_tipi = SelectField("Ek Süre Talep Tipi", choices=EkTalepTipi.choices(), default=EkTalepTipi.yok, coerce=EkTalepTipi.coerce) ek_sure_talep_degeri = IntegerField(_("Ek Süre Talep Değeri"), default=0) ek_sureler_proje_sure_limitine_dahil_mi = BooleanField( _("Ek Süre Proje Süre Limitine Dahil mi?"), default=False) # # # Proje tipi yuksek lisans / doktora (uzmanlik) veya belirtilmemis # proje_tipi = SelectField("Proje Tipi", # choices=ProjeTipi.choices(), # default=ProjeTipi.yuksek_lisans, # coerce=ProjeTipi.coerce) # diger alanlardan bagımsız boolean fieldlar basvuru_aktif_mi = BooleanField(_("Başvuru Aktif mi ?"), default=True) proje_ek_talepleri_icin_rapor_kontrolu_yapilacak_mi = BooleanField( _("Proje Ek Talepleri İçin Rapor Kontrolü Yapılacak mı ?"), default=False) herkese_acik_proje_listesinde_yer_alacak_mi = BooleanField( _("Herkese Açık Proje Listesinde Yer Alacak mı ?"), default=False) # butce tercihi # todo sabit secenekler elimizde olmadigindan daha sonra eklenmek üzere # secenekler arasından kaldırıldı. # ButceTercihleri.sabit_seceneklerden_birini_secsin.value), # _("Sabit Bütçe Seçeneklerinden Birini Seçsin")), butce_tercihi = SelectField( _("Bütçe Tercihleri"), choices=ButceTercihleri.choices(), default=ButceTercihleri.proje_yurutucusu_onersin, coerce=ButceTercihleri.coerce) # Proje türü formu ek dosya ayarlari Bölümü proje_yurutucusu_ek_dosyalar_ekleyebilir_mi = BooleanField( _("Proje Yürütücüsü Ek Dosyalar Ekleyebilir mi ?"), default=True) is_zaman_plani_otomasyon_icerisinde_doldurulsun_mu = BooleanField( _("İş Zamanı Planı Otomasyon İçerisinde Doldurulsun mu ?"), default=False) ek_dosya_yuklenebilir_mi = BooleanField(_("Ek Dosya Yüklenebilir mi ?"), default=False) # proje türü için gerekli formlar oneri_sablon_id = SelectField(_("Öneri Şablonu"), choices=[], coerce=int) hakem_degerlendirme_sablon_id = SelectField( _("Hakem Proje Değerlendirme Şablonu"), choices=[], coerce=int) hakem_ara_rapor_sablon_id = SelectField(_("Hakem Ara Rapor Şablonu"), choices=[], coerce=int) hakem_sonuc_rapor_sablon_id = SelectField(_("Hakem Sonuc Raporu Şablonu"), choices=[], coerce=int) ara_rapor_sablon_id = SelectField(_("Ara Rapor Şablonu"), choices=[], coerce=int) sonuc_raporu_sablon_id = SelectField(_("Sonuç Raporu Şablonu"), choices=[], coerce=int) sozlesme_sablon_id = SelectField(_("Proje Sözleşmesi Şablonu"), choices=[], coerce=int) # Hangi raporlar gerekli? Sadece sonuc, ara ve sonuc, ikisi de gerekli degil ara_rapor_gerekli_mi = BooleanField(_("Ara Rapor Gerekli mi ?"), default=False) sonuc_raporu_gerekli_mi = BooleanField(_("Sonuç Raporu Gerekli mi ?"), default=False) rapor_gecikmelerinde_satinalma_yapabilecek_mi = BooleanField( _("Rapor Gecikmelerinde Satınalma Talebi Yapabilecek mi ?"), default=False) rapor_gecikmelerinde_yolluk_talebi_yapabilecek_mi = BooleanField( _("Rapor Gecikmelerinde Yolluk Talebi Yapabilecek mi ?"), default=False) rapor_gecikmelerinde_ek_talep_yapabilecek_mi = BooleanField( _("Rapor Gecikmelerinde Ek Talep Yapabilecek mi ?"), default=False) sonuc_raporu_sonrasi_islem_yapilsin_mi = BooleanField( _("Sonuç Raporundan sonra işlem yapabilir mi ?"), default=False) rapor_araligi_suresi = IntegerField(_("Rapor Aralığı Süresi"), default=0, validators=[validators.Optional()]) rapor_araligi_birimi = SelectField(_("Rapor Aralığı Birimi"), choices=ProjeSuresiBirimi.choices(), default=ProjeSuresiBirimi.ay, coerce=ProjeSuresiBirimi.coerce) sonuc_raporu_icin_ek_sure = IntegerField( _("Sonuç Raporu İçin Ek Süre"), default=0, validators=[validators.Optional()]) sonuc_raporu_icin_ek_sure_birimi = SelectField( _("Sonuç Raporu İçin Ek Süre Birimi"), choices=ProjeSuresiBirimi.choices(), default=ProjeSuresiBirimi.ay, coerce=ProjeSuresiBirimi.coerce) rapor_gecikme_mail_suresi = IntegerField( _("Rapor Gecikme Mail Süresi"), default=0, validators=[validators.Optional()]) rapor_gecikme_mail_suresi_birimi = SelectField( _("Rapor Gecikme Mail Süresi Birimi"), choices=ProjeSuresiBirimi.choices(), default=ProjeSuresiBirimi.ay, coerce=ProjeSuresiBirimi.coerce) personel_ekrani_bilgilendirme_mesaji = SummerNoteField( _("Personel Ekranı Bilgilendirme Mesajı")) proje_yurutucusu_icin_yardim_mesaji = SummerNoteField( _("Proje Yürütücüsü İçin Yardım Mesajı")) basvuru_yapilmadan_gelecek_uyari = SummerNoteField( _("Basvuru Yapilmadan Gelecek Uyari Mesajı")) basvuru_tamamlandiktan_sonra_bilgilendirme = SummerNoteField( _("Başvuru Tamamlandıktan Sonra Bilgilendirme Mesajı")) gonder_islemi_yapilirken_yurutucuye_gosterilecek_uyari = SummerNoteField( _("Gönder İşlemi Yapılırken Yurutucuye Gösterilecek Uyarı Mesajı")) ek_dosyalar_ekrani_bilgilendirme = SummerNoteField( _("Ek Dosyalar Ekranı Bilgilendirme Mesajı")) hakem_onerisi_bilgilendirme = SummerNoteField( _("Hakem Önerisi Bilgilendirme Mesajı")) ara_rapor_uyari = SummerNoteField(_("Ara Rapor İçin Uyarı Mesajı")) sonuc_raporu_uyari = SummerNoteField(_("Sonuc Raporu İçin Uyarı Mesajı")) butce_ekrani_bilgilendirme = SummerNoteField( _("Bütçe Ekranı Bilgilendirme Mesajı")) yurutucu_proje_sozlesme_bekleme_mesaji = SummerNoteField( _("Yürütücü Proje Sözleşme Bekleme Mesajı")) degerlendirme_ekraninda_bilgi_notu = SummerNoteField( _("Değerlendirme ekranında bilgi notu")) degerlendirme_sonunda_bilgi_notu = SummerNoteField( _("Değerlendirme sonunda bilgi notu")) # Proje türü formu personel ayarlari bölümü personel_ayarlari = FormField(ProjeTuruPersonel) # Proje türü butce sablon ayarlari bölümü butce_ayarlari = FormField(ProjeTuruButce) butce_kalemleri = FieldList(FormField(ButceKalemi)) ek_dosyalar = FieldList(FormField(EkDosya), min_entries=1) ciktilar = FieldList(FormField(Cikti), min_entries=1) cikti_secenekleri = SelectField(_("Çıktı Seçenekleri"), choices=[], coerce=int) def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) sablon_types = { 4: [], # oneri sablon type id 5: [], # Hakem proje degerlendirme sablon type id 8: [], # hakem souc raporu degerlendirme sablon type id 9: [], # Hakem Ara Raporu Değerlendirme Şablonu 14: [], # Sonuç Raporu Şablonu sablon type id 15: [], # Ara Rapor Şablonu sablon type id 3: [], # sözlesme sablon type id } proje_turu_sablonlari = DB.session.query( Sablon.id.label("sablon_id"), Sablon.adi.label("sablon_adi"), SablonTipi.id.label("sablon_tipi_id"), SablonTipi.adi.label("sablon_tipi_adi")).join( Sablon.sablon_tipi).filter( Sablon.module_name == "BAP", Sablon.kullanilabilir_mi == True, SablonTipi.id.in_(sablon_types.keys())).all() for sablon in proje_turu_sablonlari: sablon_types[sablon.sablon_tipi_id].append( (sablon.sablon_id, sablon.sablon_adi)) self.set_field_choices(self.oneri_sablon_id, sablon_types[4]) self.set_field_choices(self.hakem_degerlendirme_sablon_id, sablon_types[5]) self.set_field_choices(self.hakem_ara_rapor_sablon_id, sablon_types[9]) self.set_field_choices(self.hakem_sonuc_rapor_sablon_id, sablon_types[8]) self.set_field_choices(self.sonuc_raporu_sablon_id, sablon_types[14]) self.set_field_choices(self.ara_rapor_sablon_id, sablon_types[15]) self.set_field_choices(self.sozlesme_sablon_id, sablon_types[3]) bap_sablon_tipleri = DB.session.query(Sablon).options( lazyload(Sablon.query)).filter(Sablon.module_name == "BAP").filter( ~Sablon.sablon_tipi_id.in_(sablon_types.keys())).all() if bap_sablon_tipleri: sablon_secenekleri = [] for sablon in bap_sablon_tipleri: sablon_secenekleri.append( (sablon.id, "{sablon_adi} ({sablon_tipi})".format( sablon_tipi=sablon.sablon_tipi.adi, sablon_adi=sablon.adi))) self.cikti_secenekleri.choices = sablon_secenekleri self.cikti_secenekleri.default = sablon_secenekleri[0] self.cikti_secenekleri.coerce = int # proje turu basvurusunda gorunecek analitik gelir kodlarini db den alip proje turu # formu butce_kalemleri icerisine ekler if not self.butce_kalemleri.entries: analitik_butce_kodlari = DB.session.query( GiderSiniflandirma).filter( GiderSiniflandirma.kodu.in_( PROJE_TURU_GELIR_KODLARI)).all() for butce_kodu in analitik_butce_kodlari: self.butce_kalemleri.append_entry({ "gider_siniflandirma_id": butce_kodu.id, "secili_mi": False, "butce_kalemi_adi": "{} {}".format(butce_kodu.kodu, butce_kodu.aciklama) }) @staticmethod def set_field_choices(field, choices): """ :param field: form field :param choices: tuple list of choices :return: """ if choices: setattr(field, "choices", choices) setattr(field, "default", getattr(field, "choices")[0])
class FirmaKayitFormu(FlaskForm): """Firma Kayit Formu""" bilgi_notu = _( """Lütfen kayıt işlemi için firma ve yetkili bilgilerinizi doğru girdiğinizden emin olunuz. Değerlendirme sonucunda firmanızın onay alması halinde, giriş yapmanız için kullanıcı oluşturulacaktır. Yetkili bilgileri kısmı, firmanızda yetkili olan kişi şeklinde doldurulmadır.""" ) firma_faaliyet_belgesi_id = FileField( _("Firma Faaliyet Belgesi"), validators=[ CustomFileFieldRequired(error_message=_( "Firma faaliyet belgesi yüklemek zorundasınız")), FileExtensionRestriction(error_message=_( "Lütfen uzantısı geçerli bir dosya yükleyiniz.")) ]) adres = StringField(_("Firma Adresi"), validators=[ DataRequired(message=_("Bu Alan Boş Bırakılamaz")), Length(max=500) ]) adi = StringField(_("Firma Adı"), validators=[Length(max=500)]) telefon = StringField( _("Firma Telefon"), validators=[ DataRequired(message=_("Bu Alan Boş Bırakılamaz")), Length(max=25) ]) email = StringField(_("Firma E-posta"), validators=[ DataRequired(message=_("Bu Alan Boş Bırakılamaz")), Length(max=80), Email(message=_('Geçersiz e-posta.')) ]) vergi_kimlik_numarasi = StringField( _("Vergi Kimlik Numarası"), validators=[ DataRequired(message=_("Bu Alan Boş Bırakılamaz")), Length(max=20) ]) faaliyet_belgesi_verilis_tarihi = DatePickerField( _("Faaliyet Belgesi Veriliş Tarihi"), validators=[DataRequired(message=_("Bu Alan Boş Bırakılamaz"))], disable_older_dates=False) yetkili_adi = StringField( _("Yetkili Adı"), validators=[ DataRequired(message=_("Bu Alan Boş Bırakılamaz")), Length(max=50) ]) yetkili_soyadi = StringField( _("Yetkili Soyadı"), validators=[ DataRequired(message=_("Bu Alan Boş Bırakılamaz")), Length(max=50) ]) vergi_dairesi_id = Select2Field(_('Vergi Dairesi'), url="/select/vergi-dairesi", placeholder=_("Vergi Dairesi Adı")) iban = StringField(_("IBAN No"), validators=[ DataRequired(message=_("Bu Alan Boş Bırakılamaz")), Length(max=30) ]) banka_sube_adi = StringField( _("Banka/Şube Adı"), validators=[ DataRequired(message=_("Bu Alan Boş Bırakılamaz")), Length(max=255) ]) yetkili_user_bilgileri = FormField(UserBilgileri)
class HakemEkleForm(FlaskForm): """hakem atama form classi""" hakem_id = Select2Field(_("Hakem Ara"), url="/select/hakem")
class HariciOgretimElemaniFormu(FlaskForm): tckn = IntegerField( label=_("TC Kimlik No : "), validators=[ validators.DataRequired(message=_('Bu alan boş bırakılamaz.')) ]) unvan = StringField(label=_("Unvan : "), validators=[Length(max=50)]) ad = StringField( label=_("Ad : "), validators=[ validators.DataRequired(message=_('Bu alan boş bırakılamaz.')), Length(max=50) ]) soyad = StringField( label=_("Soyad : "), validators=[ validators.DataRequired(message=_('Bu alan boş bırakılamaz.')), Length(max=50) ]) birincil_eposta = StringField( label=_("Eposta : "), validators=[ validators.DataRequired(message=_('Bu alan boş bırakılamaz.')), Length(max=50), Email(message='Bir email adresi girmelisiniz') ]) ikincil_eposta = StringField( label=_("İkinci Eposta : "), validators=[ validators.DataRequired(message=_('Bu alan boş bırakılamaz.')), Length(max=50), Email(message='Bir email adresi girmelisiniz') ]) ev_tel_no = IntegerField(label=_("Ev Telefonu : ")) cep_tel = IntegerField(label=_("Cep Tel. : ")) adres = TextAreaField(label=_("Adres :")) adres2 = TextAreaField(label=_("Adres2 :")) akademik_yayinlari = TextAreaField(label=_('Akademik Yayınları :')) banka_adi = StringField(label=_('Banka Adı : '), validators=[Length(max=100)]) sube_adi = StringField(label=_('Şube Adı : '), validators=[Length(max=100)]) sube_kod = IntegerField(label=_('Şube Kodu : ')) hesap_no = IntegerField(label=_('Hesap No : ')) iban_no = StringField(label=_('Iban No : '), validators=[Length(max=100)]) submit = SubmitField(label=_('Kaydet')) universite = Select2Field( _('Üniversite Seç'), url="/select/birim", validators=[ DataRequired(message=_("Üniversite alanı boş bırakılamaz")) ], placeholder=_("Üniversite"), node_name="fakulte_parent", birim_tipi=BirimTipiEnum.universite.value, kurum_ici=True) fakulte = Select2Field( _('Fakülte Seç'), url="/select/birim", validators=[DataRequired(message=_("Bölüm alanı boş bırakılamaz"))], placeholder=_("Fakülte"), dependent="fakulte_parent", node_name="bolum_parent", birim_tipi=BirimTipiEnum.fakulte.value, kurum_ici=True) bolum = Select2Field( _('Bölüm Seç'), url="/select/birim", validators=[DataRequired(message=_("Bölüm alanı boş bırakılamaz"))], placeholder=_("Bölüm"), dependent="bolum_parent", birim_tipi=BirimTipiEnum.bolum.value, kurum_ici=True) unvan = Select2Field( label=_('Ünvan'), validators=[DataRequired(message=_("Ünvan boş bırakılamaz"))], url='/select/hitap_unvan')