Commit 2a025adb40ae6d96c00d6be4939a46fd092165e9
1 parent
5b91c656
Exists in
master
and in
5 other branches
created courses urls #263, Linked Topic and subject to other models #268 #269
Showing
3 changed files
with
28 additions
and
6 deletions
Show diff stats
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 | + | ... | ... |