summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnowsys-ndf/gnowsys_ndf/ndf/templates/ndf/course_detail.html29
-rw-r--r--gnowsys-ndf/gnowsys_ndf/ndf/urls/course.py2
-rw-r--r--gnowsys-ndf/gnowsys_ndf/ndf/views/course.py36
3 files changed, 56 insertions, 11 deletions
diff --git a/gnowsys-ndf/gnowsys_ndf/ndf/templates/ndf/course_detail.html b/gnowsys-ndf/gnowsys_ndf/ndf/templates/ndf/course_detail.html
index 5e6fe520..482b5192 100644
--- a/gnowsys-ndf/gnowsys_ndf/ndf/templates/ndf/course_detail.html
+++ b/gnowsys-ndf/gnowsys_ndf/ndf/templates/ndf/course_detail.html
@@ -130,6 +130,35 @@
{% block script %}
{{block.super}}
+ $(document).on("click", ".enroll-btn", function(event) {
+ console.log("{{request.user.id}}")
+ enr_btn = $(this)
+ $.ajax({
+ url: "{% url 'course_enroll' group_id %}",
+
+ data: {
+ node_id: "{{node.pk}}",
+ usr_id: "{{request.user.id}}",
+ 'csrfmiddlewaretoken': "{{csrf_token}}"
+ },
+
+ type: "POST",
+
+ dataType: "json",
+
+ success: function(data){
+ success_state = data["success"]
+ if(success_state){
+ enr_btn.attr("disabled",true)
+ .val("Enrolled");
+ }
+ else{
+ alert("Something went wrong. Please try again later.")
+ }
+ },
+ });//end of ajax
+ })
+
{% endblock %}
diff --git a/gnowsys-ndf/gnowsys_ndf/ndf/urls/course.py b/gnowsys-ndf/gnowsys_ndf/ndf/urls/course.py
index 6ae13a00..499572c2 100644
--- a/gnowsys-ndf/gnowsys_ndf/ndf/urls/course.py
+++ b/gnowsys-ndf/gnowsys_ndf/ndf/urls/course.py
@@ -19,10 +19,10 @@ urlpatterns = patterns('gnowsys_ndf.ndf.views.course',
url(r'^/course_sub_section_prop/$', 'course_sub_section_prop', name='course_sub_section_prop'),
url(r'^/resources/', 'get_resources', name='get_resources'),
url(r'^/add_units/', 'add_units', name='add_units'),
- url(r'^/publish_course/', 'publish_course', name='publish_course'),
url(r'^/save_res/', 'save_resources', name='save_resources'),
url(r'^/create_edit_unit/', 'create_edit_unit', name='create_edit_unit'),
url(r'^/change_node_name/$', 'change_node_name', name='change_node_name'),
url(r'^/change_order/$', 'change_order', name='change_order'),
url(r'^/delete/$', 'delete_from_course_structure', name='delete_from_cs'),
+ url(r'^/enroll/$', 'enroll_generic', name='course_enroll'),
)
diff --git a/gnowsys-ndf/gnowsys_ndf/ndf/views/course.py b/gnowsys-ndf/gnowsys_ndf/ndf/views/course.py
index 71430b0b..48917dd4 100644
--- a/gnowsys-ndf/gnowsys_ndf/ndf/views/course.py
+++ b/gnowsys-ndf/gnowsys_ndf/ndf/views/course.py
@@ -1357,14 +1357,30 @@ def delete_item(item):
@login_required
-def publish_course(request, group_id):
+def enroll_generic(request, group_id):
+ response_dict = {"success": False}
if request.is_ajax() and request.method == "POST":
- try:
- node_id = request.POST.get("node_id", "")
- node = node_collection.one({'_id': ObjectId(node_id)})
- node.status = unicode("PUBLISHED")
- node.modified_by = int(request.user.id)
- node.save()
- except:
- return HttpResponse("Fail")
- return HttpResponse("Success")
+ course_enrollment_status_at = node_collection.one({
+ "_type": "AttributeType", "name": "course_enrollment_status"
+ })
+ node_id = request.POST.get('node_id', '')
+ usr_id = request.POST.get('usr_id', '')
+ usr_id = int(usr_id)
+ auth_node = node_collection.one({'_type': "Author", 'created_by': usr_id})
+ auth_node
+ course_node = node_collection.one({'_id': ObjectId(node_id)})
+ auth_node.get_neighbourhood(auth_node.member_of)
+
+ course_enrollment_status = {}
+ if auth_node["course_enrollment_status"]:
+ course_enrollment_status = auth_node["course_enrollment_status"]
+
+ str_course_id = str(course_node._id)
+ if str_course_id not in course_enrollment_status:
+ course_enrollment_status.update({str_course_id: u"Approved"})
+
+ at_node = create_gattribute(auth_node["_id"], course_enrollment_status_at, course_enrollment_status)
+ response_dict['success'] = True
+ return HttpResponse(json.dumps(response_dict))
+ else:
+ return HttpResponse(json.dumps(response_dict))