LMS: Course Completion Status Working
This commit is contained in:
parent
a8703d4036
commit
1e1f1ad186
@ -144,6 +144,40 @@
|
|||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
"translatable": 0,
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"allow_bulk_edit": 0,
|
||||||
|
"allow_in_quick_entry": 0,
|
||||||
|
"allow_on_submit": 0,
|
||||||
|
"bold": 0,
|
||||||
|
"collapsible": 0,
|
||||||
|
"columns": 0,
|
||||||
|
"default": "0",
|
||||||
|
"fieldname": "completed",
|
||||||
|
"fieldtype": "Check",
|
||||||
|
"hidden": 0,
|
||||||
|
"ignore_user_permissions": 0,
|
||||||
|
"ignore_xss_filter": 0,
|
||||||
|
"in_filter": 0,
|
||||||
|
"in_global_search": 0,
|
||||||
|
"in_list_view": 0,
|
||||||
|
"in_standard_filter": 0,
|
||||||
|
"label": "Completed",
|
||||||
|
"length": 0,
|
||||||
|
"no_copy": 0,
|
||||||
|
"options": "",
|
||||||
|
"permlevel": 0,
|
||||||
|
"precision": "",
|
||||||
|
"print_hide": 0,
|
||||||
|
"print_hide_if_no_value": 0,
|
||||||
|
"read_only": 0,
|
||||||
|
"remember_last_selected_value": 0,
|
||||||
|
"report_hide": 0,
|
||||||
|
"reqd": 0,
|
||||||
|
"search_index": 0,
|
||||||
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
|
"unique": 0
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"has_web_view": 0,
|
"has_web_view": 0,
|
||||||
@ -156,7 +190,7 @@
|
|||||||
"issingle": 0,
|
"issingle": 0,
|
||||||
"istable": 0,
|
"istable": 0,
|
||||||
"max_attachments": 0,
|
"max_attachments": 0,
|
||||||
"modified": "2018-10-19 17:46:46.595749",
|
"modified": "2018-10-24 16:05:02.961543",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Education",
|
"module": "Education",
|
||||||
"name": "Course Enrollment",
|
"name": "Course Enrollment",
|
||||||
|
@ -99,6 +99,8 @@ def add_quiz_activity(enrollment, quiz, score, answers, quiz_response):
|
|||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def add_activity(content_type, content, course, program):
|
def add_activity(content_type, content, course, program):
|
||||||
|
if content_type == "Quiz":
|
||||||
|
pass
|
||||||
enrollment = get_course_enrollment(course, frappe.session.user)
|
enrollment = get_course_enrollment(course, frappe.session.user)
|
||||||
if check_activity_exists(enrollment['name'], content_type, content):
|
if check_activity_exists(enrollment['name'], content_type, content):
|
||||||
pass
|
pass
|
||||||
@ -167,4 +169,18 @@ def get_student_id(email=None):
|
|||||||
return frappe.get_all('Student', filters={'student_email_id': email}, fields=['name'])[0].name
|
return frappe.get_all('Student', filters={'student_email_id': email}, fields=['name'])[0].name
|
||||||
except IndexError:
|
except IndexError:
|
||||||
frappe.throw("Student with email {0} does not exist".format(email))
|
frappe.throw("Student with email {0} does not exist".format(email))
|
||||||
|
return None
|
||||||
|
|
||||||
|
@frappe.whitelist()
|
||||||
|
def mark_course_complete(course):
|
||||||
|
try:
|
||||||
|
enrollment_name = get_course_enrollment(course, frappe.session.user)
|
||||||
|
enrollment = frappe.get_doc("Course Enrollment", enrollment_name)
|
||||||
|
enrollment.completed = 1
|
||||||
|
enrollment.save()
|
||||||
|
pass
|
||||||
|
except:
|
||||||
|
import traceback
|
||||||
|
traceback.print_exc()
|
||||||
|
frappe.throw("The user is not enrolled for the course {course}".format(course=course))
|
||||||
return None
|
return None
|
@ -1,13 +1,8 @@
|
|||||||
{% extends "frappe_theme/templates/base.html" %}
|
{% extends "frappe_theme/templates/base.html" %}
|
||||||
{% block title %}ERPNext Academy{% endblock %}
|
{% block title %}ERPNext Academy{% endblock %}
|
||||||
{% from "templates/includes/media.html" import media %}
|
{% from "templates/includes/media.html" import media %}
|
||||||
{% block head_include %}
|
|
||||||
<meta name="description" content="ERPNext Academy is a learnig platform to gain expertise in the world's top 100% open source ERP software." />
|
|
||||||
<meta name="keywords" content="ERP Software, Cloud ERP, Open Source ERP, Accounting Software, Online ERP, Online Accounting, ERP for small business, Learn ERP, ERPNext Academy, Learn ERPNext, Learn Accounting" />
|
|
||||||
{% endblock %}
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div id="content-holder" data-type="{{ content_type }}" data-content="{{ content.name }}" data-course="{{ course_name }}" data-program="{{ program_name }}">
|
<div id="content-holder" data-type="{{ content_type }}" data-content="{{ content.name }}" data-course="{{ course_name }}" data-program="{{ program_name }}">
|
||||||
|
|
||||||
{% include "www/lms/templates/includes/" + content_type.lower() + ".html" %}
|
{% include "www/lms/templates/includes/" + content_type.lower() + ".html" %}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -35,3 +35,13 @@ function addActivity() {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function addFinalActivity() {
|
||||||
|
addActivity()
|
||||||
|
frappe.call({
|
||||||
|
method: "erpnext.education.utils.mark_course_complete",
|
||||||
|
args: {
|
||||||
|
"course": $('#content-holder').data('course'),
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
@ -3,11 +3,6 @@
|
|||||||
|
|
||||||
{% from "templates/includes/media.html" import media %}
|
{% from "templates/includes/media.html" import media %}
|
||||||
|
|
||||||
{% block head_include %}
|
|
||||||
<meta name="description" content="ERPNext Academy is a learnig platform to gain expertise in the world's top 100% open source ERP software." />
|
|
||||||
<meta name="keywords" content="ERP Software, Cloud ERP, Open Source ERP, Accounting Software, Online ERP, Online Accounting, ERP for small business, Learn ERP, ERPNext Academy, Learn ERPNext, Learn Accounting" />
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% macro featured_card(program_name, description, hero_image, code) %}
|
{% macro featured_card(program_name, description, hero_image, code) %}
|
||||||
<div class='card-deck mt-5'>
|
<div class='card-deck mt-5'>
|
||||||
<div class="card">
|
<div class="card">
|
||||||
|
@ -1,11 +1,6 @@
|
|||||||
{% extends "frappe_theme/templates/base.html" %}
|
{% extends "frappe_theme/templates/base.html" %}
|
||||||
{% block title %}ERPNext Academy{% endblock %}
|
{% block title %}ERPNext Academy{% endblock %}
|
||||||
|
|
||||||
{% block head_include %}
|
|
||||||
<meta name="description" content="ERPNext Academy is a learnig platform to gain expertise in the world's top 100% open source ERP software." />
|
|
||||||
<meta name="keywords" content="ERP Software, Cloud ERP, Open Source ERP, Accounting Software, Online ERP, Online Accounting, ERP for small business, Learn ERP, ERPNext Academy, Learn ERPNext, Learn Accounting" />
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% macro course_card(course) %}
|
{% macro course_card(course) %}
|
||||||
<div class="card mt-3" data-list="getting-started">
|
<div class="card mt-3" data-list="getting-started">
|
||||||
<div class='card-body'>
|
<div class='card-body'>
|
||||||
@ -22,7 +17,11 @@
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class='text-center col-xs-4 col-sm-3 col-md-2'>
|
<div class='text-center col-xs-4 col-sm-3 col-md-2'>
|
||||||
|
{% if not check_complete(course.name) %}
|
||||||
<a class='btn btn-primary btn-sm btn-block' href="/lms/course?program={{ program.program_code }}&course={{ course.name }}&type={{course.course_content[0].content_type}}&content={{ course.course_content[0].content }}">Start Course</a>
|
<a class='btn btn-primary btn-sm btn-block' href="/lms/course?program={{ program.program_code }}&course={{ course.name }}&type={{course.course_content[0].content_type}}&content={{ course.course_content[0].content }}">Start Course</a>
|
||||||
|
{% else %}
|
||||||
|
<a class='btn btn-success btn-sm btn-block' href="/lms/course?program={{ program.program_code }}&course={{ course.name }}&type={{course.course_content[0].content_type}}&content={{ course.course_content[0].content }}">Complete</a>
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -8,4 +8,14 @@ def get_context(context):
|
|||||||
course_list = program.get_course_list()
|
course_list = program.get_course_list()
|
||||||
|
|
||||||
context.program = program
|
context.program = program
|
||||||
context.course_list = course_list
|
context.course_list = course_list
|
||||||
|
context.check_complete = check_complete
|
||||||
|
|
||||||
|
|
||||||
|
def check_complete(course_name):
|
||||||
|
try:
|
||||||
|
enrollment = utils.get_course_enrollment(course_name, frappe.session.user)
|
||||||
|
completed = frappe.get_value('Course Enrollment', enrollment['name'], "completed")
|
||||||
|
return bool(completed)
|
||||||
|
except:
|
||||||
|
return False
|
@ -2,5 +2,5 @@
|
|||||||
{% if next_content != None %}
|
{% if next_content != None %}
|
||||||
<a class='btn btn-primary' onclick="addActivity()" href="/lms/course?program={{ program_name }}&course={{ course_name }}&type={{ next_content_type }}&content={{ next_content }}">Next</a>
|
<a class='btn btn-primary' onclick="addActivity()" href="/lms/course?program={{ program_name }}&course={{ course_name }}&type={{ next_content_type }}&content={{ next_content }}">Next</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a class='btn btn-primary' onclick="addActivity()" href="/lms/program?program={{ program_name }}">Finish Course</a>
|
<a class='btn btn-primary' onclick="addFinalActivity()" href="/lms/program?program={{ program_name }}">Finish Course</a>
|
||||||
{% endif %}
|
{% endif %}
|
Loading…
x
Reference in New Issue
Block a user