diff --git a/ClassSearch/__pycache__/__init__.cpython-310.pyc b/ClassSearch/__pycache__/__init__.cpython-310.pyc index d4bac21..5f22230 100644 Binary files a/ClassSearch/__pycache__/__init__.cpython-310.pyc and b/ClassSearch/__pycache__/__init__.cpython-310.pyc differ diff --git a/ClassSearch/__pycache__/settings.cpython-310.pyc b/ClassSearch/__pycache__/settings.cpython-310.pyc index 8bf693b..3354b5a 100644 Binary files a/ClassSearch/__pycache__/settings.cpython-310.pyc and b/ClassSearch/__pycache__/settings.cpython-310.pyc differ diff --git a/ClassSearch/__pycache__/urls.cpython-310.pyc b/ClassSearch/__pycache__/urls.cpython-310.pyc index 7a4ca73..69819da 100644 Binary files a/ClassSearch/__pycache__/urls.cpython-310.pyc and b/ClassSearch/__pycache__/urls.cpython-310.pyc differ diff --git a/ClassSearch/__pycache__/wsgi.cpython-310.pyc b/ClassSearch/__pycache__/wsgi.cpython-310.pyc index 2bb6c79..13334c6 100644 Binary files a/ClassSearch/__pycache__/wsgi.cpython-310.pyc and b/ClassSearch/__pycache__/wsgi.cpython-310.pyc differ diff --git a/ClassSearch/settings.py b/ClassSearch/settings.py index b57d4ff..7a9daab 100644 --- a/ClassSearch/settings.py +++ b/ClassSearch/settings.py @@ -42,6 +42,8 @@ INSTALLED_APPS = [ 'api', 'student', + 'classes', + 'university', ] MIDDLEWARE = [ diff --git a/ClassSearch/urls.py b/ClassSearch/urls.py index 9d4ff8a..ac044c7 100644 --- a/ClassSearch/urls.py +++ b/ClassSearch/urls.py @@ -15,8 +15,11 @@ Including another URLconf 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from django.contrib import admin -from django.urls import path +from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), + path('student/', include("student.urls")), + path('classes/', include('classes.urls')), + path("university/", include('university.urls')), ] diff --git a/api/__pycache__/__init__.cpython-310.pyc b/api/__pycache__/__init__.cpython-310.pyc index d0e0233..4cb42ba 100644 Binary files a/api/__pycache__/__init__.cpython-310.pyc and b/api/__pycache__/__init__.cpython-310.pyc differ diff --git a/api/__pycache__/admin.cpython-310.pyc b/api/__pycache__/admin.cpython-310.pyc index 4010cfe..83f92cb 100644 Binary files a/api/__pycache__/admin.cpython-310.pyc and b/api/__pycache__/admin.cpython-310.pyc differ diff --git a/api/__pycache__/apps.cpython-310.pyc b/api/__pycache__/apps.cpython-310.pyc index 47c45b7..87bcc2c 100644 Binary files a/api/__pycache__/apps.cpython-310.pyc and b/api/__pycache__/apps.cpython-310.pyc differ diff --git a/api/__pycache__/models.cpython-310.pyc b/api/__pycache__/models.cpython-310.pyc index 2d04664..0b57d4e 100644 Binary files a/api/__pycache__/models.cpython-310.pyc and b/api/__pycache__/models.cpython-310.pyc differ diff --git a/api/migrations/__pycache__/__init__.cpython-310.pyc b/api/migrations/__pycache__/__init__.cpython-310.pyc index 3435aa9..981e68f 100644 Binary files a/api/migrations/__pycache__/__init__.cpython-310.pyc and b/api/migrations/__pycache__/__init__.cpython-310.pyc differ diff --git a/classes/__init__.py b/classes/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/classes/__pycache__/__init__.cpython-310.pyc b/classes/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..637457b Binary files /dev/null and b/classes/__pycache__/__init__.cpython-310.pyc differ diff --git a/classes/__pycache__/admin.cpython-310.pyc b/classes/__pycache__/admin.cpython-310.pyc new file mode 100644 index 0000000..a6556da Binary files /dev/null and b/classes/__pycache__/admin.cpython-310.pyc differ diff --git a/classes/__pycache__/apps.cpython-310.pyc b/classes/__pycache__/apps.cpython-310.pyc new file mode 100644 index 0000000..2facffa Binary files /dev/null and b/classes/__pycache__/apps.cpython-310.pyc differ diff --git a/classes/__pycache__/models.cpython-310.pyc b/classes/__pycache__/models.cpython-310.pyc new file mode 100644 index 0000000..a7a667b Binary files /dev/null and b/classes/__pycache__/models.cpython-310.pyc differ diff --git a/classes/__pycache__/serializers.cpython-310.pyc b/classes/__pycache__/serializers.cpython-310.pyc new file mode 100644 index 0000000..173c126 Binary files /dev/null and b/classes/__pycache__/serializers.cpython-310.pyc differ diff --git a/classes/__pycache__/urls.cpython-310.pyc b/classes/__pycache__/urls.cpython-310.pyc new file mode 100644 index 0000000..28b3ab3 Binary files /dev/null and b/classes/__pycache__/urls.cpython-310.pyc differ diff --git a/classes/__pycache__/views.cpython-310.pyc b/classes/__pycache__/views.cpython-310.pyc new file mode 100644 index 0000000..5a7d90f Binary files /dev/null and b/classes/__pycache__/views.cpython-310.pyc differ diff --git a/classes/admin.py b/classes/admin.py new file mode 100644 index 0000000..86bda64 --- /dev/null +++ b/classes/admin.py @@ -0,0 +1,5 @@ +from django.contrib import admin +from .models import Classes + +# Register your models here. +admin.site.register(Classes) \ No newline at end of file diff --git a/classes/apps.py b/classes/apps.py new file mode 100644 index 0000000..302ba20 --- /dev/null +++ b/classes/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class ClassesConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'classes' diff --git a/classes/migrations/0001_initial.py b/classes/migrations/0001_initial.py new file mode 100644 index 0000000..c26f13a --- /dev/null +++ b/classes/migrations/0001_initial.py @@ -0,0 +1,23 @@ +# Generated by Django 5.0.1 on 2024-06-09 22:23 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Classes', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('MJC_Class_Name', models.CharField(max_length=200)), + ('Common_Class_Name', models.CharField(max_length=200)), + ('MJC_Units', models.IntegerField()), + ], + ), + ] diff --git a/classes/migrations/__init__.py b/classes/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/classes/migrations/__pycache__/0001_initial.cpython-310.pyc b/classes/migrations/__pycache__/0001_initial.cpython-310.pyc new file mode 100644 index 0000000..3942628 Binary files /dev/null and b/classes/migrations/__pycache__/0001_initial.cpython-310.pyc differ diff --git a/classes/migrations/__pycache__/__init__.cpython-310.pyc b/classes/migrations/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..e1ae1d1 Binary files /dev/null and b/classes/migrations/__pycache__/__init__.cpython-310.pyc differ diff --git a/classes/models.py b/classes/models.py new file mode 100644 index 0000000..ec9b7cc --- /dev/null +++ b/classes/models.py @@ -0,0 +1,10 @@ +from django.db import models + +# Create your models here. +class Classes(models.Model): + MJC_Class_Name = models.CharField(max_length=200) + Common_Class_Name = models.CharField(max_length=200) + MJC_Units = models.IntegerField() + + def __str__(self) -> str: + return self.MJC_Class_Name \ No newline at end of file diff --git a/classes/serializers.py b/classes/serializers.py new file mode 100644 index 0000000..928d6f3 --- /dev/null +++ b/classes/serializers.py @@ -0,0 +1,7 @@ +from rest_framework import serializers +from .models import Classes + +class ClassesSerializer(serializers.ModelSerializer): + class Meta: + model = Classes + fields = ["id", "MJC_Class_Name", "Common_Class_Name", "MJC_Units"] \ No newline at end of file diff --git a/classes/tests.py b/classes/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/classes/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/classes/urls.py b/classes/urls.py new file mode 100644 index 0000000..553599c --- /dev/null +++ b/classes/urls.py @@ -0,0 +1,7 @@ +from django.urls import path +from . import views + +urlpatterns = [ + path("all_classes/", views.ClassesListCreate.as_view(), name="classes-view-createlist"), + path("/", views.ClassesRetrieveUpdateDestroy.as_view(), name="classes_update") +] \ No newline at end of file diff --git a/classes/views.py b/classes/views.py new file mode 100644 index 0000000..141d5ba --- /dev/null +++ b/classes/views.py @@ -0,0 +1,14 @@ +from django.shortcuts import render +from rest_framework import generics +from .models import Classes +from .serializers import ClassesSerializer + +# Create your views here. +class ClassesListCreate(generics.ListCreateAPIView): + queryset = Classes.objects.all() + serializer_class = ClassesSerializer + +class ClassesRetrieveUpdateDestroy(generics.RetrieveUpdateDestroyAPIView): + queryset = Classes.objects.all() + serializer_class = ClassesSerializer + lookup_field = "MJC_Class_Name" \ No newline at end of file diff --git a/db.sqlite3 b/db.sqlite3 index 044b3d4..7bde693 100644 Binary files a/db.sqlite3 and b/db.sqlite3 differ diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..696b52b --- /dev/null +++ b/requirements.txt @@ -0,0 +1,4 @@ +django +django-admin +djangorestframework +environs diff --git a/student/__pycache__/__init__.cpython-310.pyc b/student/__pycache__/__init__.cpython-310.pyc index 4247aaa..8ec391f 100644 Binary files a/student/__pycache__/__init__.cpython-310.pyc and b/student/__pycache__/__init__.cpython-310.pyc differ diff --git a/student/__pycache__/admin.cpython-310.pyc b/student/__pycache__/admin.cpython-310.pyc index cd589ce..cd28a14 100644 Binary files a/student/__pycache__/admin.cpython-310.pyc and b/student/__pycache__/admin.cpython-310.pyc differ diff --git a/student/__pycache__/apps.cpython-310.pyc b/student/__pycache__/apps.cpython-310.pyc index 9709683..b7deeb4 100644 Binary files a/student/__pycache__/apps.cpython-310.pyc and b/student/__pycache__/apps.cpython-310.pyc differ diff --git a/student/__pycache__/models.cpython-310.pyc b/student/__pycache__/models.cpython-310.pyc index bd9ad40..b0aa741 100644 Binary files a/student/__pycache__/models.cpython-310.pyc and b/student/__pycache__/models.cpython-310.pyc differ diff --git a/student/__pycache__/serializers.cpython-310.pyc b/student/__pycache__/serializers.cpython-310.pyc new file mode 100644 index 0000000..d770135 Binary files /dev/null and b/student/__pycache__/serializers.cpython-310.pyc differ diff --git a/student/__pycache__/urls.cpython-310.pyc b/student/__pycache__/urls.cpython-310.pyc new file mode 100644 index 0000000..2b7aa42 Binary files /dev/null and b/student/__pycache__/urls.cpython-310.pyc differ diff --git a/student/__pycache__/views.cpython-310.pyc b/student/__pycache__/views.cpython-310.pyc new file mode 100644 index 0000000..2ddef17 Binary files /dev/null and b/student/__pycache__/views.cpython-310.pyc differ diff --git a/student/migrations/0002_remove_student_classes_student_classes.py b/student/migrations/0002_remove_student_classes_student_classes.py new file mode 100644 index 0000000..3073fe5 --- /dev/null +++ b/student/migrations/0002_remove_student_classes_student_classes.py @@ -0,0 +1,23 @@ +# Generated by Django 5.0.1 on 2024-06-09 22:26 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('classes', '0001_initial'), + ('student', '0001_initial'), + ] + + operations = [ + migrations.RemoveField( + model_name='student', + name='classes', + ), + migrations.AddField( + model_name='student', + name='classes', + field=models.ManyToManyField(to='classes.classes'), + ), + ] diff --git a/student/migrations/__pycache__/0001_initial.cpython-310.pyc b/student/migrations/__pycache__/0001_initial.cpython-310.pyc index 7992896..db5bdc2 100644 Binary files a/student/migrations/__pycache__/0001_initial.cpython-310.pyc and b/student/migrations/__pycache__/0001_initial.cpython-310.pyc differ diff --git a/student/migrations/__pycache__/0002_remove_student_classes_student_classes.cpython-310.pyc b/student/migrations/__pycache__/0002_remove_student_classes_student_classes.cpython-310.pyc new file mode 100644 index 0000000..e70f22b Binary files /dev/null and b/student/migrations/__pycache__/0002_remove_student_classes_student_classes.cpython-310.pyc differ diff --git a/student/migrations/__pycache__/__init__.cpython-310.pyc b/student/migrations/__pycache__/__init__.cpython-310.pyc index 5263f8e..9a4ef23 100644 Binary files a/student/migrations/__pycache__/__init__.cpython-310.pyc and b/student/migrations/__pycache__/__init__.cpython-310.pyc differ diff --git a/student/models.py b/student/models.py index 129cd87..ac35ead 100644 --- a/student/models.py +++ b/student/models.py @@ -1,11 +1,12 @@ from django.db import models from django.contrib.auth.models import User +from classes.models import Classes # Create your models here. class Student(models.Model): w_number = models.IntegerField() user = models.OneToOneField(User, on_delete=models.CASCADE) - classes = models.CharField(max_length = 200) + classes = models.ManyToManyField(Classes) def __str__(self): return self.user.username.capitalize() \ No newline at end of file diff --git a/student/serializers.py b/student/serializers.py new file mode 100644 index 0000000..68b4ba2 --- /dev/null +++ b/student/serializers.py @@ -0,0 +1,7 @@ +from rest_framework import serializers +from .models import Student + +class StudentSerializer(serializers.ModelSerializer): + class Meta: + model = Student + fields = ["id", "user", "w_number", "classes"] \ No newline at end of file diff --git a/student/urls.py b/student/urls.py new file mode 100644 index 0000000..4380f87 --- /dev/null +++ b/student/urls.py @@ -0,0 +1,7 @@ +from django.urls import path +from . import views + +urlpatterns = [ + path("all_students/", views.StudentListCreate.as_view(), name="student-view-createlist"), + path("/", views.StudentRetrieveUpdateDestroy.as_view(), name="update"), +] \ No newline at end of file diff --git a/student/views.py b/student/views.py index 91ea44a..830b172 100644 --- a/student/views.py +++ b/student/views.py @@ -1,3 +1,14 @@ from django.shortcuts import render +from rest_framework import generics +from .models import Student +from .serializers import StudentSerializer # Create your views here. +class StudentListCreate(generics.ListCreateAPIView): + queryset = Student.objects.all() + serializer_class = StudentSerializer + +class StudentRetrieveUpdateDestroy(generics.RetrieveUpdateDestroyAPIView): + queryset = Student.objects.all() + serializer_class = StudentSerializer + lookup_field = "w_number" \ No newline at end of file diff --git a/university/__init__.py b/university/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/university/__pycache__/__init__.cpython-310.pyc b/university/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..286320f Binary files /dev/null and b/university/__pycache__/__init__.cpython-310.pyc differ diff --git a/university/__pycache__/admin.cpython-310.pyc b/university/__pycache__/admin.cpython-310.pyc new file mode 100644 index 0000000..57e6810 Binary files /dev/null and b/university/__pycache__/admin.cpython-310.pyc differ diff --git a/university/__pycache__/apps.cpython-310.pyc b/university/__pycache__/apps.cpython-310.pyc new file mode 100644 index 0000000..4dba8bc Binary files /dev/null and b/university/__pycache__/apps.cpython-310.pyc differ diff --git a/university/__pycache__/models.cpython-310.pyc b/university/__pycache__/models.cpython-310.pyc new file mode 100644 index 0000000..7a7d739 Binary files /dev/null and b/university/__pycache__/models.cpython-310.pyc differ diff --git a/university/__pycache__/serializers.cpython-310.pyc b/university/__pycache__/serializers.cpython-310.pyc new file mode 100644 index 0000000..28c687a Binary files /dev/null and b/university/__pycache__/serializers.cpython-310.pyc differ diff --git a/university/__pycache__/urls.cpython-310.pyc b/university/__pycache__/urls.cpython-310.pyc new file mode 100644 index 0000000..071bba6 Binary files /dev/null and b/university/__pycache__/urls.cpython-310.pyc differ diff --git a/university/__pycache__/views.cpython-310.pyc b/university/__pycache__/views.cpython-310.pyc new file mode 100644 index 0000000..2a27c43 Binary files /dev/null and b/university/__pycache__/views.cpython-310.pyc differ diff --git a/university/admin.py b/university/admin.py new file mode 100644 index 0000000..670af3a --- /dev/null +++ b/university/admin.py @@ -0,0 +1,7 @@ +from django.contrib import admin +from .models import University, Agreement, Section + +# Register your models here. +admin.site.register(University) +admin.site.register(Agreement) +admin.site.register(Section) \ No newline at end of file diff --git a/university/apps.py b/university/apps.py new file mode 100644 index 0000000..5e2f1f4 --- /dev/null +++ b/university/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class UniversityConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'university' diff --git a/university/migrations/0001_initial.py b/university/migrations/0001_initial.py new file mode 100644 index 0000000..5885812 --- /dev/null +++ b/university/migrations/0001_initial.py @@ -0,0 +1,39 @@ +# Generated by Django 5.0.1 on 2024-06-10 02:49 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('classes', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='Sections', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('area_name', models.CharField(max_length=200)), + ('classes', models.ManyToManyField(to='classes.classes')), + ], + ), + migrations.CreateModel( + name='Agreements', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('major', models.CharField(max_length=200)), + ('sections', models.ManyToManyField(to='university.sections')), + ], + ), + migrations.CreateModel( + name='University', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=200)), + ('agreements', models.ManyToManyField(to='university.agreements')), + ], + ), + ] diff --git a/university/migrations/0002_rename_agreements_agreement_rename_sections_section.py b/university/migrations/0002_rename_agreements_agreement_rename_sections_section.py new file mode 100644 index 0000000..018022e --- /dev/null +++ b/university/migrations/0002_rename_agreements_agreement_rename_sections_section.py @@ -0,0 +1,22 @@ +# Generated by Django 5.0.1 on 2024-06-10 02:52 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('classes', '0001_initial'), + ('university', '0001_initial'), + ] + + operations = [ + migrations.RenameModel( + old_name='Agreements', + new_name='Agreement', + ), + migrations.RenameModel( + old_name='Sections', + new_name='Section', + ), + ] diff --git a/university/migrations/0003_section_number_of_required_courses.py b/university/migrations/0003_section_number_of_required_courses.py new file mode 100644 index 0000000..76f7a07 --- /dev/null +++ b/university/migrations/0003_section_number_of_required_courses.py @@ -0,0 +1,19 @@ +# Generated by Django 5.0.1 on 2024-06-10 03:42 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('university', '0002_rename_agreements_agreement_rename_sections_section'), + ] + + operations = [ + migrations.AddField( + model_name='section', + name='number_of_required_courses', + field=models.IntegerField(default=1), + preserve_default=False, + ), + ] diff --git a/university/migrations/__init__.py b/university/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/university/migrations/__pycache__/0001_initial.cpython-310.pyc b/university/migrations/__pycache__/0001_initial.cpython-310.pyc new file mode 100644 index 0000000..dfe8c7b Binary files /dev/null and b/university/migrations/__pycache__/0001_initial.cpython-310.pyc differ diff --git a/university/migrations/__pycache__/0002_rename_agreements_agreement_rename_sections_section.cpython-310.pyc b/university/migrations/__pycache__/0002_rename_agreements_agreement_rename_sections_section.cpython-310.pyc new file mode 100644 index 0000000..15a662a Binary files /dev/null and b/university/migrations/__pycache__/0002_rename_agreements_agreement_rename_sections_section.cpython-310.pyc differ diff --git a/university/migrations/__pycache__/0003_section_number_of_required_courses.cpython-310.pyc b/university/migrations/__pycache__/0003_section_number_of_required_courses.cpython-310.pyc new file mode 100644 index 0000000..4360ddb Binary files /dev/null and b/university/migrations/__pycache__/0003_section_number_of_required_courses.cpython-310.pyc differ diff --git a/university/migrations/__pycache__/__init__.cpython-310.pyc b/university/migrations/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..cdea3f8 Binary files /dev/null and b/university/migrations/__pycache__/__init__.cpython-310.pyc differ diff --git a/university/models.py b/university/models.py new file mode 100644 index 0000000..ec38644 --- /dev/null +++ b/university/models.py @@ -0,0 +1,25 @@ +from django.db import models +from classes.models import Classes + +class Section(models.Model): + area_name = models.CharField(max_length=200) + number_of_required_courses = models.IntegerField() + classes = models.ManyToManyField(Classes) + + def __str__(self) -> str: + return self.area_name + +class Agreement(models.Model): + major = models.CharField(max_length=200) + sections = models.ManyToManyField(Section) + + def __str__(self) -> str: + return self.major + +# Create your models here. +class University(models.Model): + name = models.CharField(max_length=200) + agreements = models.ManyToManyField(Agreement) + + def __str__(self) -> str: + return self.name \ No newline at end of file diff --git a/university/serializers.py b/university/serializers.py new file mode 100644 index 0000000..11d6f58 --- /dev/null +++ b/university/serializers.py @@ -0,0 +1,38 @@ +from rest_framework import serializers +from .models import University, Agreement, Section + +class UniversitySerializer(serializers.ModelSerializer): + + agreements = serializers.SlugRelatedField( + many = True, + read_only = True, + slug_field="major" + ) + + class Meta: + model = University + fields = ["name", "agreements"] + +class AgreementsSerializer(serializers.ModelSerializer): + + sections = serializers.SlugRelatedField( + many = True, + read_only = True, + slug_field = "area_name" + ) + + class Meta: + model = Agreement + fields = ["major", "sections"] + +class SectionsSerializer(serializers.ModelSerializer): + + classes = serializers.SlugRelatedField( + many = True, + read_only = True, + slug_field = "MJC_Class_Name" + ) + + class Meta: + model = Section + fields = ["area_name", "number_of_required_courses", "classes"] \ No newline at end of file diff --git a/university/tests.py b/university/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/university/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/university/urls.py b/university/urls.py new file mode 100644 index 0000000..9db9898 --- /dev/null +++ b/university/urls.py @@ -0,0 +1,11 @@ +from django.urls import path +from . import views + +urlpatterns = [ + path("all_universities/", views.UniversityListCreate.as_view(), name="university-view-createlist"), + path("all_agreements/", views.AgreementsListCreate.as_view(), name="sections-view-createlist"), + path("all_sections/", views.SectionsListCreate.as_view(), name="sections-view-createlist"), + path("", views.UniversityRetrieveUpdateDestroy.as_view(), name="university-update"), + path("/", views.AgreementRetrieveUpdateDestroy.as_view(), name="agreement-update"), + path("//", views.SectionRetrieveUpdateDestroy.as_view(), name="section-update"), +] \ No newline at end of file diff --git a/university/views.py b/university/views.py new file mode 100644 index 0000000..58a2664 --- /dev/null +++ b/university/views.py @@ -0,0 +1,32 @@ +from django.shortcuts import render +from rest_framework import generics +from .models import University, Agreement, Section +from .serializers import UniversitySerializer, AgreementsSerializer, SectionsSerializer + +# Create your views here. +class UniversityListCreate(generics.ListCreateAPIView): + queryset = University.objects.all() + serializer_class = UniversitySerializer + +class AgreementsListCreate(generics.ListCreateAPIView): + queryset = Agreement.objects.all() + serializer_class = AgreementsSerializer + +class SectionsListCreate(generics.ListCreateAPIView): + queryset = Section.objects.all() + serializer_class = SectionsSerializer + +class UniversityRetrieveUpdateDestroy(generics.RetrieveUpdateDestroyAPIView): + queryset = University.objects.all() + serializer_class = UniversitySerializer + lookup_field = "name" + +class AgreementRetrieveUpdateDestroy(generics.RetrieveUpdateDestroyAPIView): + queryset = Agreement.objects.all() + serializer_class = AgreementsSerializer + lookup_field = "major" + +class SectionRetrieveUpdateDestroy(generics.RetrieveUpdateDestroyAPIView): + queryset = Section.objects.all() + serializer_class = SectionsSerializer + lookup_field = "area_name" \ No newline at end of file