Commit 376c74dd57b436b2cdd0b2cb2f57281bbd527b1e

Authored by Zambom
1 parent 1716dfae

Adding url to subscribe in subject [Issue: #196]

Showing 2 changed files with 13 additions and 1 deletions   Show diff stats
courses/urls.py
@@ -8,7 +8,7 @@ urlpatterns = [ @@ -8,7 +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'^subscribe/(?P<slug>[\w_-]+)/$', views.subscribe_course, name='subscribe'),
12 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'),
13 url(r'^categories/view/$', views.IndexCatView.as_view(), name='manage_cat'), 13 url(r'^categories/view/$', views.IndexCatView.as_view(), name='manage_cat'),
14 url(r'^categories/create/$', views.CreateCatView.as_view(), name="create_cat"), 14 url(r'^categories/create/$', views.CreateCatView.as_view(), name="create_cat"),
@@ -19,6 +19,7 @@ urlpatterns = [ @@ -19,6 +19,7 @@ urlpatterns = [
19 url(r'^subjects/create/(?P<slug>[\w_-]+)/$', views.CreateSubjectView.as_view(), name='create_subject'), 19 url(r'^subjects/create/(?P<slug>[\w_-]+)/$', views.CreateSubjectView.as_view(), name='create_subject'),
20 url(r'^subjects/update/(?P<slug>[\w_-]+)/$', views.UpdateSubjectView.as_view(), name='update_subject'), 20 url(r'^subjects/update/(?P<slug>[\w_-]+)/$', views.UpdateSubjectView.as_view(), name='update_subject'),
21 url(r'^subjects/delete/(?P<slug>[\w_-]+)/$', views.DeleteSubjectView.as_view(), name='delete_subject'), 21 url(r'^subjects/delete/(?P<slug>[\w_-]+)/$', views.DeleteSubjectView.as_view(), name='delete_subject'),
  22 + url(r'^subjects/subscribe/(?P<slug>[\w_-]+)/$', views.subscribe_subject, name='subscribe_subject'),
22 url(r'^topics/create/(?P<slug>[\w_-]+)/$', views.CreateTopicView.as_view(), name='create_topic'), 23 url(r'^topics/create/(?P<slug>[\w_-]+)/$', views.CreateTopicView.as_view(), name='create_topic'),
23 url(r'^topics/update/(?P<slug>[\w_-]+)/$', views.UpdateTopicView.as_view(), name='update_topic'), 24 url(r'^topics/update/(?P<slug>[\w_-]+)/$', views.UpdateTopicView.as_view(), name='update_topic'),
24 url(r'^topics/createlink/$', linkviews.CreateLink.as_view(),name = 'create_link'), 25 url(r'^topics/createlink/$', linkviews.CreateLink.as_view(),name = 'create_link'),
courses/views.py
@@ -535,6 +535,17 @@ class DeleteSubjectView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView): @@ -535,6 +535,17 @@ class DeleteSubjectView(LoginRequiredMixin, HasRoleMixin, generic.DeleteView):
535 def get_success_url(self): 535 def get_success_url(self):
536 return reverse_lazy('course:view', kwargs={'slug' : self.object.course.slug}) 536 return reverse_lazy('course:view', kwargs={'slug' : self.object.course.slug})
537 537
  538 +@login_required
  539 +def subscribe_course(request, slug):
  540 + subject = get_object_or_404(Subject, slug = slug)
  541 +
  542 + if request.user.courses_student.filter(slug = slug).exists():
  543 + if subject.students.add(request.user):
  544 + return JsonResponse({"status": "ok", "message": _("Successfully subscribed to the subject!")})
  545 + else:
  546 + return JsonResponse({"status": "erro", "message": _("An error has occured. Could not subscribe to this subject, try again later")})
  547 + else:
  548 + return JsonResponse({"status": "erro", "message": _("You're not subscribed in the course yet.")})
538 549
539 class IndexSubjectCategoryView(LoginRequiredMixin, generic.ListView): 550 class IndexSubjectCategoryView(LoginRequiredMixin, generic.ListView):
540 allowed_roles = ['professor', 'system_admin'] 551 allowed_roles = ['professor', 'system_admin']