diff options
-rw-r--r-- | gnowsys-ndf/gnowsys_ndf/ndf/templates/ndf/course_detail.html | 29 | ||||
-rw-r--r-- | gnowsys-ndf/gnowsys_ndf/ndf/urls/course.py | 2 | ||||
-rw-r--r-- | gnowsys-ndf/gnowsys_ndf/ndf/views/course.py | 36 |
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)) |