Beispiel #1
0
class Template(Model):
    """Template Model.

    """

    template_type = field.Integer(choices=TEMPLATE_TYPES)
    template = field.File(random_name="Template")
    description = field.String("Description")
    preview = field.File(random_name="Preview")
    version = field.String("Version")
    modify_date = field.DateTime("ModifyDate", format='%d %b %Y %H:%M:%S')
    name = field.String("Name", unique=True)

    def post_save(self):
        """
        Get last_modified from S3 and update modify_date of this object.
        Returns:

        """
        s3_manager = S3FileManager()
        s3_time = s3_manager.get_last_modified_date(self.template)

        modify_date = self.change_date_format(s3_time)
        self.modify_date = modify_date

        self.save(internal=True)

    @staticmethod
    def change_date_format(s3_modify_date):
        """
        Change date time format for model.
        Args:
            s3_modify_date: <str>

        Returns: Formatted date time in str. <str>

        """
        s3_time = s3_modify_date.split(" ")[1:-1]
        cut_time = '{} {} {} {}'.format(s3_time[0], s3_time[1], s3_time[2],
                                        s3_time[3])
        return cut_time

    class Meta:
        app = 'Document'
        verbose_name = "Template"
        verbose_name_plural = "Templates"
        list_fields = ['description']
        search_fields = ['description']

    def __unicode__(self):
        return '%s' % self.description
Beispiel #2
0
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
Beispiel #3
0
    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)
Beispiel #4
0
    class EkDosyalar(ListNode):
        class Meta:
            verbose_name = __(u"Ek Dosya")
            verbose_name_plural = __(u"Ek Dosyalar")
            list_fields = ['dosya_aciklamasi']

        ek_dosya = field.File(__(u"Ek Dosya Seç"), random_name=True)
        dosya_aciklamasi = field.String(__(u"Dosya Açıklaması"))
Beispiel #5
0
class BAPTeknikSartname(Model):
    class Meta:
        verbose_name = __(u"Teknik Şartname")
        verbose_name_plural = __(u"Teknik Şartnameler")

    sartname_dosyasi = field.File(__(u"Şartname Dosyası"), random_name=True)
    aciklama = field.String(__(u"Açıklama"))
    ilgili_proje = BAPProje()

    def __unicode__(self):
        return "%s" % self.aciklama
Beispiel #6
0
    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)
Beispiel #7
0
class User(Model, BaseUser):
    """
    Basic User model
    """
    username = field.String(_(u"Username"), index=True)
    password = field.String(_(u"Password"))
    superuser = field.Boolean(_(u"Super user"), default=False)
    avatar = field.File(_(u"Avatar"), random_name=True, required=False)
    locale_language = field.String(_(u"Preferred Language"),
                                   index=False,
                                   default=settings.DEFAULT_LANG)
    locale_datetime = field.String(
        _(u"Preferred Date and Time Format"),
        index=False,
        default=settings.DEFAULT_LOCALIZATION_FORMAT)
    locale_number = field.String(_(u"Preferred Number Format"),
                                 index=False,
                                 default=settings.DEFAULT_LOCALIZATION_FORMAT)
    last_login_role_key = field.String(_(u"Last Login Role Key"))
    unit = Unit()

    class Meta:
        """ meta class
        """
        verbose_name = _(u"User")
        verbose_name_plural = _(u"Users")
        list_fields = ['username', 'superuser']

    def pre_save(self):
        self.encrypt_password()

    def post_creation(self):
        self.prepare_channels()

    def last_login_role(self):
        last_key = self.last_login_role_key
        return Role.objects.get(
            last_key) if last_key else self.role_set[0].role

    def get_permissions(self):
        """
        Permissions of the user.

        Returns:
            List of Permission objects.
        """
        user_role = self.last_login_role(
        ) if self.last_login_role_key else self.role_set[0].role
        return user_role.get_permissions()
Beispiel #8
0
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())
Beispiel #9
0
class Attachment(Model):
    """
    A model to store message attachments
    """
    file = field.File("Dosya", random_name=True, required=False)
    typ = field.Integer("Tip", choices=ATTACHMENT_TYPES)
    name = field.String("Dosya Adı")
    description = field.String("Tanım")
    channel = Channel()
    message = Message()

    def serialize(self):
        return {
            'description': self.description,
            'file_name': self.name,
            'url': "%s%s" % (settings.S3_PUBLIC_URL, self.file)
        }

    def __unicode__(self):
        return self.name
Beispiel #10
0
class Form(Model):
    """Form Model sınıfı.

    Bu model, genel kullanım amaçlı olarak sisteme yüklenecek olan formların kayıt edileceği data
    modelidir.

    """
    ad = field.String(_(u"Form Adı"), index=True)
    file = field.File(_(u"File"), index=True, random_name=True
                      )  # form eger PDF olarak yulendiyse bu alan kullanilir.
    permissions = Permission()
    date = field.Date(_(u"Form Tarihi"), index=True, format="%d.%m.%Y")

    class Meta:
        app = 'Form'
        verbose_name = _(u"Form")
        verbose_name_plural = _(u"Formlar")
        list_fields = ['ad', 'date']
        search_fields = ['ad', 'file']

    def __unicode__(self):
        return '%s %s' % (self.ad, self.date)
