mirror of
https://github.com/lemeow125/StudE-Backend.git
synced 2025-06-29 00:35:45 +08:00
Made student_status persistent rather than be deleted when unused. Add active field to student_status and auto create student_status instance when a user is created
This commit is contained in:
parent
ca527289af
commit
1256efa3d2
11 changed files with 142 additions and 10 deletions
|
@ -52,4 +52,8 @@ class CustomUser(AbstractUser):
|
|||
semester = models.CharField(
|
||||
max_length=50, choices=SEMESTERS)
|
||||
avatar = models.ImageField(upload_to=_get_upload_to, null=True)
|
||||
|
||||
@property
|
||||
def full_name(self):
|
||||
return f"{self.first_name} {self.last_name}"
|
||||
pass
|
||||
|
|
|
@ -2,6 +2,7 @@ from djoser.serializers import UserCreateSerializer as BaseUserRegistrationSeria
|
|||
from djoser.serializers import UserSerializer as BaseUserSerializer
|
||||
from accounts.models import CustomUser
|
||||
from student_status.serializers import StudentStatusSerializer
|
||||
from student_status.models import StudentStatus
|
||||
|
||||
|
||||
class CustomUserSerializer(BaseUserSerializer):
|
||||
|
@ -11,10 +12,40 @@ class CustomUserSerializer(BaseUserSerializer):
|
|||
class Meta(BaseUserSerializer.Meta):
|
||||
model = CustomUser
|
||||
fields = ('username', 'email', 'password',
|
||||
'student_id_number', 'year_level', 'semester', 'avatar', 'is_banned', 'user_status')
|
||||
'student_id_number', 'year_level', 'semester', 'avatar', 'first_name', 'last_name', 'is_banned', 'user_status')
|
||||
|
||||
|
||||
class UserRegistrationSerializer(BaseUserRegistrationSerializer):
|
||||
class Meta(BaseUserRegistrationSerializer.Meta):
|
||||
fields = ('username', 'email', 'password',
|
||||
'student_id_number', 'year_level', 'semester', 'avatar')
|
||||
'student_id_number', 'year_level', 'semester', 'avatar', 'first_name', 'last_name')
|
||||
|
||||
def create(self, validated_data):
|
||||
# Extract the necessary fields from validated_data
|
||||
username = validated_data['username']
|
||||
email = validated_data['email']
|
||||
password = validated_data['password']
|
||||
student_id_number = validated_data['student_id_number']
|
||||
first_name = validated_data['first_name']
|
||||
last_name = validated_data['last_name']
|
||||
|
||||
# Get the user's year_level and semester from the user model instance
|
||||
user = self.Meta.model(**validated_data)
|
||||
year_level = user.year_level
|
||||
semester = user.semester
|
||||
|
||||
# Create a new user using the base serializer's create() method
|
||||
user = super().create(validated_data)
|
||||
|
||||
# Create a student_status object for the user
|
||||
student_status = StudentStatus.objects.create(
|
||||
user=user,
|
||||
year_level=year_level,
|
||||
semester=semester,
|
||||
active=False,
|
||||
x=None,
|
||||
y=None,
|
||||
subject=None
|
||||
)
|
||||
|
||||
return user
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue