@@ -18,6 +18,7 @@
|
|||||||
row-key="batch_course"
|
row-key="batch_course"
|
||||||
:options="{
|
:options="{
|
||||||
showTooltip: false,
|
showTooltip: false,
|
||||||
|
selectable: user.data?.is_student ? false : true,
|
||||||
getRowRoute: (row) => ({
|
getRowRoute: (row) => ({
|
||||||
name: 'CourseDetail',
|
name: 'CourseDetail',
|
||||||
params: { courseName: row.name },
|
params: { courseName: row.name },
|
||||||
|
|||||||
@@ -67,7 +67,7 @@
|
|||||||
<ListRow
|
<ListRow
|
||||||
:row="row"
|
:row="row"
|
||||||
v-for="row in feedbackList.data"
|
v-for="row in feedbackList.data"
|
||||||
class="group cursor-pointer"
|
class="group cursor-pointer feedback-list"
|
||||||
>
|
>
|
||||||
<template #default="{ column, item }">
|
<template #default="{ column, item }">
|
||||||
<ListRowItem
|
<ListRowItem
|
||||||
@@ -237,3 +237,9 @@ const feedbackColumns = computed(() => {
|
|||||||
]
|
]
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
<style>
|
||||||
|
.feedback-list > button > div {
|
||||||
|
align-items: start;
|
||||||
|
padding: 0.25rem 0;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|||||||
@@ -78,7 +78,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Heatmap -->
|
<!-- Heatmap -->
|
||||||
<StudentHeatmap :member="student.email" :base_days="120" />
|
<StudentHeatmap :member="student.email" :days="120" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</Dialog>
|
</Dialog>
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ const props = defineProps({
|
|||||||
member: {
|
member: {
|
||||||
type: String,
|
type: String,
|
||||||
},
|
},
|
||||||
base_days: {
|
days: {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: 200,
|
default: 200,
|
||||||
},
|
},
|
||||||
@@ -42,7 +42,7 @@ const heatmap = createResource({
|
|||||||
makeParams(values) {
|
makeParams(values) {
|
||||||
return {
|
return {
|
||||||
member: values.member,
|
member: values.member,
|
||||||
base_days: props.base_days,
|
base_days: props.days,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
auto: false,
|
auto: false,
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
<div v-if="batch.data" class="grid grid-cols-[75%,25%] h-screen">
|
<div v-if="batch.data" class="grid grid-cols-[75%,25%]">
|
||||||
<div class="border-r">
|
<div class="border-r">
|
||||||
<Tabs
|
<Tabs
|
||||||
v-model="tabIndex"
|
v-model="tabIndex"
|
||||||
|
|||||||
@@ -111,7 +111,7 @@
|
|||||||
"link_fieldname": "chapter"
|
"link_fieldname": "chapter"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"modified": "2024-11-15 12:03:31.370943",
|
"modified": "2025-02-03 15:23:17.125617",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "LMS",
|
"module": "LMS",
|
||||||
"name": "Course Chapter",
|
"name": "Course Chapter",
|
||||||
@@ -139,6 +139,18 @@
|
|||||||
"role": "LMS Student",
|
"role": "LMS Student",
|
||||||
"select": 1,
|
"select": 1,
|
||||||
"share": 1
|
"share": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"create": 1,
|
||||||
|
"delete": 1,
|
||||||
|
"email": 1,
|
||||||
|
"export": 1,
|
||||||
|
"print": 1,
|
||||||
|
"read": 1,
|
||||||
|
"report": 1,
|
||||||
|
"role": "Course Creator",
|
||||||
|
"share": 1,
|
||||||
|
"write": 1
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"search_fields": "title",
|
"search_fields": "title",
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
<div>
|
||||||
|
<p>Hi {{ doc.member_name }},</p>
|
||||||
|
<p>We noticed that you started enrolling in the {{ doc.payment_for_document_type.split(" ")[-1] }} {{ frappe.db.get_value(doc.payment_for_document_type, doc.payment_for_document, "title") }} but didn’t complete your payment.</p>
|
||||||
|
<p>We have a limited number of seats, and they won't be available for long!</p>
|
||||||
|
<p>Don’t miss this opportunity to enhance your skills. Click below to complete your enrollment:</p>
|
||||||
|
<p>
|
||||||
|
<a href="/lms/billing/{{ doc.payment_for_document_type.split(' ')[-1].lower() }}/{{ doc.payment_for_document }}">👉 Complete Your Enrollment</a>
|
||||||
|
</p>
|
||||||
|
<p>If you have any questions or need assistance, feel free to reach out to our support team.</p>
|
||||||
|
<p>Looking forward to seeing you enrolled!</p>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
"attach_print": 0,
|
||||||
|
"channel": "Email",
|
||||||
|
"condition": "doc.payment_received == 0",
|
||||||
|
"creation": "2025-02-03 15:52:32.508093",
|
||||||
|
"date_changed": "creation",
|
||||||
|
"days_in_advance": 1,
|
||||||
|
"docstatus": 0,
|
||||||
|
"doctype": "Notification",
|
||||||
|
"document_type": "LMS Payment",
|
||||||
|
"enabled": 1,
|
||||||
|
"event": "Days After",
|
||||||
|
"idx": 0,
|
||||||
|
"is_standard": 1,
|
||||||
|
"message": "<div>\n <p>Hi {{ doc.member_name }},</p>\n <p>We noticed that you started enrolling in the {{ doc.payment_for_document_type.split(\" \")[-1] }} {{ frappe.db.get_value(doc.payment_for_document_type, doc.payment_for_document, \"title\") }} but didn\u2019t complete your payment.</p>\n <p>We have a limited number of seats, and they won't be available for long!</p>\n <p>Don\u2019t miss this opportunity to enhance your skills. Click below to complete your enrollment:</p>\n <p>\n <a href=\"/lms/billing/{{ doc.payment_for_document_type.split(' ')[-1].lower() }}/{{ doc.payment_for_document }}\">\ud83d\udc49 Complete Your Enrollment</a>\n </p>\n <p>If you have any questions or need assistance, feel free to reach out to our support team.</p>\n <p>Looking forward to seeing you enrolled!</p>\n</div>",
|
||||||
|
"message_type": "HTML",
|
||||||
|
"minutes_offset": 0,
|
||||||
|
"modified": "2025-02-03 16:14:24.568958",
|
||||||
|
"modified_by": "sayali@frappe.io",
|
||||||
|
"module": "LMS",
|
||||||
|
"name": "Payment Completion Reminder",
|
||||||
|
"owner": "sayali@frappe.io",
|
||||||
|
"recipients": [
|
||||||
|
{
|
||||||
|
"receiver_by_document_field": "member"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cc": "",
|
||||||
|
"receiver_by_role": "Moderator"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"send_system_notification": 0,
|
||||||
|
"send_to_all_assignees": 0,
|
||||||
|
"subject": " Complete Your Enrollment - Don't miss out!"
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
<p>Add your message here</p>
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
import frappe
|
||||||
|
|
||||||
|
|
||||||
|
def get_context(context):
|
||||||
|
# do your magic here
|
||||||
|
pass
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
Hi {{ doc.member_name }},
|
||||||
|
|
||||||
|
We noticed that you started enrolling in the {{ doc.payment_for_document_type.split(" ")[-1] }} {{ frappe.db.get_value(doc.payment_for_document_type, doc.payment_for_document, "title") }} but didn’t complete your payment. We have limited number of seats and they won't be empty for long.
|
||||||
|
|
||||||
|
Don’t miss this opportunity to enhance your skills. Click below to complete your enrollment now:
|
||||||
|
|
||||||
|
[👉 Complete Your Enrollment](/lms/billing/{{ doc.payment_for_document_type.split(" ")[-1].lower()/doc.payment_for_document }})
|
||||||
|
|
||||||
|
If you have any questions or need assistance, feel free to reach out to our support team.
|
||||||
|
|
||||||
|
Looking forward to seeing you enrolled!
|
||||||
Reference in New Issue
Block a user