chore: renamed lms certification to lms certificate

This commit is contained in:
Jannat Patel
2022-04-01 18:56:57 +05:30
parent e70c3ef939
commit ebfa49ed8e
14 changed files with 76 additions and 41 deletions

View File

@@ -1,7 +1,7 @@
// Copyright (c) 2021, FOSS United and contributors
// For license information, please see license.txt
frappe.ui.form.on('LMS Certification', {
frappe.ui.form.on('LMS Certificate', {
onload: function (frm) {
frm.set_query("student", function (doc) {
return {

View File

@@ -6,25 +6,18 @@
"editable_grid": 1,
"engine": "InnoDB",
"field_order": [
"student",
"issue_date",
"column_break_3",
"course",
"member",
"column_break_3",
"issue_date",
"expiry_date"
],
"fields": [
{
"fieldname": "student",
"fieldtype": "Link",
"in_list_view": 1,
"in_standard_filter": 1,
"label": "Student",
"options": "User"
},
{
"fieldname": "issue_date",
"fieldtype": "Date",
"label": "Issue Date"
"label": "Issue Date",
"reqd": 1
},
{
"fieldname": "column_break_3",
@@ -36,20 +29,30 @@
"in_list_view": 1,
"in_standard_filter": 1,
"label": "Course",
"options": "LMS Course"
"options": "LMS Course",
"reqd": 1
},
{
"fieldname": "expiry_date",
"fieldtype": "Date",
"label": "Expiry Date"
},
{
"fieldname": "member",
"fieldtype": "Link",
"in_list_view": 1,
"in_standard_filter": 1,
"label": "Member",
"options": "User",
"reqd": 1
}
],
"index_web_pages_for_search": 1,
"links": [],
"modified": "2022-04-01 16:41:10.213765",
"modified": "2022-04-01 18:40:27.651944",
"modified_by": "Administrator",
"module": "LMS",
"name": "LMS Certification",
"name": "LMS Certificate",
"naming_rule": "Expression",
"owner": "Administrator",
"permissions": [

View File

@@ -8,16 +8,16 @@ from frappe import _
from frappe.utils.pdf import get_pdf
from lms.lms.utils import is_certified
class LMSCertification(Document):
class LMSCertificate(Document):
def validate(self):
certificates = frappe.get_all("LMS Certification", {
"student": self.student,
certificates = frappe.get_all("LMS Certificate", {
"member": self.member,
"course": self.course,
"expiry_date": [">", nowdate()]
})
if len(certificates):
full_name = frappe.db.get_value("User", self.student, "full_name")
full_name = frappe.db.get_value("User", self.member, "full_name")
course_name = frappe.db.get_value("LMS Course", self.course, "title")
frappe.throw(_("There is already a valid certificate for user {0} for the course {1}").format(full_name, course_name))
@@ -35,8 +35,8 @@ def create_certificate(course):
expiry_date = add_years(nowdate(), expires_after_yrs)
certificate = frappe.get_doc({
"doctype": "LMS Certification",
"student": frappe.session.user,
"doctype": "LMS Certificate",
"member": frappe.session.user,
"course": course,
"issue_date": nowdate(),
"expiry_date": expiry_date

View File

@@ -4,19 +4,19 @@
import frappe
import unittest
from lms.lms.doctype.lms_course.test_lms_course import new_course
from lms.lms.doctype.lms_certification.lms_certification import create_certificate
from lms.lms.doctype.lms_certificate.lms_certificate import create_certificate
from frappe.utils import nowdate, add_years, cint
class TestLMSCertification(unittest.TestCase):
class TestLMSCertificate(unittest.TestCase):
def test_certificate_creation(self):
course = new_course("Test Certificate", 1, 2)
certificate = create_certificate(course.name)
self.assertEqual(certificate.student, "Administrator")
self.assertEqual(certificate.member, "Administrator")
self.assertEqual(certificate.course, course.name)
self.assertEqual(certificate.issue_date, nowdate())
self.assertEqual(certificate.expiry_date, add_years(nowdate(), cint(course.expiry)))
frappe.db.delete("LMS Certification", certificate.name)
frappe.db.delete("LMS Certificate", certificate.name)
frappe.db.delete("LMS Course", course.name)

View File

@@ -2,6 +2,15 @@
// For license information, please see license.txt
frappe.ui.form.on('LMS Certificate Evaluation', {
refresh: function(frm) {
frm.add_custom_button(__("Create LMS Certificate"), () => {
frappe.model.open_mapped_doc({
method: "lms.lms.doctype.lms_certificate_evaluation.lms_certificate_evaluation.create_lms_certificate",
frm: frm
});
});
},
onload: function(frm) {
frm.set_query("course", function(doc) {
return {
@@ -11,13 +20,5 @@ frappe.ui.form.on('LMS Certificate Evaluation', {
}
};
});
frm.set_query("member", function(doc) {
return {
filters: {
"course": doc.course,
}
};
});
}
});

View File

@@ -1,8 +1,18 @@
# Copyright (c) 2022, Frappe and contributors
# For license information, please see license.txt
# import frappe
import frappe
from frappe.model.document import Document
from frappe.model.mapper import get_mapped_doc
class LMSCertificateEvaluation(Document):
pass
pass
@frappe.whitelist()
def create_lms_certificate(source_name, target_doc=None):
doc = get_mapped_doc("LMS Certificate Evaluation", source_name, {
"LMS Certificate Evaluation": {
"doctype": "LMS Certificate"
}
}, target_doc)
return doc

View File

@@ -170,9 +170,9 @@ def get_sorted_reviews(course):
return rating_percent
def is_certified(course):
certificate = frappe.get_all("LMS Certification",
certificate = frappe.get_all("LMS Certificate",
{
"student": frappe.session.user,
"member": frappe.session.user,
"course": course
})
if len(certificate):

View File

@@ -26,3 +26,5 @@ school.patches.v0_0.set_course_in_lesson #21-03-2022
school.patches.v0_0.set_status_in_course #21-03-2022
lms.patches.v0_0.change_published_field_data #25-03-2022
execute:frappe.delete_doc("Workspace", "School", ignore_missing=True, force=True)
lms.patches.v0_0.certification_member_field_data #01-04-2022
lms.patches.v0_0.move_certification_to_certificate

View File

@@ -0,0 +1,7 @@
import frappe
def execute():
frappe.reload_doc("lms", "doctype", "lms_certification")
certificates = frappe.get_all("LMS Certification", fields=["name", "student"])
for certificate in certificates:
frappe.db.set_value("LMS Certification", certificate.name, "member", certificate.student)

View File

@@ -0,0 +1,12 @@
import frappe
def execute():
old = frappe.get_all("LMS Certification", fields=["name", "course", "member", "student", "issue_date", "expiry_date"])
for data in old:
frappe.get_doc({
"doctype": "LMS Certificate",
"course": data.course,
"member": data.member or data.student,
"issue_date": data.issue_date,
"expiry_date": data.expiry_date
}).save(ignore_permissions=True)

View File

@@ -244,7 +244,7 @@ const create_certificate = (e) => {
e.preventDefault();
course = $(".title").attr("data-course");
frappe.call({
method: "lms.lms.doctype.lms_certification.lms_certification.create_certificate",
method: "lms.lms.doctype.lms_certificate.lms_certificate.create_certificate",
args: {
"course": course
},

View File

@@ -9,7 +9,7 @@ def get_context(context):
except KeyError:
redirect_to_course_list()
context.certificate = frappe.db.get_value("LMS Certification", certificate_name,
context.certificate = frappe.db.get_value("LMS Certificate", certificate_name,
["name", "student", "issue_date", "expiry_date", "course"], as_dict=True)
if context.certificate.course != course_name:

View File

@@ -197,7 +197,7 @@ const create_certificate = (e) => {
e.preventDefault();
course = $(e.currentTarget).attr("data-course");
frappe.call({
method: "lms.lms.doctype.lms_certification.lms_certification.create_certificate",
method: "lms.lms.doctype.lms_certificate.lms_certificate.create_certificate",
args: {
"course": course
},