class GenderAndALanguageForm(BagimliBirimSecimi): """Example form for Checkbox, RadioButton and TextField with validation""" class Meta(DefaultMeta): """Ekstra form meta""" form_name = "zopsedu_gender_and_language_form" form_type = "generic" will_explored = False will_listed = False gender = fields.MultiCheckboxField(_('Cinsiyet'), choices=[(1, _('Erkek')), (2, _('Kadın'))]) language = fields.RadioButtonField(_('Dil'), choices=[(1, _('İngilizce')), (2, _('Türkçe'))]) required_field = StringField(_('Gerekli alan'), [ validators.DataRequired(message=_('Bu alan boş bırakılamaz.'))]) submit = SubmitField(label=_('Gönder')) # Birden fazla MultiFileField veya Select2Field varsa file = MultiFileField() file2 = MultiFileField(ids=uuid4().hex) # url = '/form_samples/select-random' d2 = fields.Select2Field(url='/form_samples/select-random') d22 = fields.Select2Field(url='/form_samples/select-random', dependent='d2') d222 = fields.Select2Field(url='/form_samples/select-random', dependent='d22') s2 = fields.Select2Field(choices=il_ilce_mah) s22 = fields.Select2Field(dependent='s2', choices=il_ilce_mah) s222 = fields.Select2Field(dependent='s22', choices=il_ilce_mah) birim = fields.Select2Field(url='/select/birim') hakem = fields.Select2Field(url='/select/hakem') personel = fields.Select2Field(url='/select/personel')
class ToplantiGundem(FlaskForm): """Toplanti gundem formu""" information = [ "Toplantıya katılımcı eklemeden toplantıyı sonuçlandıramazsınız.", "Toplantıyı sonuçlandırabilmek için toplantıda bulunan bütün gündemlerin karar durumlarının belirlenmesi gerekir.", "Toplantıyı sonuçlandırdıktan sonra toplantıya gündem/karar ekleyip çıkaramaz var olan kararlarda düzenleme yapamazsınız.", "Toplantıyı sonuçlandırdığınızda toplantı durumu sistem tarafından 'gerçekleşti' olarak degiştirilir.", ] gundem_id = HiddenIntegerField() proje_id = HiddenIntegerField() toplanti_id = HiddenIntegerField() sablon_id = HiddenIntegerField() ek_dosya_id = MultiFileField("Gündeme Ait Ek Dosya") karar = SummerNoteField(_("Karar")) aciklama = SummerNoteField(_("Gündem")) tipi = SelectField(_("Gündem Tipi"), choices=GundemTipi.choices(), coerce=GundemTipi.coerce) karar_durum = SelectField(_("Karar Durumu"), choices=KararDurumu.choices(), coerce=KararDurumu.coerce) sablon = SelectField(_("Gündem Şablonu")) gundem_sira_no = SelectField(_("Gündem Sıra No"), coerce=int) yonetime_bilgi_notu = SummerNoteField(_("Yönetime Bilgi Notu")) kisiye_ozel_not = SummerNoteField(_("Kişiye Özel Not")) proje_basligi = StringField("Proje Adı", validators=[Length(max=255)])
class PA19(FlaskForm, GenelIslemler): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) toplantilar = DB.session.query(BapToplanti).filter( BapToplanti.sonuclandi_mi == False).all() toplanti_list = [(0, _("Lütfen kararın alındığı toplantıyı seçiniz"))] for toplanti in toplantilar: toplanti_list.append( (toplanti.id, "Toplanti Tarihi: {}".format( toplanti.toplanti_tarihi.strftime('%d.%m.%Y')))) self.toplanti_tarihi.choices = toplanti_list self.toplanti_tarihi.default = 0 toplanti_tarihi = SelectField(label=_("Toplantı tarihi seçiniz"), coerce=int) ek_dosya_id = MultiFileField("Gündeme Ait Ek Dosya", validators=[Optional()]) sablon_id = HiddenIntegerField() karar = SummerNoteField(_("Karar")) aciklama = SummerNoteField(_("Gündem")) tipi = SelectField(_("Gündem Tipi"), choices=GundemTipi.choices(), coerce=GundemTipi.coerce) karar_durum = SelectField(_("Karar Durumu"), choices=KararDurumu.choices(), coerce=KararDurumu.coerce)
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 ProjeDegerlendirmeForm(FlaskForm): """Example hakem proje degerlendirme formu""" proje_konusu = fields.RadioButtonField( _('Proje konusu özgün mü?'), choices=proje_degerlendirme_secenekleri) proje_amaci = fields.RadioButtonField( _('Proje amacı açık bir şekilde belirtilmiş mi?'), choices=proje_degerlendirme_secenekleri) proje_bilimsel = fields.RadioButtonField( _('Proje amacı bilimsel bakımdan anlamlı mı?'), choices=proje_degerlendirme_secenekleri) proje_katki = fields.RadioButtonField(_( 'Tamamlandığında sonuçları ile alanında bilime evrensel ve ulusal ölçülerde katkı ' 'yapması ve ülkenin teknolojik, ekonomik ve sosyo-kültürel kalkınmasına yönelik ' 'katkıları var mı ve gerçekçi mi?'), choices= proje_degerlendirme_secenekleri) proje_temeli = fields.RadioButtonField( _('Projenin kuramsal temeli yeterli düzeyde literatür ' 'araştırılması yapılarak verilmiş mi?'), choices=proje_degerlendirme_secenekleri) proje_metot = fields.RadioButtonField( _('Projede uygulanacak metotlar açık bir şekilde verilmiş mi?'), choices=proje_degerlendirme_secenekleri) proje_arastirma = fields.RadioButtonField( _('Proje araştırma yöntemi amacı ile tutarlı mı?'), choices=proje_degerlendirme_secenekleri) proje_takvimi = fields.RadioButtonField( _('Proje takviminde yer alan işler ve iş süreleri proje araştırma yönetimi ile uyumlu mu?' ), choices=proje_degerlendirme_secenekleri) sarf_techizat = fields.RadioButtonField( _('Talep edilen sarf ve teçhizat, araştırmanın amacı ve var olan alt yapı ile uyumlu mu?' ), choices=proje_degerlendirme_secenekleri) sanayi = fields.RadioButtonField(_('Proje sanayide uygulanabilir mi?'), choices=proje_degerlendirme_secenekleri) etik_kurul = fields.RadioButtonField( _('Etik Kurul Kararı gerekli mi?'), choices=proje_degerlendirme_secenekleri) gorus_oneri_degisiklik = TextAreaField( label=("Lütfen varsa görüş ve önerilerinizi belirtiniz."), render_kw={"placeholder": "Görüş / Öneri / Değişiklik"}) dosya = BooleanField(label=_( "Değerlendirmeye ek olarak, " "bilgisayarımdan dosya seçerek yüklemek istiyorum"), default=False) dosya_id = MultiFileField(label=_("Dosya Ekle"), validators=[validators.optional()], ids=uuid4().hex) degerlendirme_sonucu = fields.RadioButtonField( _('Lütfen inceleme sonucunuzu işaretleyiniz?'), choices=[(choice.name, choice.value) for choice in ProjeDegerlendirmeSonuc]) degerlendirme_tamamlandi = BooleanField( label=_("Proje değerlendirmesi tamamlandı."), default=False)
class RaporForm(FlaskForm): information = [ _("Lütfen rapor metnini doldurunuz."), _("Rapor için ek dosya yükleyebilirsiniz"), _("Raporu tamamla seçeneğini işaretlerseniz daha sonra düzenleyemezsiniz.(Düzenleyebilmek " "için yetkili ile iletişime geçmeniz gerekir.)") ] rapor_metni = SummerNoteField(_("Rapor Metni")) rapor_dosya = MultiFileField("Rapor Dosya") tamamlandi_mi = BooleanField(_("Raporu Tamamla"))
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 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 IcerikEkDosyaFormu(FlaskForm): """Icerik ek dosya Formu""" icerik_ek_dosya_id = HiddenIntegerField() adi = StringField(_("Ek Dosya Adı")) icerik_id = MultiFileField()
class FarabiForm(FlaskForm): """ Erasmus form fields """ ad = StringField( label=_("Ad"), validators=[validators.DataRequired(message=_("Ad boş bırakılamaz."))]) soyad = StringField( label=_("Soyad"), validators=[ validators.DataRequired(message=_("Soyad boş bırakılamaz.")) ]) tc = IntegerField(label=_("T.C. Kimlik No"), validators=[ validators.DataRequired( message=_("T.C. Kimlik No boş bırakılamaz.")) ]) bolum = StringField( label=_("Bölümü"), validators=[ validators.DataRequired(message=_("Bölüm boş bırakılamaz.")) ]) ogrenci_no = IntegerField( label=_("Öğrenci No"), validators=[ validators.DataRequired(message=_("Öğrenci No boş bırakılamaz.")) ]) adres = StringField( label=_("Address"), validators=[ validators.DataRequired(message=_("Adres boş bırakılamaz.")) ]) photo = MultiFileField(file_types=['jpg', 'jpeg', 'png'], button_name=_('Fotoğraf Yükle'), colmd=4) kurum_kordinatoru = StringField( label=_("Kurum Koordinatörü"), validators=[ validators.DataRequired( message=_("Kurum Koordinatörü boş bırakılamaz.")) ]) phone_number = StringField( label=_("Telefon No"), default=0, validators=[ validators.DataRequired(message=_("Telefon No boş bırakılamaz.")) ]) faks = StringField( label=_("Faks"), default=0, validators=[ validators.DataRequired(message=_("Faks boş bırakılamaz.")) ]) email = StringField( label=_("E-Posta"), validators=[ validators.DataRequired(message=_("E-Posta boş bırakılamaz.")) ]) bolum_kordinatoru = StringField( label=_("Bölüm Koordinatörü"), validators=[ validators.DataRequired( message=_("Bölüm Koordinatörü boş bırakılamaz.")) ]) ogrenci_dogum_tarihi = DatePickerField( label=_("Doğum Tarihi"), validators=[ validators.DataRequired(message=_("Doğum Tarihi boş bırakılamaz.")) ]) ogrenci_uyruk = StringField( label=_("Uyruk"), validators=[ validators.DataRequired(message=_("Uyruk boş bırakılamaz.")) ]) ogrenci_cinsiyet = SelectField(label=_("Cinsiyet"), choices=[(0, _("Erkek")), (1, _("Kadın")), (2, _("Diğer"))], default=2) ogrenim_durumu = StringField( label=_("Devam Edilen Diploma Derecesi"), validators=[ validators.DataRequired( message=_("Devam Edilen Diploma Derecesi boş bırakılamaz.")) ]) sinifi = IntegerField( label=_("Sınıfı"), validators=[ validators.DataRequired(message=_("Sınıf boş bırakılamaz.")) ]) dogum_yeri = StringField( label=_("Doğum Yeri"), validators=[ validators.DataRequired(message=_("Doğum yeri boş bırakılamaz.")) ]) bos_input = StringField(render_kw={"class": "form-control"}) zayif = BooleanField(label=_("Zayıf"), default=False) orta = BooleanField(label=_("Orta"), default=False) iyi = BooleanField(label=_("İyi"), default=False) mukemmel = BooleanField(label=_("Mükemmel"), default=False)