From 42f2209400fad231d2a81351110951d4accf8821 Mon Sep 17 00:00:00 2001 From: Roberamelaek Date: Fri, 25 Aug 2023 17:58:28 -0400 Subject: [PATCH] make root user and the test for the model students --- api/serializers.py | 11 +++++-- backend/admin.py | 3 +- backend/migrations/0002_mainuser_student.py | 34 +++++++++++++++++++++ backend/migrations/0002_rootuser_student.py | 29 ------------------ backend/models.py | 22 ++++++------- backend/tests/test_models.py | 5 ++- 6 files changed, 56 insertions(+), 48 deletions(-) create mode 100644 backend/migrations/0002_mainuser_student.py delete mode 100644 backend/migrations/0002_rootuser_student.py diff --git a/api/serializers.py b/api/serializers.py index cd9c66c..af72d01 100644 --- a/api/serializers.py +++ b/api/serializers.py @@ -1,5 +1,6 @@ +from dataclasses import fields from rest_framework import serializers -from backend.models import Event, Student +from backend.models import Event, Mainuser, Student class EventSerializer(serializers.ModelSerializer): class Meta: @@ -10,6 +11,10 @@ class Meta: class StudentSerializer(serializers.ModelSerializer): class Meta: - model = Student - fields = ('id', 'first_name','last_name','email') + model = Mainuser + fields = ('__all__') +class MainSerializer(serializers.ModelSerializer): + class Meta: + model = Student + fields = ('__all__') diff --git a/backend/admin.py b/backend/admin.py index ae2562c..a6d35fa 100644 --- a/backend/admin.py +++ b/backend/admin.py @@ -14,5 +14,6 @@ class EventAdmin(admin.ModelAdmin): admin.site.register(models.Category) # Register your models here. -admin.site.register(models.Student) +admin.site.register(models.Mainuser) +admin.site.register(models.Student) \ No newline at end of file diff --git a/backend/migrations/0002_mainuser_student.py b/backend/migrations/0002_mainuser_student.py new file mode 100644 index 0000000..a83e562 --- /dev/null +++ b/backend/migrations/0002_mainuser_student.py @@ -0,0 +1,34 @@ +# Generated by Django 4.1.2 on 2023-08-25 17:28 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('backend', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='Mainuser', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('fullname', models.CharField(max_length=100)), + ('username', models.CharField(max_length=200, unique=True)), + ('password', models.CharField(max_length=250)), + ('email', models.EmailField(max_length=254, unique=True)), + ('jnumber', models.IntegerField()), + ('role', models.CharField(max_length=100)), + ], + ), + migrations.CreateModel( + name='Student', + fields=[ + ('mainuser_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, to='backend.mainuser')), + ('student_id', models.AutoField(primary_key=True, serialize=False)), + ], + bases=('backend.mainuser',), + ), + ] diff --git a/backend/migrations/0002_rootuser_student.py b/backend/migrations/0002_rootuser_student.py deleted file mode 100644 index 3914aea..0000000 --- a/backend/migrations/0002_rootuser_student.py +++ /dev/null @@ -1,29 +0,0 @@ -# Generated by Django 4.1.2 on 2023-08-15 23:18 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('backend', '0001_initial'), - ] - - operations = [ - migrations.CreateModel( - name='Rootuser', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=100)), - ], - ), - migrations.CreateModel( - name='Student', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('first_name', models.CharField(max_length=100)), - ('last_name', models.CharField(max_length=100)), - ('email', models.EmailField(max_length=254, unique=True)), - ], - ), - ] diff --git a/backend/models.py b/backend/models.py index 07693b3..ac61575 100644 --- a/backend/models.py +++ b/backend/models.py @@ -20,27 +20,24 @@ # is_superuser = models.BooleanField(default=False) # name = models.CharField(max_length=100, blank=False, null=True) # phone = models.CharField(max_length=20, blank=True, null=True) - - -class Rootuser(models.Model): - name = models.CharField(max_length=100) - class Category(models.Model): name = models.CharField(max_length=100) def __str__(self): return self.name -class Student(models.Model): +class Mainuser(models.Model): - first_name = models.CharField(max_length=100) - last_name = models.CharField(max_length=100) + fullname = models.CharField(max_length=100) + username = models.CharField(max_length=200,unique=True) + password = models.CharField(max_length=250) email = models.EmailField(unique=True) + jnumber = models.IntegerField() + role = models.CharField(max_length=100) - - def __str__(self): - return f"{self.first_name} {self.last_name}" - +class Student(Mainuser): + + student_id = models.AutoField(primary_key=True) # # create a model with two different user # class Mentor(models.Model): # user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True, related_name='mentor') @@ -52,6 +49,7 @@ def __str__(self): # user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True, related_name='student') # category = models.ManyToManyField(Category) # def __str__(self): + # return self.user.username # Create Event model with title, content, date_posted, student, mentor, start_date, end_date, category, status diff --git a/backend/tests/test_models.py b/backend/tests/test_models.py index 9a4cefc..8f64465 100644 --- a/backend/tests/test_models.py +++ b/backend/tests/test_models.py @@ -42,10 +42,9 @@ def test_event_content(self): self.assertEqual(str(category), 'django') def test_student(self): - test_user = Student.objects.create(first_name='Robera',last_name='Melaek',email='email@gmail.com') + test_user = Student.objects.create(fullname='Robera',username='Melaek',email='email@gmail.com',jnumber=1,role='teacher') username = Student.objects.get(id=1) - assert(username.first_name,'Robera') - + self.assertEqual(f'{username.username}','Melaek')