@@ -43,6 +51,13 @@ const props = defineProps({
type: Object,
required: true,
},
+ label: {
+ type: String,
+ required: true,
+ },
+ description: {
+ type: String,
+ },
})
const columns = computed(() => {
diff --git a/lms/lms/api.py b/lms/lms/api.py
index d04ec783..df2272cd 100644
--- a/lms/lms/api.py
+++ b/lms/lms/api.py
@@ -562,3 +562,38 @@ def get_categories(doctype, filters):
categoryOptions.append({"label": category, "value": category})
return categoryOptions
+
+
+@frappe.whitelist()
+def get_members(start=0, search=""):
+ """Get members for the given search term and start index.
+ Args: start (int): Start index for the query.
+ search (str): Search term to filter the results.
+ Returns: List of members.
+ """
+
+ filters = {"enabled": 1, "name": ["not in", ["Administrator", "Guest"]]}
+
+ if search:
+ filters["full_name"] = ["like", f"%{search}%"]
+
+ members = frappe.get_all(
+ "User",
+ filters=filters,
+ fields=["name", "full_name", "user_image", "username"],
+ page_length=20,
+ start=start,
+ )
+
+ for member in members:
+ roles = frappe.get_roles(member.name)
+ if "Moderator" in roles:
+ member.role = "Moderator"
+ elif "Course Creator" in roles:
+ member.role = "Course Creator"
+ elif "Batch Evaluator" in roles:
+ member.role = "Batch Evaluator"
+ elif "LMS Student" in roles:
+ member.role = "LMS Student"
+
+ return members
diff --git a/lms/lms/doctype/invite_request/test_invite_request.py b/lms/lms/doctype/invite_request/test_invite_request.py
index b9cac5d3..0cc82050 100644
--- a/lms/lms/doctype/invite_request/test_invite_request.py
+++ b/lms/lms/doctype/invite_request/test_invite_request.py
@@ -11,74 +11,4 @@ from lms.lms.doctype.invite_request.invite_request import (
class TestInviteRequest(unittest.TestCase):
- @classmethod
- def setUpClass(self):
- create_invite_request("test_invite@example.com")
-
- def test_create_invite_request(self):
- if frappe.db.exists("Invite Request", {"invite_email": "test_invite@example.com"}):
- invite = frappe.db.get_value(
- "Invite Request",
- filters={"invite_email": "test_invite@example.com"},
- fieldname=["invite_email", "status", "signup_email"],
- as_dict=True,
- )
- self.assertEqual(invite.status, "Approved")
- self.assertEqual(invite.signup_email, None)
-
- def test_create_invite_request_update(self):
- if frappe.db.exists("Invite Request", {"invite_email": "test_invite@example.com"}):
-
- data = {
- "signup_email": "test_invite@example.com",
- "username": "test_invite",
- "full_name": "Test Invite",
- "password": "Test@invite",
- "invite_code": frappe.db.get_value(
- "Invite Request", {"invite_email": "test_invite@example.com"}, "name"
- ),
- }
-
- update_invite(data)
- invite = frappe.db.get_value(
- "Invite Request",
- filters={"invite_email": "test_invite@example.com"},
- fieldname=[
- "invite_email",
- "status",
- "signup_email",
- "full_name",
- "username",
- "invite_code",
- "name",
- ],
- as_dict=True,
- )
- self.assertEqual(invite.signup_email, "test_invite@example.com")
- self.assertEqual(invite.full_name, "Test Invite")
- self.assertEqual(invite.username, "test_invite")
- self.assertEqual(invite.invite_code, invite.name)
- self.assertEqual(invite.status, "Registered")
-
- user = frappe.db.get_value(
- "User",
- "test_invite@example.com",
- fieldname=["first_name", "username", "send_welcome_email", "user_type"],
- as_dict=True,
- )
- self.assertTrue(user)
- self.assertEqual(user.first_name, invite.full_name.split(" ")[0])
- self.assertEqual(user.username, invite.username)
- self.assertEqual(user.send_welcome_email, 0)
- self.assertEqual(user.user_type, "Website User")
-
- @classmethod
- def tearDownClass(self):
- if frappe.db.exists("User", "test_invite@example.com"):
- frappe.delete_doc("User", "test_invite@example.com")
-
- invite_request = frappe.db.exists(
- "Invite Request", {"invite_email": "test_invite@example.com"}
- )
- if invite_request:
- frappe.delete_doc("Invite Request", invite_request)
+ pass
diff --git a/lms/overrides/user.py b/lms/overrides/user.py
index b7659493..da1d416b 100644
--- a/lms/overrides/user.py
+++ b/lms/overrides/user.py
@@ -16,6 +16,9 @@ class CustomUser(User):
super().validate()
self.validate_username_duplicates()
+ def after_insert(self):
+ self.add_roles("LMS Student")
+
def validate_username_duplicates(self):
while not self.username or self.username_exists():
self.username = append_number_if_name_exists(