fix: onboarding step improvements
This commit is contained in:
@@ -1339,3 +1339,24 @@ def save_role(user, role, value):
|
||||
else:
|
||||
frappe.db.delete("Has Role", {"parent": user, "role": role})
|
||||
return True
|
||||
|
||||
|
||||
@frappe.whitelist()
|
||||
def add_an_evaluator(email):
|
||||
if not frappe.db.exists("User", email):
|
||||
user = frappe.new_doc("User")
|
||||
user.update(
|
||||
{
|
||||
"email": email,
|
||||
"first_name": email.split("@")[0].capitalize(),
|
||||
"enabled": 1,
|
||||
}
|
||||
)
|
||||
user.insert()
|
||||
user.add_roles("Batch Evaluator")
|
||||
|
||||
evaluator = frappe.new_doc("Course Evaluator")
|
||||
evaluator.evaluator = email
|
||||
evaluator.insert()
|
||||
|
||||
return evaluator
|
||||
|
||||
@@ -8,6 +8,11 @@
|
||||
"engine": "InnoDB",
|
||||
"field_order": [
|
||||
"evaluator",
|
||||
"full_name",
|
||||
"column_break_casg",
|
||||
"user_image",
|
||||
"username",
|
||||
"section_break_ljse",
|
||||
"schedule",
|
||||
"unavailability_section",
|
||||
"unavailable_from",
|
||||
@@ -18,8 +23,10 @@
|
||||
{
|
||||
"fieldname": "evaluator",
|
||||
"fieldtype": "Link",
|
||||
"in_list_view": 1,
|
||||
"label": "Evaluator",
|
||||
"options": "User",
|
||||
"reqd": 1,
|
||||
"unique": 1
|
||||
},
|
||||
{
|
||||
@@ -46,11 +53,40 @@
|
||||
"fieldname": "unavailable_to",
|
||||
"fieldtype": "Date",
|
||||
"label": "To"
|
||||
},
|
||||
{
|
||||
"fetch_from": "evaluator.full_name",
|
||||
"fieldname": "full_name",
|
||||
"fieldtype": "Data",
|
||||
"label": "Full Name",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "column_break_casg",
|
||||
"fieldtype": "Column Break"
|
||||
},
|
||||
{
|
||||
"fieldname": "section_break_ljse",
|
||||
"fieldtype": "Section Break"
|
||||
},
|
||||
{
|
||||
"fetch_from": "evaluator.user_image",
|
||||
"fieldname": "user_image",
|
||||
"fieldtype": "Attach Image",
|
||||
"label": "User Image",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"fetch_from": "evaluator.username",
|
||||
"fieldname": "username",
|
||||
"fieldtype": "Data",
|
||||
"label": "Username",
|
||||
"read_only": 1
|
||||
}
|
||||
],
|
||||
"index_web_pages_for_search": 1,
|
||||
"links": [],
|
||||
"modified": "2025-02-24 12:17:08.436659",
|
||||
"modified": "2025-03-26 14:02:46.588721",
|
||||
"modified_by": "Administrator",
|
||||
"module": "LMS",
|
||||
"name": "Course Evaluator",
|
||||
@@ -94,7 +130,8 @@
|
||||
"write": 1
|
||||
}
|
||||
],
|
||||
"row_format": "Dynamic",
|
||||
"sort_field": "modified",
|
||||
"sort_order": "DESC",
|
||||
"states": []
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,9 +11,15 @@ from frappe.utils import get_time, getdate
|
||||
|
||||
class CourseEvaluator(Document):
|
||||
def validate(self):
|
||||
self.validate_evaluator_role()
|
||||
self.validate_time_slots()
|
||||
self.validate_unavailability()
|
||||
|
||||
def validate_evaluator_role(self):
|
||||
roles = frappe.get_roles(self.evaluator)
|
||||
if "Batch Evaluator" not in roles:
|
||||
frappe.get_doc("User", self.evaluator).add_roles("Batch Evaluator")
|
||||
|
||||
def validate_unavailability(self):
|
||||
if (
|
||||
self.unavailable_from
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import frappe
|
||||
|
||||
|
||||
def get_first_course():
|
||||
course = frappe.get_all(
|
||||
"LMS Course",
|
||||
@@ -9,6 +10,7 @@ def get_first_course():
|
||||
)
|
||||
return course[0].name if course else None
|
||||
|
||||
|
||||
def get_first_batch():
|
||||
batch = frappe.get_all(
|
||||
"LMS Batch",
|
||||
@@ -16,4 +18,4 @@ def get_first_batch():
|
||||
order_by="creation",
|
||||
limit=1,
|
||||
)
|
||||
return batch[0].name if batch else None
|
||||
return batch[0].name if batch else None
|
||||
|
||||
Reference in New Issue
Block a user