From 7212ddd5c5d37428b86ebaad34da2aec2b25b02d Mon Sep 17 00:00:00 2001 From: Jannat Patel Date: Wed, 5 Nov 2025 12:34:40 +0530 Subject: [PATCH] fix: evaluators and modetators can now see schedule of other evaluators --- frontend/src/pages/Profile.vue | 19 +++++++++++---- .../src/pages/ProfileEvaluationSchedule.vue | 2 +- frontend/src/pages/ProfileEvaluator.vue | 23 ++++++++++++++++--- 3 files changed, 35 insertions(+), 9 deletions(-) diff --git a/frontend/src/pages/Profile.vue b/frontend/src/pages/Profile.vue index 2b2faf19..fb602073 100644 --- a/frontend/src/pages/Profile.vue +++ b/frontend/src/pages/Profile.vue @@ -194,17 +194,26 @@ const isSessionUser = () => { return $user.data?.email === profile.data?.email } +const hasHigherAccess = () => { + return $user.data?.is_evaluator || $user.data?.is_moderator +} + +const isEvaluatorOrModerator = () => { + return ( + profile.data?.roles.filter( + (row) => row.role === 'Moderator' || row.role === 'Evaluator' + ).length > 0 + ) +} + const getTabButtons = () => { let buttons = [{ label: 'About' }, { label: 'Certificates' }] if ($user.data?.is_moderator) buttons.push({ label: 'Roles' }) - if ( - isSessionUser() && - ($user.data?.is_evaluator || $user.data?.is_moderator) - ) { + + if (hasHigherAccess() && isEvaluatorOrModerator()) { buttons.push({ label: 'Slots' }) buttons.push({ label: 'Schedule' }) } - return buttons } diff --git a/frontend/src/pages/ProfileEvaluationSchedule.vue b/frontend/src/pages/ProfileEvaluationSchedule.vue index 02847f49..9e12f7ab 100644 --- a/frontend/src/pages/ProfileEvaluationSchedule.vue +++ b/frontend/src/pages/ProfileEvaluationSchedule.vue @@ -57,7 +57,7 @@ const props = defineProps({ const evaluations = createListResource({ doctype: 'LMS Certificate Request', filters: { - evaluator: user.data?.name, + evaluator: props.profile.data?.name, status: ['!=', 'Cancelled'], }, fields: [ diff --git a/frontend/src/pages/ProfileEvaluator.vue b/frontend/src/pages/ProfileEvaluator.vue index a9637993..1b8d8d5d 100644 --- a/frontend/src/pages/ProfileEvaluator.vue +++ b/frontend/src/pages/ProfileEvaluator.vue @@ -43,18 +43,22 @@ :options="days" v-model="slot.day" @focusout.stop="update(slot.name, 'day', slot.day)" + :disabled="!isSessionUser()" />