feat: completion certificate

This commit is contained in:
Jannat Patel
2024-07-11 18:12:15 +05:30
parent 63d613a88e
commit 6e1d62340f
2 changed files with 31 additions and 3 deletions

View File

@@ -63,6 +63,9 @@
{{ __('Start Learning') }} {{ __('Start Learning') }}
</span> </span>
</Button> </Button>
<Button v-if="canGetCertificate">
{{ __('Get Certificate') }}
</Button>
<router-link <router-link
v-if="user?.data?.is_moderator || is_instructor()" v-if="user?.data?.is_moderator || is_instructor()"
:to="{ :to="{
@@ -174,4 +177,8 @@ const is_instructor = () => {
}) })
return user_is_instructor return user_is_instructor
} }
const canGetCertificate = computed(() => {
console.log(props.course)
})
</script> </script>

View File

@@ -90,6 +90,17 @@
</span> </span>
</Button> </Button>
</router-link> </router-link>
<router-link
v-else
:to="{
name: 'CourseDetail',
params: { courseName: courseName },
}"
>
<Button>
{{ __('Back to Course') }}
</Button>
</router-link>
</div> </div>
</div> </div>
@@ -160,12 +171,12 @@
{{ lesson.data.course_title }} {{ lesson.data.course_title }}
</div> </div>
<div v-if="user && lesson.data.membership" class="text-sm mt-3"> <div v-if="user && lesson.data.membership" class="text-sm mt-3">
{{ Math.ceil(lesson.data.membership.progress) }}% completed {{ Math.ceil(lessonProgress) }}% completed
</div> </div>
<ProgressBar <ProgressBar
v-if="user && lesson.data.membership" v-if="user && lesson.data.membership"
:progress="lesson.data.membership.progress" :progress="lessonProgress"
/> />
</div> </div>
<CourseOutline <CourseOutline
@@ -196,6 +207,7 @@ const route = useRoute()
const allowDiscussions = ref(false) const allowDiscussions = ref(false)
const editor = ref(null) const editor = ref(null)
const instructorEditor = ref(null) const instructorEditor = ref(null)
const lessonProgress = ref(0)
const props = defineProps({ const props = defineProps({
courseName: { courseName: {
@@ -224,6 +236,7 @@ const lesson = createResource({
}, },
auto: true, auto: true,
onSuccess(data) { onSuccess(data) {
lessonProgress.value = data.membership?.progress
markProgress(data) markProgress(data)
if (data.content) editor.value = renderEditor('editor', data.content) if (data.content) editor.value = renderEditor('editor', data.content)
if (data.instructor_content?.blocks?.length) if (data.instructor_content?.blocks?.length)
@@ -257,7 +270,11 @@ const renderEditor = (holder, content) => {
} }
const markProgress = (data) => { const markProgress = (data) => {
if (user.data && !data.progress) progress.submit() if (user.data && !data.progress) {
setTimeout(() => {
progress.submit()
}, 30000)
}
} }
const progress = createResource({ const progress = createResource({
@@ -268,6 +285,10 @@ const progress = createResource({
course: props.courseName, course: props.courseName,
} }
}, },
onSuccess(data) {
console.log(data)
lessonProgress.value = data
},
}) })
const breadcrumbs = computed(() => { const breadcrumbs = computed(() => {