diff --git a/src/components/Course/components/Navigation/index.svelte b/src/components/Course/components/Navigation/index.svelte
index 69ef3262..2fced1bb 100644
--- a/src/components/Course/components/Navigation/index.svelte
+++ b/src/components/Course/components/Navigation/index.svelte
@@ -28,8 +28,8 @@
// export let lessonId;
export let path;
+ export let isStudent = null;
let show = null;
- let isStudent = null;
const { page } = stores();
@@ -105,13 +105,7 @@
label: 'Submissions',
to: getNavItemRoute($course.id, 'submissions'),
hideSortIcon: true,
- show(groupMembers = [], profileId) {
- const user = groupMembers.find(
- (member) => member.profile_id === profileId
- );
-
- isStudent = user ? user.role_id === 3 : true;
-
+ show() {
return !isStudent;
},
},
@@ -157,7 +151,7 @@
{#each navItems as navItem}
- {#if !navItem.show || (typeof navItem.show === 'function' && navItem.show($group.people, $profile.id))}
+ {#if !navItem.show || (typeof navItem.show === 'function' && navItem.show())}
- import { onMount, afterUpdate } from 'svelte';
-
import Navigation from '../Course/components/Navigation/index.svelte';
// import { lessons, lesson } from '../Course/components/Lesson/store/lessons';
// import { questionnaire } from '../Course/components/Lesson/Exercise/store/exercise';
// import { questionnaireMetaData } from '../Course/components/Lesson/store/answers';
- import { course } from '../Course/store';
+ import { course, group } from '../Course/store';
import Confetti from '../Confetti/index.svelte';
import { isMobile } from '../../utils/store/useMobile';
+ import { profile } from '../../utils/store/user';
export let path = '';
export let isExercisePage = false;
+ export let isStudent = false;
- function setStoreWithData() {
- // lessons.set(courseData.lessons);
- // if (courseData.lesson) {
- // lesson.set(courseData.lesson);
- // }
- // if (courseData.exercise && courseData.exercise.data) {
- // questionnaire.set(courseData.exercise.data);
- // questionnaireMetaData.set(courseData.exercise.answers);
- // }
+ $: {
+ const user = $group.people.find(
+ (person) => person.profile_id === $profile.id
+ );
+
+ if (user) {
+ isStudent = user.role_id === 3;
+ }
}
-
- onMount(setStoreWithData);
-
- afterUpdate(setStoreWithData);
@@ -33,7 +28,7 @@
-
+
{#if isExercisePage}
diff --git a/src/routes/courses/[id]/attendance.svelte b/src/routes/courses/[id]/attendance.svelte
index 2e936d87..e1943e08 100644
--- a/src/routes/courses/[id]/attendance.svelte
+++ b/src/routes/courses/[id]/attendance.svelte
@@ -18,13 +18,13 @@
} from '../../../components/Course/store';
import { getLectureNo } from '../../../components/Course/function';
import { fetchCourse } from '../../../utils/services/courses';
- import { profile } from '../../../utils/store/user';
import { lessons } from '../../../components/Course/components/Lesson/store/lessons';
import { ROLE } from '../../../utils/constants/roles';
import { takeAttendance } from '../../../utils/services/attendance';
import { snackbarStore } from '../../../components/Snackbar/store';
import { SNACKBAR_SEVERITY } from '../../../components/Snackbar/constants';
import { attendance } from '../../../utils/store/attendance';
+ import { profile } from '../../../utils/store/user';
export let courseId;
@@ -68,22 +68,16 @@
setAttendance(data);
});
- $: students = $group.people.filter(
- (person) => !!person.profile && person.role_id === ROLE.STUDENT
- );
-
- $: {
- const user = $group.people.find(
- (person) => person.profile_id === $profile.id
- );
-
- if (user) {
- isStudent = user.role_id === 3;
- }
- }
+ $: students = isStudent
+ ? $group.people.filter(
+ (person) => !!person.profile && person.profile.id === $profile.id
+ )
+ : $group.people.filter(
+ (person) => !!person.profile && person.role_id === ROLE.STUDENT
+ );
-
+
diff --git a/src/routes/courses/[id]/lessons/index.svelte b/src/routes/courses/[id]/lessons/index.svelte
index 77a3b9bc..b9d29bbf 100644
--- a/src/routes/courses/[id]/lessons/index.svelte
+++ b/src/routes/courses/[id]/lessons/index.svelte
@@ -121,7 +121,7 @@
}
-
+
diff --git a/src/routes/courses/[id]/marks.svelte b/src/routes/courses/[id]/marks.svelte
index c835e2c6..c8779bbd 100644
--- a/src/routes/courses/[id]/marks.svelte
+++ b/src/routes/courses/[id]/marks.svelte
@@ -21,6 +21,7 @@
import { fetchCourse, fetchExercises } from '../../../utils/services/courses';
import { getLectureNo } from '../../../components/Course/function';
import { fetchMarks } from '../../../utils/services/marks';
+ import { profile } from '../../../utils/store/user';
export let courseId;
@@ -29,6 +30,7 @@
let borderleftGrey =
'border-r-0 border-t-0 border-b-0 border-l border-gray-300';
let students = [];
+ let isStudent = false;
let lessonMapping = {}; // { lessonId: { exerciseId: exerciseTitle, ... }, ... }
let studentMarksByExerciseId = {}; // { groupMemberId: { exerciseId: `total_gotten/points`, ... }, ... }
@@ -85,13 +87,17 @@
});
$: {
- students = $group.people.filter(
- (person) => !!person.profile && person.role_id === ROLE.STUDENT
- );
+ students = isStudent
+ ? $group.people.filter(
+ (person) => !!person.profile && person.profile.id === $profile.id
+ )
+ : $group.people.filter(
+ (person) => !!person.profile && person.role_id === ROLE.STUDENT
+ );
}
-
+
diff --git a/src/routes/courses/[id]/people.svelte b/src/routes/courses/[id]/people.svelte
index 6b1bb28d..729f094d 100644
--- a/src/routes/courses/[id]/people.svelte
+++ b/src/routes/courses/[id]/people.svelte
@@ -93,15 +93,6 @@
});
$: sortAndFilterPeople($group.people, filterBy);
- $: {
- const user: Person = $group.people.find(
- (person: { profile_id: number }) => person.profile_id === $profile.id
- )!;
-
- if (user) {
- isStudent = user.role_id === 3;
- }
- }
@@ -110,7 +101,7 @@
{deletePerson}
/>
-
+