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,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 | + |