Merge pull request #1058 from pateljannat/issues-42

fix: batch self enrollment
This commit is contained in:
Jannat Patel
2024-10-11 19:22:50 +05:30
committed by GitHub
6 changed files with 48 additions and 14 deletions

View File

@@ -56,7 +56,6 @@ const props = defineProps({
onMounted(() => {
setTimeout(() => {
audio.value = document.querySelector('audio')
console.log(audio.value)
audio.value.onloadedmetadata = () => {
duration.value = audio.value.duration
}

View File

@@ -75,6 +75,7 @@
variant="solid"
class="w-full mt-2"
v-else-if="batch.data.allow_self_enrollment && batch.data.seats_left"
@click="enrollInBatch()"
>
{{ __('Enroll Now') }}
</Button>
@@ -97,11 +98,13 @@
</template>
<script setup>
import { inject, computed } from 'vue'
import { Badge, Button } from 'frappe-ui'
import { Badge, Button, createResource } from 'frappe-ui'
import { BookOpen, Clock, Globe } from 'lucide-vue-next'
import { formatNumberIntoCurrency, formatTime } from '@/utils'
import { formatNumberIntoCurrency, formatTime, showToast } from '@/utils'
import DateRange from '@/components/Common/DateRange.vue'
import { useRouter } from 'vue-router'
const router = useRouter()
const user = inject('$user')
const props = defineProps({
@@ -111,6 +114,36 @@ const props = defineProps({
},
})
const enroll = createResource({
url: 'lms.lms.utils.enroll_in_batch',
makeParams(values) {
return {
batch: props.batch.data.name,
}
},
})
const enrollInBatch = () => {
enroll.submit(
{},
{
onSuccess(data) {
showToast(
__('Success'),
__('You have been enrolled in this batch'),
'check'
)
router.push({
name: 'Batch',
params: {
batchName: props.batch.data.name,
},
})
},
}
)
}
const seats_left = computed(() => {
if (props.batch.data?.seat_count) {
return props.batch.data?.seat_count - props.batch.data?.students?.length

View File

@@ -85,7 +85,6 @@ const update = () => {
}
watch(props.data, (newData) => {
console.log(newData)
if (newData && !isDirty.value) {
isDirty.value = true
}

View File

@@ -206,7 +206,6 @@ const certificate = createResource({
}
},
onSuccess(data) {
console.log(data)
window.open(
`/api/method/frappe.utils.print_format.download_pdf?doctype=LMS+Certificate&name=${
data.name

View File

@@ -15,20 +15,22 @@
"fieldtype": "Link",
"in_list_view": 1,
"label": "Assessment Type",
"options": "DocType"
"options": "DocType",
"reqd": 1
},
{
"fieldname": "assessment_name",
"fieldtype": "Dynamic Link",
"in_list_view": 1,
"label": "Assessment Name",
"options": "assessment_type"
"options": "assessment_type",
"reqd": 1
}
],
"index_web_pages_for_search": 1,
"istable": 1,
"links": [],
"modified": "2023-05-29 14:56:36.602399",
"modified": "2024-10-11 19:16:01.630524",
"modified_by": "Administrator",
"module": "LMS",
"name": "LMS Assessment",

View File

@@ -1702,21 +1702,23 @@ def enroll_in_course(payment_name, course):
enrollment.save(ignore_permissions=True)
def enroll_in_batch(payment_name, batch):
@frappe.whitelist()
def enroll_in_batch(batch, payment_name=None):
if not frappe.db.exists(
"Batch Student", {"parent": batch, "student": frappe.session.user}
):
student = frappe.new_doc("Batch Student")
current_count = frappe.db.count("Batch Student", {"parent": batch})
payment = frappe.db.get_value(
"LMS Payment", payment_name, ["name", "source"], as_dict=True
)
if payment_name:
payment = frappe.db.get_value(
"LMS Payment", payment_name, ["name", "source"], as_dict=True
)
student.update(
{
"student": frappe.session.user,
"payment": payment.name,
"source": payment.source,
"payment": payment.name if payment_name else None,
"source": payment.source if payment_name else None,
"parent": batch,
"parenttype": "LMS Batch",
"parentfield": "students",