Commit 2a025adb40ae6d96c00d6be4939a46fd092165e9

Authored by fbormann
1 parent 5b91c656

created courses urls #263, Linked Topic and subject to other models #268 #269

@@ -7,13 +7,15 @@ from . import views @@ -7,13 +7,15 @@ from . import views
7 from rest_framework import routers 7 from rest_framework import routers
8 8
9 from users.views import UserViewSet 9 from users.views import UserViewSet
10 -from courses.views import CourseViewSet 10 +from courses.views import CourseViewSet, TopicViewSet, SubjectViewSet
11 11
12 #API CODE 12 #API CODE
13 router = routers.DefaultRouter() 13 router = routers.DefaultRouter()
14 router.register(r'logs', views.LogViewSet) 14 router.register(r'logs', views.LogViewSet)
15 router.register(r'usersapi', UserViewSet) 15 router.register(r'usersapi', UserViewSet)
16 router.register(r'coursesapi', CourseViewSet) 16 router.register(r'coursesapi', CourseViewSet)
  17 +router.register(r'topicsapi', TopicViewSet)
  18 +router.register(r'subjectapi', SubjectViewSet)
17 19
18 urlpatterns = [ 20 urlpatterns = [
19 url(r'^$', views.login, name='home'), 21 url(r'^$', views.login, name='home'),
courses/serializers.py
@@ -4,20 +4,28 @@ from users.serializers import UserSerializer @@ -4,20 +4,28 @@ from users.serializers import UserSerializer
4 4
5 class CourseSerializer(serializers.ModelSerializer): 5 class CourseSerializer(serializers.ModelSerializer):
6 #The set comes from the ManyToMany Relationship in django 6 #The set comes from the ManyToMany Relationship in django
7 - #students = UserSerializer(source='students')  
8 - #professors = UserSerializer(source='professors') 7 + students = UserSerializer(many=True)
  8 + professors = UserSerializer(many=True)
  9 + category = serializers.ReadOnlyField(source ='category.name')
9 class Meta: 10 class Meta:
10 model = Course 11 model = Course
11 fields = ('name', 'slug', 'objectivies', 'content', 'max_students', 'create_date', 12 fields = ('name', 'slug', 'objectivies', 'content', 'max_students', 'create_date',
12 - 'init_register_date', 'end_register_date', 'init_date', 'end_date', 'public', 'students', 'professors') 13 + 'init_register_date', 'end_register_date', 'init_date', 'end_date', 'public', 'category' ,'students', 'professors')
13 14
14 class SubjectSerializer(serializers.ModelSerializer): 15 class SubjectSerializer(serializers.ModelSerializer):
  16 + students = UserSerializer(many=True)
  17 + professors = UserSerializer(many=True)
  18 + course = serializers.ReadOnlyField(source='course.name')
  19 + category = serializers.ReadOnlyField(source ='category.name')
15 class Meta: 20 class Meta:
16 model = Subject 21 model = Subject
17 - fields = '__all__' 22 + fields = ('name','slug','description','visible','init_date','course','category','professors','course','students')
18 23
19 class TopicSerializer(serializers.ModelSerializer): 24 class TopicSerializer(serializers.ModelSerializer):
  25 + subject = serializers.ReadOnlyField(source='subject.name')
  26 + owner = serializers.ReadOnlyField(source='owner.username')
20 class Meta: 27 class Meta:
21 model = Topic 28 model = Topic
  29 + fields = ('name', 'slug','description','create_date','update_date','visible','owner','subject')
22 30
23 31
courses/views.py
@@ -1016,4 +1016,16 @@ class FileMaterialView(LoginRequiredMixin, LogMixin, generic.DetailView): @@ -1016,4 +1016,16 @@ class FileMaterialView(LoginRequiredMixin, LogMixin, generic.DetailView):
1016 class CourseViewSet(viewsets.ModelViewSet): 1016 class CourseViewSet(viewsets.ModelViewSet):
1017 queryset = Course.objects.all() 1017 queryset = Course.objects.all()
1018 serializer_class = CourseSerializer 1018 serializer_class = CourseSerializer
1019 - permissions_clas = (permissions.IsAuthenticatedOrReadOnly)  
1020 \ No newline at end of file 1019 \ No newline at end of file
  1020 + permissions_class = (permissions.IsAuthenticatedOrReadOnly)
  1021 +
  1022 +class SubjectViewSet(viewsets.ModelViewSet):
  1023 + queryset = Subject.objects.all()
  1024 + serializer_class = SubjectSerializer
  1025 + permissions_class = (permissions.IsAuthenticatedOrReadOnly)
  1026 +
  1027 +
  1028 +class TopicViewSet(viewsets.ModelViewSet):
  1029 + queryset = Topic.objects.all()
  1030 + serializer_class = TopicSerializer
  1031 + permissions_class = (permissions.IsAuthenticatedOrReadOnly)
  1032 +