Fakultas Ilmu Komputer UI

Skip to content
Snippets Groups Projects
Select Git revision
  • bd55bc73fa01e1422c575424f7b20e6335714a00
  • master default protected
  • spike/short-live-branch-analysis
  • 1606917720-204
  • 1606862791-246
  • 1606885864-239
  • 1606875806-244
  • 1906438014-240
  • 1606833936-243
  • 1606879773-218
  • 1606886974-179-3
  • 1606823475-175
  • 1606837991-#224
  • 1506757352-241
  • 1606890933-183
  • 1606917531-210
  • 1606837915-228
  • 1606891500-233
  • 1606889591-238
  • 1606833463-217
  • 1906438115-231
21 results

accounts.py

Blame
  • Forked from Fasilkom UI Open Source Software / Kape
    Source project has a limited visibility.
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    accounts.py 3.47 KiB
    import os
    import uuid
    
    from django.contrib.auth.models import User
    from django.core.validators import MinValueValidator, MaxValueValidator
    from django.db import models
    
    
    def get_student_resume_file_path(instance, filename):
        extension = filename.split('.')[-1].lower()
        filename = "%s.%s" % (uuid.uuid4(), extension)
        return os.path.join("student-resume/", filename)
    
    
    def get_company_logo_file_path(instance, filename):
        extension = filename.split('.')[-1].lower()
        filename = "%s.%s" % (uuid.uuid4(), extension)
        return os.path.join("company-logo/", filename)
    
    
    def get_display_name(user, full_name=False):
        """
        Return a display name that always works like "Benoit J."
        """
        if user.first_name and user.last_name:
            if full_name:
                last = user.last_name.title()
            else:
                last = user.last_name[:1].upper() + "."
            name = user.first_name.title() + " " + last
        elif user.first_name:
            name = user.first_name.title()
        elif user.last_name:
            name = user.last_name.title()
        else:
            name = user.username
    
        return name.strip()
    
    
    class Student(models.Model):
        """
        A user subclass
        """
        created = models.DateTimeField(auto_now_add=True)
        updated = models.DateTimeField(auto_now=True)
        user = models.OneToOneField(User)
        npm = models.IntegerField(validators=[MinValueValidator(100000000), MaxValueValidator(9999999999)], unique=True)
        resume = models.FileField(upload_to=get_student_resume_file_path, null=True, blank=True)
        phone_number = models.CharField(max_length=100, blank=True, db_index=True, null=True)
        bookmarked_vacancies = models.ManyToManyField('core.Vacancy', related_name="bookmarked_vacancies", blank=True)
        applied_vacancies = models.ManyToManyField('core.Vacancy', related_name="applied_vacancies",
                                                   blank=True, through='core.Application')
        birth_place = models.CharField(max_length=30, blank=True, null=True)
        birth_date = models.DateField(blank=True, null=True)
        major = models.CharField(max_length=30, blank=True, null=True)
        batch = models.CharField(max_length=4, blank=True, null=True)
        show_transcript = models.BooleanField(default=False)
    
        @property
        def name(self):
            return get_display_name(self.user)
    
        def __unicode__(self):
            return u"Student {}".format(get_display_name(self.user))
    
    
    class Company(models.Model):
        """
        A user subclass
        """
        created = models.DateTimeField(auto_now_add=True)
        updated = models.DateTimeField(auto_now=True)
        user = models.OneToOneField(User)
        description = models.TextField()
        verified = models.BooleanField(default=False)
        logo = models.FileField(upload_to=get_company_logo_file_path, null=True, blank=True)
        address = models.CharField(max_length=1000, blank=True, null=True)
    
        @property
        def name(self):
            return get_display_name(self.user)
    
        def __unicode__(self):
            return u"Company {}".format(get_display_name(self.user))
    
    
    class Supervisor(models.Model):
        """
        A user subclass
        """
        created = models.DateTimeField(auto_now_add=True)
        updated = models.DateTimeField(auto_now=True)
        user = models.OneToOneField(User)
        nip = models.IntegerField(validators=[MinValueValidator(100000000), MaxValueValidator(9999999999)], unique=True)
    
        @property
        def name(self):
            return get_display_name(self.user)
    
        def __unicode__(self):
            return u"Supervisor {}".format(get_display_name(self.user))