diff --git a/lms/lms/doctype/course_evaluator/course_evaluator.json b/lms/lms/doctype/course_evaluator/course_evaluator.json index 1a7d04fe..07cbcb20 100644 --- a/lms/lms/doctype/course_evaluator/course_evaluator.json +++ b/lms/lms/doctype/course_evaluator/course_evaluator.json @@ -1,6 +1,7 @@ { "actions": [], "allow_rename": 1, + "autoname": "field:evaluator", "creation": "2022-03-29 10:51:47.667284", "doctype": "DocType", "editable_grid": 1, @@ -14,7 +15,8 @@ "fieldname": "evaluator", "fieldtype": "Link", "label": "Evaluator", - "options": "User" + "options": "User", + "unique": 1 }, { "fieldname": "schedule", @@ -25,10 +27,11 @@ ], "index_web_pages_for_search": 1, "links": [], - "modified": "2022-03-29 12:47:10.975155", + "modified": "2022-04-01 15:14:03.300260", "modified_by": "Administrator", "module": "LMS", "name": "Course Evaluator", + "naming_rule": "By fieldname", "owner": "Administrator", "permissions": [ { @@ -46,6 +49,5 @@ ], "sort_field": "modified", "sort_order": "DESC", - "states": [], - "title_field": "evaluator" + "states": [] } \ No newline at end of file diff --git a/lms/lms/doctype/lms_certificate_evaluation/lms_certificate_evaluation.json b/lms/lms/doctype/lms_certificate_evaluation/lms_certificate_evaluation.json index e9cc5f38..70f5b3ae 100644 --- a/lms/lms/doctype/lms_certificate_evaluation/lms_certificate_evaluation.json +++ b/lms/lms/doctype/lms_certificate_evaluation/lms_certificate_evaluation.json @@ -8,8 +8,9 @@ "field_order": [ "course", "member", - "start", - "end", + "date", + "start_time", + "end_time", "column_break_5", "rating", "summary" @@ -30,19 +31,9 @@ "in_list_view": 1, "in_standard_filter": 1, "label": "Member", - "options": "LMS Batch Membership", + "options": "User", "reqd": 1 }, - { - "fieldname": "start", - "fieldtype": "Datetime", - "label": "Start" - }, - { - "fieldname": "end", - "fieldtype": "Datetime", - "label": "End" - }, { "fieldname": "column_break_5", "fieldtype": "Column Break" @@ -51,17 +42,37 @@ "fieldname": "rating", "fieldtype": "Rating", "in_list_view": 1, - "label": "Rating" + "label": "Rating", + "reqd": 1 }, { "fieldname": "summary", "fieldtype": "Text", "label": "Summary" + }, + { + "fieldname": "date", + "fieldtype": "Date", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Date", + "reqd": 1 + }, + { + "fieldname": "start_time", + "fieldtype": "Time", + "label": "Start Time", + "reqd": 1 + }, + { + "fieldname": "end_time", + "fieldtype": "Time", + "label": "End Time" } ], "index_web_pages_for_search": 1, "links": [], - "modified": "2022-03-29 09:48:45.682678", + "modified": "2022-04-01 16:26:39.168390", "modified_by": "Administrator", "module": "LMS", "name": "LMS Certificate Evaluation", diff --git a/lms/lms/doctype/lms_certificate_request/lms_certificate_request.js b/lms/lms/doctype/lms_certificate_request/lms_certificate_request.js index 4ee82193..b491e032 100644 --- a/lms/lms/doctype/lms_certificate_request/lms_certificate_request.js +++ b/lms/lms/doctype/lms_certificate_request/lms_certificate_request.js @@ -2,7 +2,12 @@ // For license information, please see license.txt frappe.ui.form.on('LMS Certificate Request', { - // refresh: function(frm) { - - // } + refresh: function(frm) { + frm.add_custom_button(__("Create LMS Certificate Evaluation"), () => { + frappe.model.open_mapped_doc({ + method: "lms.lms.doctype.lms_certificate_request.lms_certificate_request.create_lms_certificate_evaluation", + frm: frm + }); + }); + } }); diff --git a/lms/lms/doctype/lms_certificate_request/lms_certificate_request.json b/lms/lms/doctype/lms_certificate_request/lms_certificate_request.json index 93f9f573..94b71090 100644 --- a/lms/lms/doctype/lms_certificate_request/lms_certificate_request.json +++ b/lms/lms/doctype/lms_certificate_request/lms_certificate_request.json @@ -20,6 +20,7 @@ "fieldname": "course", "fieldtype": "Link", "in_list_view": 1, + "in_standard_filter": 1, "label": "Course", "options": "LMS Course", "reqd": 1 @@ -29,19 +30,24 @@ "fieldtype": "Link", "in_list_view": 1, "label": "Member", - "options": "LMS Batch Membership", + "options": "User", "reqd": 1 }, { + "fetch_from": "course.evaluator", "fieldname": "evaluator", - "fieldtype": "Data", + "fieldtype": "Link", "label": "Evaluator", + "options": "Course Evaluator", "read_only": 1 }, { "fieldname": "date", "fieldtype": "Date", - "label": "Date" + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Date", + "reqd": 1 }, { "fieldname": "day", @@ -52,12 +58,16 @@ { "fieldname": "start_time", "fieldtype": "Time", - "label": "Start Time" + "in_list_view": 1, + "label": "Start Time", + "reqd": 1 }, { "fieldname": "end_time", "fieldtype": "Time", - "label": "End Time" + "in_list_view": 1, + "label": "End Time", + "reqd": 1 }, { "fieldname": "column_break_4", @@ -66,7 +76,7 @@ ], "index_web_pages_for_search": 1, "links": [], - "modified": "2022-03-30 10:04:17.530698", + "modified": "2022-04-01 15:29:31.553492", "modified_by": "Administrator", "module": "LMS", "name": "LMS Certificate Request", diff --git a/lms/lms/doctype/lms_certificate_request/lms_certificate_request.py b/lms/lms/doctype/lms_certificate_request/lms_certificate_request.py index 7c4f6d10..3d674cf3 100644 --- a/lms/lms/doctype/lms_certificate_request/lms_certificate_request.py +++ b/lms/lms/doctype/lms_certificate_request/lms_certificate_request.py @@ -3,17 +3,38 @@ import frappe from frappe.model.document import Document +from frappe.model.mapper import get_mapped_doc class LMSCertificateRequest(Document): pass @frappe.whitelist() -def create_certificate_request(course, day, start_time, end_time): - evaluator = frappe.db.get_value("LMS Course", course, "evaluator") +def create_certificate_request(course, date, day, start_time, end_time): + is_member = frappe.db.exists({ + "doctype": "LMS Batch Membership", + "course": course, + "member": frappe.session.user + }) + + if not is_member: + return + frappe.get_doc({ "doctype": "LMS Certificate Request", "course": course, + "member": frappe.session.user, + "date": date, "day": day, "start_time": start_time, "end_time": end_time }).save(ignore_permissions=True) + + +@frappe.whitelist() +def create_lms_certificate_evaluation(source_name, target_doc=None): + doc = get_mapped_doc("LMS Certificate Request", source_name, { + "LMS Certificate Request": { + "doctype": "LMS Certificate Evaluation" + } + }, target_doc) + return doc diff --git a/lms/lms/doctype/lms_certification/lms_certification.json b/lms/lms/doctype/lms_certification/lms_certification.json index fc6e58fa..0c16244f 100644 --- a/lms/lms/doctype/lms_certification/lms_certification.json +++ b/lms/lms/doctype/lms_certification/lms_certification.json @@ -1,5 +1,6 @@ { "actions": [], + "autoname": "format:CERT-{#####}", "creation": "2021-08-16 15:47:19.494055", "doctype": "DocType", "editable_grid": 1, @@ -45,10 +46,11 @@ ], "index_web_pages_for_search": 1, "links": [], - "modified": "2021-08-16 15:47:19.494055", + "modified": "2022-04-01 16:41:10.213765", "modified_by": "Administrator", "module": "LMS", "name": "LMS Certification", + "naming_rule": "Expression", "owner": "Administrator", "permissions": [ { @@ -66,5 +68,6 @@ ], "sort_field": "modified", "sort_order": "DESC", + "states": [], "track_changes": 1 } \ No newline at end of file diff --git a/lms/lms/doctype/lms_course/lms_course.json b/lms/lms/doctype/lms_course/lms_course.json index e4bb8a2f..f4f50ce5 100644 --- a/lms/lms/doctype/lms_course/lms_course.json +++ b/lms/lms/doctype/lms_course/lms_course.json @@ -214,7 +214,7 @@ "link_fieldname": "course" } ], - "modified": "2022-03-29 14:56:03.989375", + "modified": "2022-04-01 15:19:13.075063", "modified_by": "Administrator", "module": "LMS", "name": "LMS Course", @@ -248,6 +248,7 @@ } ], "search_fields": "title", + "show_title_field_in_link": 1, "sort_field": "creation", "sort_order": "DESC", "states": [], diff --git a/lms/www/courses/course.html b/lms/www/courses/course.html index de819546..ec5ef4df 100644 --- a/lms/www/courses/course.html +++ b/lms/www/courses/course.html @@ -105,6 +105,12 @@ {{ _("You have opted to be notified for this course. You will receive an email when the course becomes available.") }} + {% if certificate_request %} +
{{ _("Evaluation On") }} + {{ _(": {0} at {1}").format(frappe.utils.format_date(certificate_request.date, "medium"), + frappe.utils.format_time(certificate_request.start_time, "short")) }}
+ {% endif %} + {% if course.status == "Under Review" %}