diff --git a/core/urls.py b/core/urls.py index 9e56999..01f91ee 100644 --- a/core/urls.py +++ b/core/urls.py @@ -7,13 +7,15 @@ from . import views from rest_framework import routers from users.views import UserViewSet -from courses.views import CourseViewSet +from courses.views import CourseViewSet, TopicViewSet, SubjectViewSet #API CODE router = routers.DefaultRouter() router.register(r'logs', views.LogViewSet) router.register(r'usersapi', UserViewSet) router.register(r'coursesapi', CourseViewSet) +router.register(r'topicsapi', TopicViewSet) +router.register(r'subjectapi', SubjectViewSet) urlpatterns = [ url(r'^$', views.login, name='home'), diff --git a/courses/serializers.py b/courses/serializers.py index 8cffb1c..07a7869 100644 --- a/courses/serializers.py +++ b/courses/serializers.py @@ -4,20 +4,28 @@ from users.serializers import UserSerializer class CourseSerializer(serializers.ModelSerializer): #The set comes from the ManyToMany Relationship in django - #students = UserSerializer(source='students') - #professors = UserSerializer(source='professors') + students = UserSerializer(many=True) + professors = UserSerializer(many=True) + category = serializers.ReadOnlyField(source ='category.name') class Meta: model = Course fields = ('name', 'slug', 'objectivies', 'content', 'max_students', 'create_date', - 'init_register_date', 'end_register_date', 'init_date', 'end_date', 'public', 'students', 'professors') + 'init_register_date', 'end_register_date', 'init_date', 'end_date', 'public', 'category' ,'students', 'professors') class SubjectSerializer(serializers.ModelSerializer): + students = UserSerializer(many=True) + professors = UserSerializer(many=True) + course = serializers.ReadOnlyField(source='course.name') + category = serializers.ReadOnlyField(source ='category.name') class Meta: model = Subject - fields = '__all__' + fields = ('name','slug','description','visible','init_date','course','category','professors','course','students') class TopicSerializer(serializers.ModelSerializer): + subject = serializers.ReadOnlyField(source='subject.name') + owner = serializers.ReadOnlyField(source='owner.username') class Meta: model = Topic + fields = ('name', 'slug','description','create_date','update_date','visible','owner','subject') diff --git a/courses/views.py b/courses/views.py index 8ae0c07..1dbc2ad 100644 --- a/courses/views.py +++ b/courses/views.py @@ -1016,4 +1016,16 @@ class FileMaterialView(LoginRequiredMixin, LogMixin, generic.DetailView): class CourseViewSet(viewsets.ModelViewSet): queryset = Course.objects.all() serializer_class = CourseSerializer - permissions_clas = (permissions.IsAuthenticatedOrReadOnly) \ No newline at end of file + permissions_class = (permissions.IsAuthenticatedOrReadOnly) + +class SubjectViewSet(viewsets.ModelViewSet): + queryset = Subject.objects.all() + serializer_class = SubjectSerializer + permissions_class = (permissions.IsAuthenticatedOrReadOnly) + + +class TopicViewSet(viewsets.ModelViewSet): + queryset = Topic.objects.all() + serializer_class = TopicSerializer + permissions_class = (permissions.IsAuthenticatedOrReadOnly) + -- libgit2 0.21.2