Merge pull request #1265 from pateljannat/issues-70

fix: jobs page rendering issue for guest users
This commit is contained in:
Jannat Patel
2025-01-22 12:54:27 +05:30
committed by GitHub
4 changed files with 35 additions and 26 deletions

View File

@@ -1,6 +1,6 @@
<template> <template>
<Tooltip :text="`${props.progress}%`"> <Tooltip :text="`${props.progress}%`">
<div class="w-full bg-gray-200 rounded-full h-1 my-2"> <div class="w-full bg-gray-200 rounded-full h-1">
<div <div
class="bg-gray-900 rounded-full" class="bg-gray-900 rounded-full"
:class="progressBarHeight" :class="progressBarHeight"

View File

@@ -40,13 +40,15 @@
</div> </div>
</div> </div>
<div v-if="quiz.data.duration" class="flex items-center space-x-2 my-4"> <div v-if="quiz.data.duration" class="flex flex-col space-x-1 my-4">
<span class="text-gray-600 text-xs"> {{ __('Time') }}: </span> <div class="mb-2">
<ProgressBar :progress="timerProgress" /> <span class=""> {{ __('Time') }}: </span>
<span class="font-semibold"> <span class="font-semibold">
{{ formatTimer(timer) }} {{ formatTimer(timer) }}
</span> </span>
</div> </div>
<ProgressBar :progress="timerProgress" />
</div>
<div v-if="activeQuestion == 0"> <div v-if="activeQuestion == 0">
<div class="border text-center p-20 rounded-md"> <div class="border text-center p-20 rounded-md">
@@ -590,6 +592,7 @@ const getInstructions = (question) => {
} }
const markLessonProgress = () => { const markLessonProgress = () => {
console.log(router)
if (router.currentRoute.value.name == 'Lesson') { if (router.currentRoute.value.name == 'Lesson') {
call('lms.lms.api.mark_lesson_progress', { call('lms.lms.api.mark_lesson_progress', {
course: router.currentRoute.value.params.courseName, course: router.currentRoute.value.params.courseName,

View File

@@ -81,7 +81,7 @@
</div> </div>
</template> </template>
<script setup> <script setup>
import { Button, Breadcrumbs, createListResource, FormControl } from 'frappe-ui' import { Button, Breadcrumbs, createResource, FormControl } from 'frappe-ui'
import { Plus, Search } from 'lucide-vue-next' import { Plus, Search } from 'lucide-vue-next'
import { inject, computed, ref, onMounted } from 'vue' import { inject, computed, ref, onMounted } from 'vue'
import JobCard from '@/components/JobCard.vue' import JobCard from '@/components/JobCard.vue'
@@ -101,32 +101,26 @@ onMounted(() => {
updateJobs() updateJobs()
}) })
const jobs = createListResource({ const jobs = createResource({
doctype: 'Job Opportunity', url: 'lms.lms.api.get_job_opportunities',
fields: [ cache: ['jobs'],
'name',
'job_title',
'company_name',
'company_logo',
'location',
'type',
'creation',
],
start: 0,
pageLength: 20,
cache: ['jobOpportunities'],
}) })
const updateJobs = () => { const updateJobs = () => {
updateFilters() updateFilters()
jobs.update({ jobs.update({
params: {
filters: filters.value, filters: filters.value,
orFilters: orFilters.value, orFilters: orFilters.value,
},
}) })
jobs.reload() jobs.reload()
} }
const updateFilters = () => { const updateFilters = () => {
filters.value.status = 'Open'
filters.value.disabled = 0
if (jobType.value) { if (jobType.value) {
filters.value.type = jobType.value filters.value.type = jobType.value
} else { } else {

View File

@@ -267,11 +267,23 @@ def get_job_details(job):
@frappe.whitelist(allow_guest=True) @frappe.whitelist(allow_guest=True)
def get_job_opportunities(): def get_job_opportunities(filters=None, orFilters=None):
if not filters:
filters = {}
jobs = frappe.get_all( jobs = frappe.get_all(
"Job Opportunity", "Job Opportunity",
{"status": "Open", "disabled": False}, filters=filters,
["job_title", "location", "type", "company_name", "company_logo", "name", "creation"], or_filters=orFilters,
fields=[
"job_title",
"location",
"type",
"company_name",
"company_logo",
"name",
"creation",
],
order_by="creation desc", order_by="creation desc",
) )
return jobs return jobs