Commit 1716dfaea00a94470508732f37469c52b3532d7f

Authored by Zambom
1 parent 6b6b8caa

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")