fix: course is no longer mandatory to generate a certificate
This commit is contained in:
@@ -17,12 +17,6 @@
|
||||
>
|
||||
<template #body-content>
|
||||
<div class="space-y-4">
|
||||
<FormControl
|
||||
type="select"
|
||||
v-model="details.course"
|
||||
:label="__('Course')"
|
||||
:options="getCourses()"
|
||||
/>
|
||||
<Link
|
||||
v-model="details.evaluator"
|
||||
:label="__('Evaluator')"
|
||||
@@ -38,6 +32,12 @@
|
||||
v-model="details.expiry_date"
|
||||
:label="__('Expiry Date')"
|
||||
/>
|
||||
<FormControl
|
||||
type="select"
|
||||
v-model="details.course"
|
||||
:label="__('Course')"
|
||||
:options="getCourses()"
|
||||
/>
|
||||
<Link
|
||||
v-model="details.template"
|
||||
:label="__('Template')"
|
||||
@@ -94,7 +94,7 @@ const createCertificate = createResource({
|
||||
template: details.template,
|
||||
published: details.published,
|
||||
course: values.course,
|
||||
batch: values.batch,
|
||||
batch_name: values.batch,
|
||||
member: values.member,
|
||||
evaluator: details.evaluator,
|
||||
},
|
||||
|
||||
@@ -7,14 +7,14 @@
|
||||
<div
|
||||
v-for="certificate in certificates.data"
|
||||
:key="certificate.name"
|
||||
class="bg-white shadow rounded-lg p-3 cursor-pointer"
|
||||
class="flex flex-col bg-white shadow rounded-lg p-3 cursor-pointer hover:bg-gray-50"
|
||||
@click="openCertificate(certificate)"
|
||||
>
|
||||
<div class="font-medium leading-5">
|
||||
{{ certificate.course_title }}
|
||||
<div class="font-medium leading-5 mb-2">
|
||||
{{ certificate.course_title || certificate.batch_title }}
|
||||
</div>
|
||||
<div class="mt-2">
|
||||
<span class="text-xs text-gray-700"> {{ __('issued on') }}: </span>
|
||||
<div class="text-sm text-gray-700 font-medium mt-auto">
|
||||
<span> {{ __('Issued on') }}: </span>
|
||||
{{ dayjs(certificate.issue_date).format('DD MMM YYYY') }}
|
||||
</div>
|
||||
</div>
|
||||
@@ -22,8 +22,8 @@
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import { createResource } from 'frappe-ui'
|
||||
import { inject } from 'vue'
|
||||
import { createListResource } from 'frappe-ui'
|
||||
import { inject, onMounted } from 'vue'
|
||||
|
||||
const dayjs = inject('$dayjs')
|
||||
const props = defineProps({
|
||||
@@ -33,12 +33,19 @@ const props = defineProps({
|
||||
},
|
||||
})
|
||||
|
||||
const certificates = createResource({
|
||||
url: 'lms.lms.api.get_certificates',
|
||||
params: {
|
||||
member: props.profile.data.name,
|
||||
onMounted(() => {
|
||||
if (props.profile.data?.name) {
|
||||
certificates.reload()
|
||||
}
|
||||
})
|
||||
|
||||
const certificates = createListResource({
|
||||
doctype: 'LMS Certificate',
|
||||
filters: {
|
||||
member: props.profile.data?.name,
|
||||
},
|
||||
auto: true,
|
||||
fields: ['name', 'course_title', 'batch_title', 'issue_date'],
|
||||
cache: ['certificates', props.profile.data?.name],
|
||||
})
|
||||
|
||||
const openCertificate = (certificate) => {
|
||||
|
||||
@@ -407,17 +407,6 @@ def get_assigned_badges(member):
|
||||
return assigned_badges
|
||||
|
||||
|
||||
@frappe.whitelist()
|
||||
def get_certificates(member):
|
||||
"""Get certificates for a member."""
|
||||
return frappe.get_all(
|
||||
"LMS Certificate",
|
||||
filters={"member": member},
|
||||
fields=["name", "course", "course_title", "issue_date", "template"],
|
||||
order_by="creation desc",
|
||||
)
|
||||
|
||||
|
||||
@frappe.whitelist()
|
||||
def get_all_users():
|
||||
users = frappe.get_all(
|
||||
|
||||
@@ -1,25 +1,27 @@
|
||||
{
|
||||
"actions": [],
|
||||
"allow_import": 1,
|
||||
"autoname": "hash",
|
||||
"creation": "2021-08-16 15:47:19.494055",
|
||||
"doctype": "DocType",
|
||||
"editable_grid": 1,
|
||||
"engine": "InnoDB",
|
||||
"field_order": [
|
||||
"course",
|
||||
"course_title",
|
||||
"member",
|
||||
"member_name",
|
||||
"column_break_vwbn",
|
||||
"issue_date",
|
||||
"template",
|
||||
"published",
|
||||
"section_break_scyf",
|
||||
"evaluator",
|
||||
"evaluator_name",
|
||||
"column_break_slaw",
|
||||
"column_break_vwbn",
|
||||
"issue_date",
|
||||
"expiry_date",
|
||||
"batch_name"
|
||||
"template",
|
||||
"published",
|
||||
"section_break_unwn",
|
||||
"course",
|
||||
"course_title",
|
||||
"column_break_ywee",
|
||||
"batch_name",
|
||||
"batch_title"
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
@@ -32,7 +34,6 @@
|
||||
{
|
||||
"fieldname": "course",
|
||||
"fieldtype": "Link",
|
||||
"in_list_view": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Course",
|
||||
"options": "LMS Course"
|
||||
@@ -45,7 +46,6 @@
|
||||
{
|
||||
"fieldname": "member",
|
||||
"fieldtype": "Link",
|
||||
"in_list_view": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Member",
|
||||
"options": "User",
|
||||
@@ -55,6 +55,8 @@
|
||||
"fetch_from": "member.full_name",
|
||||
"fieldname": "member_name",
|
||||
"fieldtype": "Data",
|
||||
"in_list_view": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Member Name",
|
||||
"read_only": 1
|
||||
},
|
||||
@@ -89,14 +91,6 @@
|
||||
"fieldname": "column_break_vwbn",
|
||||
"fieldtype": "Column Break"
|
||||
},
|
||||
{
|
||||
"fieldname": "section_break_scyf",
|
||||
"fieldtype": "Section Break"
|
||||
},
|
||||
{
|
||||
"fieldname": "column_break_slaw",
|
||||
"fieldtype": "Column Break"
|
||||
},
|
||||
{
|
||||
"fieldname": "evaluator",
|
||||
"fieldtype": "Link",
|
||||
@@ -107,16 +101,33 @@
|
||||
"fetch_from": "evaluator.full_name",
|
||||
"fieldname": "evaluator_name",
|
||||
"fieldtype": "Data",
|
||||
"in_list_view": 1,
|
||||
"label": "Evaluator Name",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "section_break_unwn",
|
||||
"fieldtype": "Section Break"
|
||||
},
|
||||
{
|
||||
"fieldname": "column_break_ywee",
|
||||
"fieldtype": "Column Break"
|
||||
},
|
||||
{
|
||||
"fetch_from": "batch_name.title",
|
||||
"fieldname": "batch_title",
|
||||
"fieldtype": "Data",
|
||||
"label": "Batch Title",
|
||||
"read_only": 1
|
||||
}
|
||||
],
|
||||
"index_web_pages_for_search": 1,
|
||||
"links": [],
|
||||
"modified": "2025-01-16 11:42:51.449506",
|
||||
"modified": "2025-01-16 12:12:49.998114",
|
||||
"modified_by": "Administrator",
|
||||
"module": "LMS",
|
||||
"name": "LMS Certificate",
|
||||
"naming_rule": "Random",
|
||||
"owner": "Administrator",
|
||||
"permissions": [
|
||||
{
|
||||
|
||||
@@ -1889,7 +1889,6 @@ def get_batches(filters=None, start=0, page_length=20, order_by="start_date"):
|
||||
page_length=page_length,
|
||||
)
|
||||
|
||||
print(batches)
|
||||
batchType = get_batch_type(filters)
|
||||
if batchType == "upcoming":
|
||||
batches_to_remove = list(
|
||||
@@ -1899,7 +1898,6 @@ def get_batches(filters=None, start=0, page_length=20, order_by="start_date"):
|
||||
batches,
|
||||
)
|
||||
)
|
||||
print(batches_to_remove)
|
||||
batches = [batch for batch in batches if batch not in batches_to_remove]
|
||||
elif batchType == "archived":
|
||||
batches_to_remove = list(
|
||||
|
||||
Reference in New Issue
Block a user