Select Git revision
accounts.py
Forked from
Fasilkom UI Open Source Software / Kape
Source project has a limited visibility.
-
Joshua Casey authored
[#140655219] #24 #26 Changed student serializer and view set to grant company access and revised tests, also renamed show_resume to show_transcript
Joshua Casey authored[#140655219] #24 #26 Changed student serializer and view set to grant company access and revised tests, also renamed show_resume to show_transcript
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))