Commit 1716dfaea00a94470508732f37469c52b3532d7f
1 parent
6b6b8caa
Exists in
master
and in
5 other branches
Adding url to subscribe in course [Issue: #194]
Showing
2 changed files
with
12 additions
and
5 deletions
Show diff stats
courses/urls.py
@@ -8,6 +8,7 @@ urlpatterns = [ | @@ -8,6 +8,7 @@ urlpatterns = [ | ||
8 | url(r'^edit/(?P<slug>[\w_-]+)/$', views.UpdateCourseView.as_view(), name='update'), | 8 | url(r'^edit/(?P<slug>[\w_-]+)/$', views.UpdateCourseView.as_view(), name='update'), |
9 | url(r'^(?P<slug>[\w_-]+)/$', views.CourseView.as_view(), name='view'), | 9 | url(r'^(?P<slug>[\w_-]+)/$', views.CourseView.as_view(), name='view'), |
10 | url(r'^delete/(?P<slug>[\w_-]+)/$', views.DeleteCourseView.as_view(), name='delete'), | 10 | url(r'^delete/(?P<slug>[\w_-]+)/$', views.DeleteCourseView.as_view(), name='delete'), |
11 | + url(r'^register/(?P<slug>[\w_-]+)/$', views.subscribe_course, name='subscribe'), | ||
11 | url(r'^category/(?P<slug>[\w_-]+)/$', views.FilteredView.as_view(), name='filter'), | 12 | url(r'^category/(?P<slug>[\w_-]+)/$', views.FilteredView.as_view(), name='filter'), |
12 | url(r'^categories/view/$', views.IndexCatView.as_view(), name='manage_cat'), | 13 | url(r'^categories/view/$', views.IndexCatView.as_view(), name='manage_cat'), |
13 | url(r'^categories/create/$', views.CreateCatView.as_view(), name="create_cat"), | 14 | url(r'^categories/create/$', views.CreateCatView.as_view(), name="create_cat"), |
@@ -31,7 +32,4 @@ urlpatterns = [ | @@ -31,7 +32,4 @@ urlpatterns = [ | ||
31 | url(r'^files/', include('files.urls', namespace = 'file')), | 32 | url(r'^files/', include('files.urls', namespace = 'file')), |
32 | url(r'^upload-material/$', views.UploadMaterialView.as_view(), name='upload_material'), | 33 | url(r'^upload-material/$', views.UploadMaterialView.as_view(), name='upload_material'), |
33 | url(r'^links/',include('links.urls',namespace = 'links')), | 34 | url(r'^links/',include('links.urls',namespace = 'links')), |
34 | - | ||
35 | - | ||
36 | - | ||
37 | -] | 35 | +] |
38 | \ No newline at end of file | 36 | \ No newline at end of file |
courses/views.py
@@ -10,7 +10,7 @@ from django.utils.translation import ugettext_lazy as _ | @@ -10,7 +10,7 @@ from django.utils.translation import ugettext_lazy as _ | ||
10 | from rolepermissions.verifications import has_role | 10 | from rolepermissions.verifications import has_role |
11 | from django.db.models import Q | 11 | from django.db.models import Q |
12 | from rolepermissions.verifications import has_object_permission | 12 | from rolepermissions.verifications import has_object_permission |
13 | -from django.http import HttpResponseRedirect | 13 | +from django.http import HttpResponseRedirect, JsonResponse |
14 | 14 | ||
15 | from .forms import CourseForm, UpdateCourseForm, CategoryCourseForm, SubjectForm,TopicForm,ActivityForm | 15 | from .forms import CourseForm, UpdateCourseForm, CategoryCourseForm, SubjectForm,TopicForm,ActivityForm |
16 | from .models import Course, Subject, CourseCategory,Topic, SubjectCategory,Activity, CategorySubject | 16 | from .models import Course, Subject, CourseCategory,Topic, SubjectCategory,Activity, CategorySubject |
@@ -227,6 +227,15 @@ class DeleteView(LoginRequiredMixin, HasRoleMixin, NotificationMixin, generic.De | @@ -227,6 +227,15 @@ class DeleteView(LoginRequiredMixin, HasRoleMixin, NotificationMixin, generic.De | ||
227 | 227 | ||
228 | return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine) | 228 | return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine) |
229 | 229 | ||
230 | +@login_required | ||
231 | +def subscribe_course(request, slug): | ||
232 | + course = get_object_or_404(Course, slug = slug) | ||
233 | + | ||
234 | + if course.students.add(request.user): | ||
235 | + return JsonResponse({"status": "ok", "message": _("Successfully subscribed to the course!")}) | ||
236 | + else: | ||
237 | + return JsonResponse({"status": "erro", "message": _("An error has occured. Could not subscribe to this course, try again later")}) | ||
238 | + | ||
230 | class FilteredView(LoginRequiredMixin, generic.ListView): | 239 | class FilteredView(LoginRequiredMixin, generic.ListView): |
231 | 240 | ||
232 | login_url = reverse_lazy("core:home") | 241 | login_url = reverse_lazy("core:home") |