Merge pull request #921 from pateljannat/course-cache-issue
fix: course cache issue
This commit is contained in:
@@ -39,7 +39,7 @@
|
||||
<Tabs
|
||||
v-model="tabIndex"
|
||||
tablistClass="overflow-x-visible flex-wrap !gap-3 md:flex-nowrap"
|
||||
:tabs="tabs"
|
||||
:tabs="makeTabs"
|
||||
>
|
||||
<template #tab="{ tab, selected }">
|
||||
<div>
|
||||
@@ -124,61 +124,53 @@ const user = inject('$user')
|
||||
const searchQuery = ref('')
|
||||
|
||||
const courses = createResource({
|
||||
debounce: 300,
|
||||
makeParams(values) {
|
||||
return {
|
||||
search_query: searchQuery.value,
|
||||
}
|
||||
},
|
||||
url: 'lms.lms.utils.get_courses',
|
||||
cache: ['courses', user.data?.email],
|
||||
auto: true,
|
||||
})
|
||||
|
||||
const tabIndex = ref(0)
|
||||
const tabs = [
|
||||
{
|
||||
label: 'Live',
|
||||
courses: computed(() => courses.data?.live || []),
|
||||
count: computed(() => courses.data?.live?.length),
|
||||
},
|
||||
{
|
||||
label: 'New',
|
||||
courses: computed(() => courses.data?.new),
|
||||
count: computed(() => courses.data?.new?.length),
|
||||
},
|
||||
{
|
||||
label: 'Upcoming',
|
||||
courses: computed(() => courses.data?.upcoming),
|
||||
count: computed(() => courses.data?.upcoming?.length),
|
||||
},
|
||||
]
|
||||
let tabs
|
||||
|
||||
if (user.data) {
|
||||
const makeTabs = computed(() => {
|
||||
tabs = []
|
||||
addToTabs('Live', getCourses('live'))
|
||||
addToTabs('New', getCourses('new'))
|
||||
addToTabs('Upcoming', getCourses('upcoming'))
|
||||
|
||||
if (user.data) {
|
||||
addToTabs('Enrolled', getCourses('enrolled'))
|
||||
|
||||
if (
|
||||
user.data.is_moderator ||
|
||||
user.data.is_instructor ||
|
||||
courses.data?.created?.length
|
||||
) {
|
||||
addToTabs('Created', getCourses('created'))
|
||||
}
|
||||
|
||||
if (user.data.is_moderator) {
|
||||
addToTabs('Under Review', getCourses('under_review'))
|
||||
}
|
||||
}
|
||||
return tabs
|
||||
})
|
||||
|
||||
const addToTabs = (label, courses) => {
|
||||
tabs.push({
|
||||
label: 'Enrolled',
|
||||
courses: computed(() => courses.data?.enrolled),
|
||||
count: computed(() => courses.data?.enrolled?.length),
|
||||
label,
|
||||
courses: computed(() => courses),
|
||||
count: computed(() => courses.length),
|
||||
})
|
||||
}
|
||||
|
||||
if (
|
||||
user.data.is_moderator ||
|
||||
user.data.is_instructor ||
|
||||
courses.data?.created?.length
|
||||
) {
|
||||
tabs.push({
|
||||
label: 'Created',
|
||||
courses: computed(() => courses.data?.created),
|
||||
count: computed(() => courses.data?.created?.length),
|
||||
})
|
||||
}
|
||||
|
||||
if (user.data.is_moderator) {
|
||||
tabs.push({
|
||||
label: 'Under Review',
|
||||
courses: computed(() => courses.data?.under_review),
|
||||
count: computed(() => courses.data?.under_review?.length),
|
||||
})
|
||||
const getCourses = (type) => {
|
||||
if (searchQuery.value) {
|
||||
return courses.data[type].filter((course) =>
|
||||
course.title.toLowerCase().includes(searchQuery.value.toLowerCase())
|
||||
)
|
||||
}
|
||||
return courses.data[type]
|
||||
}
|
||||
|
||||
const pageMeta = computed(() => {
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
{{ __('No introduction') }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-7 mb-10" v-if="badges.data">
|
||||
<div class="mt-7 mb-10" v-if="badges.data?.length">
|
||||
<h2 class="mb-3 text-lg font-semibold text-gray-900">
|
||||
{{ __('Achievements') }}
|
||||
</h2>
|
||||
|
||||
@@ -1251,12 +1251,10 @@ def change_currency(amount, currency, country=None):
|
||||
|
||||
|
||||
@frappe.whitelist(allow_guest=True)
|
||||
def get_courses(search_query=""):
|
||||
def get_courses():
|
||||
"""Returns the list of courses."""
|
||||
courses = []
|
||||
course_list = frappe.get_all(
|
||||
"LMS Course", {"title": ["like", f"%{search_query}%"]}, pluck="name"
|
||||
)
|
||||
course_list = frappe.get_all("LMS Course", pluck="name")
|
||||
for course in course_list:
|
||||
courses.append(get_course_details(course))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user