From 79d5da75b3a0b5ee3821fc49abf386562b784105 Mon Sep 17 00:00:00 2001
From: Raizaaa <89463672+raizasafeel@users.noreply.github.com>
Date: Wed, 22 Apr 2026 21:09:21 +0530
Subject: [PATCH] fix: show job count on jobs listing for guest users
---
frontend/src/pages/Jobs.vue | 22 +++++++---------------
lms/lms/api.py | 7 ++++++-
2 files changed, 13 insertions(+), 16 deletions(-)
diff --git a/frontend/src/pages/Jobs.vue b/frontend/src/pages/Jobs.vue
index 97565e15..ba23e193 100644
--- a/frontend/src/pages/Jobs.vue
+++ b/frontend/src/pages/Jobs.vue
@@ -32,7 +32,7 @@
>
- {{ __('{0} {1} Jobs').format(jobCount.data, activeTab) }}
+ {{ __('{0} {1} Jobs').format(totalJobs, activeTab) }}
{{ jobs.data?.length }} {{ __('of') }}
- {{ jobCount.data }}
+ {{ totalJobs }}
@@ -160,6 +160,7 @@ const orFilters = ref({})
const closedJobs = ref(0)
const activeTab = ref('Open')
const readOnlyMode = window.read_only_mode
+const totalJobs = ref(0)
onMounted(() => {
getClosedJobCount()
@@ -190,14 +191,6 @@ const getClosedJobCount = () => {
})
}
-const jobCount = createResource({
- url: 'frappe.client.get_count',
- params: {
- doctype: 'Job Opportunity',
- filters: filters.value,
- },
-})
-
const setFiltersFromURL = () => {
let queries = new URLSearchParams(location.search)
if (queries.has('type')) {
@@ -214,6 +207,10 @@ const jobs = createListResource({
start: 0,
cache: ['jobs'],
pageLength: 40,
+ transform(data) {
+ totalJobs.value = data.total
+ return data.jobs
+ },
})
const updateJobs = () => {
@@ -223,11 +220,6 @@ const updateJobs = () => {
orFilters: orFilters.value,
})
jobs.reload()
- jobCount.update({
- filters: filters.value,
- orFilters: orFilters.value,
- })
- jobCount.reload()
}
const updateFilters = () => {
diff --git a/lms/lms/api.py b/lms/lms/api.py
index c91ff9ad..8582813d 100644
--- a/lms/lms/api.py
+++ b/lms/lms/api.py
@@ -238,6 +238,8 @@ def get_job_opportunities(
if not filters:
filters = {}
+ total_jobs = frappe.db.count("Job Opportunity", filters, or_filters)
+
jobs = frappe.get_all(
"Job Opportunity",
filters=filters,
@@ -262,7 +264,10 @@ def get_job_opportunities(
for job in jobs:
job.description = frappe.utils.strip_html_tags(job.description)
job.applicants = frappe.db.count("LMS Job Application", {"job": job.name})
- return jobs
+ return {
+ "jobs": jobs,
+ "total": total_jobs,
+ }
@frappe.whitelist(allow_guest=True)