Skip to content

Commit

Permalink
Add fulfillment viewset stub
Browse files Browse the repository at this point in the history
  • Loading branch information
Clue88 committed Dec 17, 2023
1 parent 458d5a2 commit 87e5eab
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 4 deletions.
2 changes: 1 addition & 1 deletion backend/degree/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ def get_course(self, obj):

class Meta:
model = Fulfillment
fields = "__all__"
fields = ["degree_plan", "full_code", "course", "semester"]


class DegreePlanListSerializer(serializers.ModelSerializer):
Expand Down
9 changes: 8 additions & 1 deletion backend/degree/urls.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,19 @@
from django.urls import include, path
from rest_framework import routers

from degree.views import DegreeDetail, DegreeList, DegreePlanViewset, rule_courses
from degree.views import (
DegreeDetail,
DegreeList,
DegreePlanViewset,
FulfillmentViewSet,
rule_courses,
)


router = routers.DefaultRouter()

router.register("degreeplans", DegreePlanViewset, basename="degreeplans")
router.register("fulfillments", FulfillmentViewSet, basename="fulfillments")

urlpatterns = [
path("degrees/", DegreeList.as_view(), name="degree-list"),
Expand Down
16 changes: 14 additions & 2 deletions backend/degree/views.py
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
from django.core.exceptions import ObjectDoesNotExist
from django_auto_prefetching import AutoPrefetchViewSetMixin
from rest_framework import generics, status, viewsets
from rest_framework import generics, status, mixins, viewsets
from rest_framework.decorators import api_view
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response

from courses.models import Course
from courses.serializers import CourseListSerializer
from degree.models import Degree, DegreePlan, Rule
from degree.models import Degree, DegreePlan, Fulfillment, Rule
from degree.serializers import (
DegreeDetailSerializer,
DegreeListSerializer,
DegreePlanDetailSerializer,
DegreePlanListSerializer,
FulfillmentSerializer,
)
from PennCourses.docs_settings import PcxAutoSchema

Expand Down Expand Up @@ -77,6 +78,17 @@ def get_serializer_context(self):
return context


class FulfillmentViewSet(viewsets.ModelViewSet):
"""
List, retrieve, create, destroy, and update a Fulfillment.
"""

permission_classes = [IsAuthenticated]

serializer_class = FulfillmentSerializer
queryset = Fulfillment.objects.all()


@api_view(["GET"])
def rule_courses(request, rule_id: int):
"""
Expand Down

0 comments on commit 87e5eab

Please sign in to comment.