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 TalepForm(FlaskForm): secili_mi = BooleanField(_("Seçiniz"), default=False) proje_kalemi_id = HiddenIntegerField(_("PKI")) talep_edilen_miktar = IntegerField(default=0) teknik_sartname_belge = CustomFileField(_("Dosya Yükle"), validators=[FileExtensionRestriction( error_message=_( "Lütfen uzantısı geçerli bir dosya yükleyiniz."))]) proje_kalemi_adi = HiddenStringField(_("Proje Kalemi")) toplam_miktar = HiddenIntegerField(_("TM")) birim = HiddenStringField(_("Birim")) kullanilan_miktar = HiddenIntegerField(_("KulMik")) rezerv_edilen_miktar = HiddenIntegerField(_("REM")) kullanilabilir_miktar = HiddenIntegerField(_("KulbilM")) # toplam_butce = HiddenStringField(_("TB")) # kullanilan_butce = HiddenStringField(_("KB")) # rezerv_edilen_butce = HiddenStringField(_("REB")) # kullanilabilir_butce = HiddenStringField(_("KBB")) def validate_talep_edilen_miktar(self, _): if self.secili_mi.data: if self.talep_edilen_miktar.data <= 0: raise ValidationError( message="Seçili kalemlerin talep edilen miktar değeri boş bırakılamaz") if self.talep_edilen_miktar.data > self.kullanilabilir_miktar.data: raise ValidationError( message="Talep edilen miktar kullanılabilir miktardan büyük olamaz")
class ProjeKalemiFormu(Form): class Meta(DefaultMeta): locales = ["tr"] proje_kalemi_id = HiddenIntegerField(_("PKI")) proje_kalemi_adi = HiddenStringField(_("Proje Kalemi")) teklif_edilen_miktar = HiddenIntegerField(_("TM")) onerilen_yil_1 = HiddenStringField(_("OY1")) onerilen_yil_2 = HiddenStringField(_("OY2")) onerilen_yil_3 = HiddenStringField(_("OY3")) kabul_edilen_miktar = IntegerField(_("Kabul Edilen Miktar")) kabul_edilen_yil_1 = ZopseduDecimalField( _('Kabul Edilen 1. Yıl'), validators=[ DecimalLength(max_length=10, error_message="Bütçe 1. yıl için en fazla 10 " "haneli bir değer girebilirsiniz") ]) kabul_edilen_yil_2 = ZopseduDecimalField( _('Kabul Edilen 2. Yıl'), validators=[ DecimalLength(max_length=10, error_message="Bütçe 2. yıl için en fazla 10 " "haneli bir değer girebilirsiniz") ]) kabul_edilen_yil_3 = ZopseduDecimalField( _('Kabul Edilen 3. Yıl'), validators=[ DecimalLength(max_length=10, error_message="Bütçe 3. yıl için en fazla 10 " "haneli bir değer girebilirsiniz") ])
class SiparisTakip(Form): secili_mi = BooleanField(_("Seçiniz")) siparis_id = HiddenIntegerField(_("HSI")) firma_adi = HiddenStringField() proje_kalemi_adi = HiddenStringField() talep_miktari = HiddenIntegerField() birim = HiddenStringField() teslim_suresi = HiddenIntegerField()
class TeknikSartnameDuzenle(Form): talep_kalemi_id = HiddenIntegerField(_("KDI")) eski_teknik_sartname_id = HiddenIntegerField(_("Eski Teknik Şartname")) yeni_teknik_sartname = CustomFileField(_("Dosya Yükle"), validators=[FileRequired(), FileExtensionRestriction( error_message=_( "Lütfen uzantısı geçerli bir dosya yükleyiniz."))]) proje_kalemi_adi = HiddenStringField(_("Proje Kalemi")) talep_edilen_miktar = HiddenIntegerField() birim = HiddenStringField(_("Birim"))
class ButceKalemiFormu(Form): """ Butce Kalemleri Formu """ class Meta(DefaultMeta): locales = ["tr"] butce_kalemi_id = HiddenIntegerField("Butce Kalemi id") gider_siniflandirma_id = HiddenIntegerField("SBKİ") butce_kalemi_adi = StringField("BKA") butce_alt_limiti = ZopseduDecimalField("BAL") butce_ust_limiti = ZopseduDecimalField("BUS") alimlar = FieldList(FormField(AlimForm), min_entries=1) yolluklar = FieldList(FormField(AlimForm), min_entries=2)
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 ButceKalemi(Form): """ Proje Türü Bütçe Kalemleri Formu """ class Meta(DefaultMeta): locales = ["tr"] gider_siniflandirma_id = HiddenIntegerField() secili_mi = BooleanField(default=False) butce_kalemi_adi = HiddenStringField() butce_alt_limiti = ZopseduDecimalField(validators=[ Optional(), DecimalLength(max_length=10, error_message="Min. Bütçe için en fazla " "10 haneli bir değer girebilirsiniz") ]) butce_ust_limiti = ZopseduDecimalField(validators=[ Optional(), DecimalLength(max_length=10, error_message="Max. Bütçe için en fazla " "10 haneli bir değer girebilirsiniz") ]) def validate_butce_alt_limiti(self, field): if self.secili_mi.data: LessThan("butce_ust_limiti", message=_("Bütçe alt limiti bütçe üst limitinden" " büyük olamaz.")).__call__(self, field)
class BAPProjeBasvuruFormu(FlaskForm): """Yeni başvuru formu""" class Meta(DefaultMeta): """BapProjeBasvuru Form Meta""" form_name = "BAP Proje Basvuru Formu" form_type = ONERI form_module = "arastirma_projesi" will_explored = True will_listed = True kayit_tarihi = DatePickerField(label='Kayit Tarihi') genel_bilgiler = FormField(GenelBilgilerFormWizardForm) proje_personeli = FormField(ProjePersoneliFormWizardForm) diger = FormField(ProjeDigerFormWizardForm) butce = FormField(ProjeButceFormWizardForm) proje_turu = HiddenIntegerField() # pylint: disable=too-many-arguments def __init__(self, formdata=None, obj=None, prefix='', data=None, meta=None, **kwargs): super().__init__(formdata=formdata, obj=obj, prefix=prefix, data=data, meta=meta, **kwargs)
class ProjeSec(Form): secili_mi = BooleanField("Proje Seçiniz") proje_id = HiddenIntegerField("Proje Id") proje_durum_aciklamasi = HiddenStringField("ProjeDurumAciklamasi") proje_baslik = HiddenStringField("ProjeBaslik") proje_no = HiddenStringField("ProjeNo") bitis_tarihi = HiddenStringField("BitisTarihi") kabul_edilen_baslama_tarihi = HiddenStringField("KabulEdilenBaslamaTarihi")
class DigerDosyalarForm(Form): """ Diğer dosyalar formu """ proje_belge_id = HiddenIntegerField(validators=[Optional()]) dosya_id = CustomFileField(_('Dosya Yükle'), render_kw={"class": "form-control"}, validators=[ FileExtensionRestriction( allowed_extentions=SABLON_FILE_EXTENTIONS, error_message=file_extention_uyari_mesaji)]) ad = StringField(_("Dosya Ad"), render_kw={"class": "form-control"}) aciklama = StringField(_("Aciklama"), render_kw={"class": "form-control"})
class ProjeEkDosyalar(Form): """ Proje EkDosyalarını İçeren Form ek_dosya ile baslayan alanlar proje türünde dosya yüklenirken eklenen verilerdir(ad, acıklama, zorunlu_mu gibi). Bu alanlar proje basvuran kişiye bilgi vermek amacıyla kullanılır yeni ile baslayan alanlar proje basvurusunda basvuran kişinin eklediği alanlardır """ form_title = _('Proje Sunum') ek_dosya_ad = HiddenStringField(_("Dosya Ad"), validators=[Length(max=100)]) ek_dosya_aciklama = HiddenStringField(_("Dosya Açıklama")) ek_dosya_zorunlu_mu = HiddenBooleanField(_("Zorunlu Mu"), default=False) ek_dosya_id = HiddenIntegerField(_("Dosya")) proje_turu_ek_dosya_id = HiddenIntegerField(_("Ek Dosya Id")) yeni_dosya_aciklama = StringField(_('Açıklama')) yeni_dosya = CustomFileField(_('Dosya Yükle'), render_kw={"class": "form-control"}, validators=[ FileExtensionRestriction( allowed_extentions=SABLON_FILE_EXTENTIONS, error_message=file_extention_uyari_mesaji)])
class EkDosya(Form): """ Proje türü ekdosya formu """ ek_dosya_id = HiddenIntegerField(validators=[validators.optional()]) zorunlu_mu = BooleanField(_("Zorunlu Mu ?", render_kw={"class": "form-control"}), default=False) proje_icerik_dosyasi_mi = BooleanField(_("Proje içerik dosyası mı ?"), default=False) belgenin_ciktisi_alinacak_mi = BooleanField( _("Belge çıktısı alınacak mı ?"), default=False) belge = FormField(Dosya)
class OzgecmisKayitFormu(FlaskForm): """Ozgecmis kayit Formu Kullanici dosya ile ozgecmis yukler, aksi takdirde gerekli alanlari doldurur. """ ad = StringField(label=_("Ad: "), validators=[Length(max=50)]) soyad = StringField(label=_("Soyad: "), validators=[Length(max=50)]) dogum_tarihi = StringField(label=_("Doğum Tarihi: ")) tecrube = SummerNoteField(label=_("Tecrübe: ")) ozgecmis_dosya = FileField( label=_( "Dosya seçerseniz varolan özgeçmiş dosyanız güncellenecektir!"), validators=[ FileExtensionRestriction(error_message=_( "Lütfen uzantısı geçerli bir dosya yükleyiniz.")) ]) ozgecmis_dosya_id = HiddenIntegerField(_("Dosya")) kaydet = SubmitField(label=_("Kaydet"))
class BapDuyuruForm(FlaskForm): """Bap Duyuru Formu""" form_information_list = [ _("Bir duyurunun duyurular listesinde görünebilmesi için başlangıç, bitiş tarihleri " "arasında olmalı ve 'Duyuru Listesinde Görünsün mü?' kutucuğu işaretlenmelidir."), _("'Ön Sayfa Görünürlüğü' duyurunun bap anasayfasındaki duyurular bölümünde görünme " "durumunu belirtir."), ] icerik_id = HiddenIntegerField() ekleyen_ad_soyad = StringField(_("Ekleyen Kişi"), render_kw={"class": "form-control"}) baslik = StringField(_("Duyuru Başlığı"), validators=[ DataRequired(message=_("Duyuru Başlığı Alanı Boş Bırakılamaz")), Length(max=255) ], render_kw={"class": "form-control"}) icerik = SummerNoteField(_("Duyuru Metni"), validators=[ DataRequired(message=_("Duyuru Metni Alanı Boş Bırakılamaz")) ], render_kw={"class": "form-control"}) on_sayfa_gorunurlugu = BooleanField(_("Ön Sayfa Görünürlüğü"), render_kw={"class": "form-control"}) aktif_mi = BooleanField(_("Duyuru Listesinde Görünsün mü ?"), render_kw={"class": "form-control"}) bitis_tarihi = DateTimePickerField(_("Son Geçerlilik Tarihi"), validators=[ DataRequired(message=_("'Son Geçerlilik Tarihi' Alanı Boş Bırakılamaz")) ], render_kw={"class": "form-control"}) baslangic_tarihi = DateTimePickerField(_("Aktif Olma Tarihi"), validators=[ DataRequired(message=_("'Aktif Olma Tarihi' Alanı Boş Bırakılamaz")) ], render_kw={"class": "form-control"}) ek_dosyalar = FieldList(FormField(IcerikEkDosyaFormu))
class Cikti(Form): """ Proje türü cıktı formu """ cikti_id = HiddenIntegerField(validators=[validators.optional()]) adi = StringField("Çıktı Adı", render_kw={"class": "form-control"}) gorunurluk = SelectField("Görünürlük", choices=GorunurlukSecenekleri.choices(), default=GorunurlukSecenekleri.sadece_yonetici, coerce=GorunurlukSecenekleri.coerce, render_kw={"class": "form-control"}) belge_ciktisi_alinacak_mi = BooleanField("Belgenin Çıktısı Alınacak Mı?", default=False) # sablon_id = CustomFileField(_("Şablon Ekle"), render_kw={"class": "form-control"}) cikti_sablonu_id = SelectField(_("Çıktı Şablonu"), choices=[], coerce=int) def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) bap_sablon_tipleri = DB.session.query( Sablon.id, Sablon.adi).filter(Sablon.module_name == "BAP").all() if bap_sablon_tipleri: self.cikti_sablonu_id.choices = bap_sablon_tipleri self.cikti_sablonu_id.default = bap_sablon_tipleri[0] self.cikti_sablonu_id.coerce = int
class TalepKalemi(Form): talep_kalemi_id = HiddenIntegerField(_("STKI")) kalem_adi = StringField(_("Kalem Adı"), validators=[Length(max=255)]) sayi = IntegerField(_("Talep Sayısı")) birim = StringField(_("Talep Birimi")) teknik_sartname_id = IntegerField(_("Teknik Şartname"))
class TalepKalemiWithTeknikSartname(TalepKalemi): secili_mi = BooleanField("Seçiniz") teknik_sartname_id = HiddenIntegerField("Teknik Şartname")
class DuyuruForm(FlaskForm): duyuru_id = HiddenIntegerField(validators=[DataRequired(message=_("Bu alan boş bırakılamaz"))]) duyuru_basligi = StringField(label=_('Duyuru Başlığı'), validators=[DataRequired(message=_("Bu alan boş bırakılamaz"))]) duyuru_metni = SummerNoteField(_("Duyuru Metni"), validators=[DataRequired(message=_("Bu alan boş bırakılamaz"))])
class TalepKalemi(Form): talep_kalemi_id = HiddenIntegerField(_("STKI")) kalem_adi = StringField(_("Kalem Adı")) talep_miktari = IntegerField(label=_("Talep Miktarı")) birim = StringField(_("Talep Birimi"))
class IcerikEkDosyaFormu(FlaskForm): """Icerik ek dosya Formu""" icerik_ek_dosya_id = HiddenIntegerField() adi = StringField(_("Ek Dosya Adı")) icerik_id = MultiFileField()
class GundemListItemForm(FlaskForm): """Gundem listeleme formu""" toplantiya_alinsin = BooleanField("") proje_id = HiddenIntegerField() id = HiddenIntegerField() aciklama = HiddenStringField()
class Toplanti(FlaskForm): """Toplanti Formu""" toplanti_id = HiddenIntegerField() toplanti_tarihi = DateTimeField(_("Toplantı Tarihi")) gundemler = FieldList(FormField(ToplantiGundem))
class ToplantiKatilimciForm(FlaskForm): secili_mi = BooleanField(_("Seçiniz"), default=False) idari_personel_id = HiddenIntegerField("IPI") ad = HiddenStringField(_("İsim Soyisim")) gorevi = HiddenStringField(_("Görevi"))