Commit 2a025adb40ae6d96c00d6be4939a46fd092165e9

Authored by fbormann
1 parent 5b91c656

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

core/urls.py
... ... @@ -7,13 +7,15 @@ from . import views
7 7 from rest_framework import routers
8 8  
9 9 from users.views import UserViewSet
10   -from courses.views import CourseViewSet
  10 +from courses.views import CourseViewSet, TopicViewSet, SubjectViewSet
11 11  
12 12 #API CODE
13 13 router = routers.DefaultRouter()
14 14 router.register(r'logs', views.LogViewSet)
15 15 router.register(r'usersapi', UserViewSet)
16 16 router.register(r'coursesapi', CourseViewSet)
  17 +router.register(r'topicsapi', TopicViewSet)
  18 +router.register(r'subjectapi', SubjectViewSet)
17 19  
18 20 urlpatterns = [
19 21 url(r'^$', views.login, name='home'),
... ...
courses/serializers.py
... ... @@ -4,20 +4,28 @@ from users.serializers import UserSerializer
4 4  
5 5 class CourseSerializer(serializers.ModelSerializer):
6 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 10 class Meta:
10 11 model = Course
11 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 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 20 class Meta:
16 21 model = Subject
17   - fields = '__all__'
  22 + fields = ('name','slug','description','visible','init_date','course','category','professors','course','students')
18 23  
19 24 class TopicSerializer(serializers.ModelSerializer):
  25 + subject = serializers.ReadOnlyField(source='subject.name')
  26 + owner = serializers.ReadOnlyField(source='owner.username')
20 27 class Meta:
21 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 1016 class CourseViewSet(viewsets.ModelViewSet):
1017 1017 queryset = Course.objects.all()
1018 1018 serializer_class = CourseSerializer
1019   - permissions_clas = (permissions.IsAuthenticatedOrReadOnly)
1020 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 +
... ...