def create_user(cls): """ Bu metot ile yeni kullanıcı yaratılır ya da varolan kullanıcı getirilir. """ # FIXME: To prevent existence of test_user in production, # this should be depend on an env. flag cls.cleanup() # Tanımlı parametrelere sahip soyut rol varsa rolü döndürür, yoksa soyut rol yaratır. abs_role, new = AbstractRole(super_context).objects.get_or_create( id=1, name='W.C. Hero') cls.client.user, new = User(super_context).objects.get_or_create( {"password": user_pass}, username='******') cls.client.user.superuser = True cls.client.user.save() if new: # Role modelinden role nesnesi yaratır. role = Role(super_context, user=cls.client.user, abstract_role=abs_role).save() # sleep(2) # role nesnesine, yetkiler eklenir. for perm in Permission(super_context).objects.raw( "code:crud* OR code:login* OR code:logout* OR code:User* OR code:Personel* OR code:yeni*" ): role.Permissions(permission=perm) role.save() sleep(1) # Kullanıcı güncellenir. cls.client.user = User(super_context).objects.get( cls.client.user.key)
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
def kullanici_aktiflestir(self): """ Eğer karar firmanın kabulü yönünde ise, firma yetkilisi kullanıcısı aktif hale getirilir. """ kullanici = self.object.Yetkililer[0].yetkili kullanici.is_active = True kullanici.blocking_save() abs_role = AbstractRole.objects.get('FIRMA_YETKILISI') role = Role(user=kullanici, abstract_role=abs_role, typ=3) role.blocking_save() role.add_permission_by_name('bap_firma_teklif', True)
def run(self): from ulakbus.models import AbstractRole, User, Role, Permission import distutils.util from pyoko.exceptions import ObjectDoesNotExist # update existing users if self.manager.args.toggle_is_user_active is not None: try: user = User.objects.get(username=self.manager.args.username) except ObjectDoesNotExist: print "Böyle bir kullanıcı bulunmamaktadır." return activeness = self.manager.args.toggle_is_user_active try: user.is_active = distutils.util.strtobool(activeness) except ValueError: print "Lütfen True ya da False değeri giriniz." return user.blocking_save() return # create new user if User.objects.filter(username=self.manager.args.username).count(): print("User already exists!") return if not self.manager.args.active: print( "Kullanıcının sisteme login olmasını istiyorsanız aktifleştirmeyi unutmayınız. Aktifleştirmek için --toggle_is_user_active parametresini kullanınız." ) abs_role, new = AbstractRole.objects.get_or_create( name=self.manager.args.abstract_role) user = User(username=self.manager.args.username, superuser=self.manager.args.super, is_active=self.manager.args.active) user.set_password(self.manager.args.password) user.save() role = Role(user=user, abstract_role=abs_role) role.save() perm_list = [] for perm in Permission.objects.raw(self.manager.args.permission_query): role.Permissions(permission=perm) perm_list.append(perm.name) role.save() user_type = 'super user' if self.manager.args.super else 'user' print("New %s created with these permissions: \n\n%s" % (user_type, "\n".join(perm_list)))
def run(self): from ulakbus.models import AbstractRole, User, Role, Permission if User.objects.filter(username=self.manager.args.username).count(): print("User already exists!") return abs_role, new = AbstractRole.objects.get_or_create(name=self.manager.args.abstract_role) user = User(username=self.manager.args.username, superuser=self.manager.args.super) user.set_password(self.manager.args.password) user.save() role = Role(user=user, abstract_role=abs_role) role.save() perm_list = [] for perm in Permission.objects.raw(self.manager.args.permission_query): role.Permissions(permission=perm) perm_list.append(perm.name) role.save() user_type = 'super user' if self.manager.args.super else 'user' print("New %s created with these permissions: \n\n%s" % (user_type, "\n".join(perm_list)))
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()