fix: onboarding step improvements

This commit is contained in:
Jannat Patel
2025-03-26 22:13:08 +05:30
parent aa979b96f2
commit a41338c3a2
22 changed files with 358 additions and 108 deletions

View File

@@ -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

View File

@@ -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": []
}
}

View File

@@ -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

View File

@@ -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