diff --git a/courses/urls.py b/courses/urls.py index 4c6cfa0..14bec51 100644 --- a/courses/urls.py +++ b/courses/urls.py @@ -8,6 +8,7 @@ urlpatterns = [ url(r'^edit/(?P[\w_-]+)/$', views.UpdateCourseView.as_view(), name='update'), url(r'^(?P[\w_-]+)/$', views.CourseView.as_view(), name='view'), url(r'^delete/(?P[\w_-]+)/$', views.DeleteCourseView.as_view(), name='delete'), + url(r'^register/(?P[\w_-]+)/$', views.subscribe_course, name='subscribe'), url(r'^category/(?P[\w_-]+)/$', views.FilteredView.as_view(), name='filter'), url(r'^categories/view/$', views.IndexCatView.as_view(), name='manage_cat'), url(r'^categories/create/$', views.CreateCatView.as_view(), name="create_cat"), @@ -31,7 +32,4 @@ urlpatterns = [ url(r'^files/', include('files.urls', namespace = 'file')), url(r'^upload-material/$', views.UploadMaterialView.as_view(), name='upload_material'), url(r'^links/',include('links.urls',namespace = 'links')), - - - -] +] \ No newline at end of file diff --git a/courses/views.py b/courses/views.py index eb3a16b..514e296 100644 --- a/courses/views.py +++ b/courses/views.py @@ -10,7 +10,7 @@ from django.utils.translation import ugettext_lazy as _ from rolepermissions.verifications import has_role from django.db.models import Q from rolepermissions.verifications import has_object_permission -from django.http import HttpResponseRedirect +from django.http import HttpResponseRedirect, JsonResponse from .forms import CourseForm, UpdateCourseForm, CategoryCourseForm, SubjectForm,TopicForm,ActivityForm from .models import Course, Subject, CourseCategory,Topic, SubjectCategory,Activity, CategorySubject @@ -227,6 +227,15 @@ class DeleteView(LoginRequiredMixin, HasRoleMixin, NotificationMixin, generic.De return self.response_class(request=self.request, template=self.get_template_names(), context=context, using=self.template_engine) +@login_required +def subscribe_course(request, slug): + course = get_object_or_404(Course, slug = slug) + + if course.students.add(request.user): + return JsonResponse({"status": "ok", "message": _("Successfully subscribed to the course!")}) + else: + return JsonResponse({"status": "erro", "message": _("An error has occured. Could not subscribe to this course, try again later")}) + class FilteredView(LoginRequiredMixin, generic.ListView): login_url = reverse_lazy("core:home") -- libgit2 0.21.2