Beispiel #11
0
class User(Model):
    """User modeli

    User modeli Ulakbus temel kullanıcı modelidir. Temel kullanıcı
    bilgilerini içerir. Ulakbus'de işlem yapan/yapılan her kullanıcıya
    ait bir ve tek kullanıcı olması zorunludur.

    """
    username = field.String("Username", index=True)
    password = field.String("Password")
    avatar = field.File("Profile Photo", random_name=True, required=False)
    name = field.String("First Name", index=True)
    surname = field.String("Surname", index=True)
    superuser = field.Boolean("Super user", default=False)

    class Meta:
        app = 'Sistem'
        verbose_name = "Kullanıcı"
        verbose_name_plural = "Kullanıcılar"
        search_fields = ['username', 'name', 'surname']

    def get_avatar_url(self):
        """
        Bu metot kullanıcıya ait avatar url'ini üretir.

        Returns:
            str: kullanıcı avatar url
        """
        return "%s%s" % (settings.S3_PUBLIC_URL, self.avatar)

    def __unicode__(self):
        return "User %s" % self.username

    def set_password(self, raw_password):
        """
        Kullanıcı şifresini encrypt ederek set eder.

        Args:
            raw_password (str)
        """
        self.password = pbkdf2_sha512.encrypt(raw_password,
                                              rounds=10000,
                                              salt_size=10)

    def check_password(self, raw_password):
        """
        Verilen encrypt edilmemiş şifreyle kullanıcıya ait encrypt
        edilmiş şifreyi karşılaştırır.

        Args:
            raw_password (str)

        Returns:
             bool: Değerler aynı olması halinde True, değilse False
                döner.
        """
        return pbkdf2_sha512.verify(raw_password, self.password)

    def get_role(self, role_id):
        """
        Kullanıcıya ait Role nesnesini getirir.

        Args:
            role_id (int)

        Returns:
            dict: Role nesnesi

        """
        return self.role_set.node_dict[role_id]
Beispiel #12
0
class User(Model, BaseUser):
    """User modeli

    User modeli Ulakbus temel kullanıcı modelidir. Temel kullanıcı
    bilgilerini içerir. Ulakbus'de işlem yapan/yapılan her kullanıcıya
    ait bir ve tek kullanıcı olması zorunludur.

    """
    avatar = field.File(_(u"Profil Fotoğrafı"), random_name=True, required=False)
    username = field.String(_(u"Kullanıcı Adı"), index=True, unique=True)
    password = field.String(_(u"Parola"))
    e_mail = field.String(_(u"E-Posta"), index=True, unique=True)
    name = field.String(_(u"Ad"), index=True)
    surname = field.String(_(u"Soyad"), index=True)
    superuser = field.Boolean(_(u"Super user"), default=False)
    last_login_role_key = field.String(_(u"Son Giriş Yapılan Rol"))
    locale_language = field.String(
        _(u"Tercih Edilen Dil Formatı"),
        index=False,
        default=settings.DEFAULT_LANG,
        choices=translation.available_translations.items()
    )
    locale_datetime = field.String(_(u"Tercih Edilen Gün ve Zaman Formatı"), index=False,
                                   default=settings.DEFAULT_LOCALIZATION_FORMAT,
                                   choices=translation.available_datetimes.items())
    locale_number = field.String(_(u"Tercih Edilen Sayı Formatı"), index=False,
                                 default=settings.DEFAULT_LOCALIZATION_FORMAT,
                                 choices=translation.available_numbers.items())

    class Meta:
        app = 'Sistem'
        verbose_name = _(u"Kullanıcı")
        verbose_name_plural = _(u"Kullanıcılar")
        search_fields = ['username', 'name', 'surname']

    @lazy_property
    def full_name(self):
        return "%s %s" % (self.name, self.surname)

    def last_login_role(self):
        """
        Eğer kullanıcı rol geçişi yaparsa, kullanıcının last_login_role_key
        field'ına geçiş yaptığı rolün keyi yazılır. Kullanıcı çıkış yaptığında
         ve tekrardan giriş yaptığında son rolü bu field'dan öğrenilir. Eğer
        kullanıcının last_login_role_key field'ı dolu ise rol bilgisi oradan alınır.
        Yoksa kullanıcının role_set'inden default rolü alınır.

        """
        last_key = self.last_login_role_key
        return Role.objects.get(last_key) if last_key else self.role_set[0].role

    def pre_save(self):
        if not self.username or not self.password:
            raise IntegrityError
        self.encrypt_password()

    def post_creation(self):
        self.prepare_channels()

    def get_avatar_url(self):
        if self.avatar:
            return BaseUser.get_avatar_url(self)
        else:
            # FIXME: This is for fun, remove when we resolve static hosting problem
            return "https://www.gravatar.com/avatar/%s" % hashlib.md5(
                "*****@*****.**" % self.username).hexdigest()

    def __unicode__(self):
        return "%s %s" % (self.name, self.surname)
Beispiel #13
0
 class Belgeler(ListNode):
     belge = field.File(_(u"Firma Teklif Belgesi"),
                        random_name=False,
                        required=True)
     aciklama = field.String(__(u"Belge Açıklaması"), required=True)