diff --git a/frontend/src/assets/ugent_background.png b/frontend/src/assets/ugent_background.png new file mode 100644 index 00000000..1b133771 Binary files /dev/null and b/frontend/src/assets/ugent_background.png differ diff --git a/frontend/src/components/TitleContainer.vue b/frontend/src/components/TitleContainer.vue new file mode 100644 index 00000000..5798864b --- /dev/null +++ b/frontend/src/components/TitleContainer.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/frontend/src/components/buttons/GroupButtons.vue b/frontend/src/components/buttons/GroupButtons.vue index 2f99d9aa..f40c8cf4 100644 --- a/frontend/src/components/buttons/GroupButtons.vue +++ b/frontend/src/components/buttons/GroupButtons.vue @@ -67,7 +67,7 @@ const { mutateAsync: removeGroup } = useDeleteGroupMutation(); const joinGroupAndRedirect = async () => { await joinGroup({ groupId: group.value.id, projectId: project.value.id }); - router.push(`/groups/${group.value.id}`); + router.push(`/submissions/${group.value.id}`); }; const leaveGroupAndRedirect = async () => { diff --git a/frontend/src/components/groups/GroupCard.vue b/frontend/src/components/groups/GroupCard.vue index 8dccc934..46963879 100644 --- a/frontend/src/components/groups/GroupCard.vue +++ b/frontend/src/components/groups/GroupCard.vue @@ -49,7 +49,7 @@ const amountOfMembers = computed(() => { }); const toGroupPage = async () => { - router.push(`/groups/${group.value.id}`); + router.push(`/submissions/${group.value.id}`); }; diff --git a/frontend/src/components/project/ProjectInfo.vue b/frontend/src/components/project/ProjectInfo.vue index 3cc00f9e..483f6d86 100644 --- a/frontend/src/components/project/ProjectInfo.vue +++ b/frontend/src/components/project/ProjectInfo.vue @@ -58,10 +58,7 @@ const props = defineProps<{ const { project, group, instructors, subject, user } = toRefs(props); const isTeacher = computed( - () => - user.value.is_teacher || - user.value.is_admin || - instructors.value?.some((element) => element.uid == user.value.uid) + () => user.value.is_admin || instructors.value?.some((element) => element.uid == user.value.uid) ); const renderQuillContent = (content: string) => { diff --git a/frontend/src/components/project/ProjectMiniCard.vue b/frontend/src/components/project/ProjectMiniCard.vue index dd90fc78..8468af39 100644 --- a/frontend/src/components/project/ProjectMiniCard.vue +++ b/frontend/src/components/project/ProjectMiniCard.vue @@ -1,24 +1,19 @@ @@ -26,6 +21,7 @@ import { useSubjectQuery } from "@/queries/Subject"; import { computed, toRefs } from "vue"; import type Project from "@/models/Project"; +import router from "@/router"; const props = defineProps<{ project: Project; @@ -36,6 +32,10 @@ const { project } = toRefs(props); const { data: subject, isLoading: isSubjectLoading } = useSubjectQuery( computed(() => project.value.subject_id) ); + +const toProject = async () => { + await router.push({ name: "project", params: { projectId: project.value.id } }); +}; diff --git a/frontend/src/components/subject/createSubjectView/header/CreateSubjectHeaderCard.vue b/frontend/src/components/subject/createSubjectView/header/CreateSubjectHeaderCard.vue index 0e7a2676..d522a9ad 100644 --- a/frontend/src/components/subject/createSubjectView/header/CreateSubjectHeaderCard.vue +++ b/frontend/src/components/subject/createSubjectView/header/CreateSubjectHeaderCard.vue @@ -3,7 +3,6 @@ {{ $t("create_subject.new_subject") }} - @@ -119,7 +118,7 @@ watch(subjectMail, (newValue) => { diff --git a/frontend/src/components/subject/subjectsview/header/SubjectsHeaderCard.vue b/frontend/src/components/subject/subjectsview/header/SubjectsHeaderCard.vue index bf05ca66..20d70cfc 100644 --- a/frontend/src/components/subject/subjectsview/header/SubjectsHeaderCard.vue +++ b/frontend/src/components/subject/subjectsview/header/SubjectsHeaderCard.vue @@ -1,41 +1,38 @@ @@ -49,6 +46,7 @@ const props = defineProps<{ subjects: SubjectDetails[]; }>(); const { academicYears, subjects } = toRefs(props); + const activeAcademicYear = ref(useAcademicYear()); const showInstructorSubjects = ref(true); const showStudentSubjects = ref(true); @@ -90,24 +88,38 @@ watch(activeSubjectFilter, (newVal: SubjectFilter | undefined) => { diff --git a/frontend/src/components/subject/subjectsview/header/SubjectsHeaderContainer.vue b/frontend/src/components/subject/subjectsview/header/SubjectsHeaderContainer.vue index 14fe97fb..8c6c6df7 100644 --- a/frontend/src/components/subject/subjectsview/header/SubjectsHeaderContainer.vue +++ b/frontend/src/components/subject/subjectsview/header/SubjectsHeaderContainer.vue @@ -1,24 +1,14 @@ - - diff --git a/frontend/src/components/subject/subjectview/body/SubjectBody.vue b/frontend/src/components/subject/subjectview/body/SubjectBody.vue deleted file mode 100644 index bc04c9c6..00000000 --- a/frontend/src/components/subject/subjectview/body/SubjectBody.vue +++ /dev/null @@ -1,61 +0,0 @@ - - - - - diff --git a/frontend/src/components/subject/subjectview/body/projects/SubjectProjectPage.vue b/frontend/src/components/subject/subjectview/body/projects/SubjectProjectPage.vue index a039d150..1644fe41 100644 --- a/frontend/src/components/subject/subjectview/body/projects/SubjectProjectPage.vue +++ b/frontend/src/components/subject/subjectview/body/projects/SubjectProjectPage.vue @@ -17,13 +17,17 @@ - mdi-alarm {{ $d(project.deadline, "long") }} - +

+ {{ $t("project.group", { number: group?.num }) }} +

+

+ {{ $t("project.no_group") }} +

{{ $t("subject.project.assignment") }}

- - {{ $t("subject.project.group") }} - - - - {{ $t("subject.project.submissions") }} - diff --git a/frontend/src/components/subject/subjectview/body/projects/SubjectProjectsPage.vue b/frontend/src/components/subject/subjectview/body/projects/SubjectProjectsPage.vue index b84a79ec..b0717710 100644 --- a/frontend/src/components/subject/subjectview/body/projects/SubjectProjectsPage.vue +++ b/frontend/src/components/subject/subjectview/body/projects/SubjectProjectsPage.vue @@ -20,7 +20,6 @@ :project="project" > -

{{ $t("subject.projectsPage.no_projects") }}

@@ -78,7 +77,8 @@ const updateFilterOption = (option: FilterOptions) => { justify-content: center; align-items: center; height: 400px; /* Adjust height as needed */ - border: 1px solid #ccc; + border-radius: 3px; + background-color: rgb(var(--v-theme-background)); } .placeholder p { diff --git a/frontend/src/components/subject/subjectview/body/projects/list/SubjectProjectsList.vue b/frontend/src/components/subject/subjectview/body/projects/list/SubjectProjectsList.vue index ffc25f33..6ef81755 100644 --- a/frontend/src/components/subject/subjectview/body/projects/list/SubjectProjectsList.vue +++ b/frontend/src/components/subject/subjectview/body/projects/list/SubjectProjectsList.vue @@ -9,7 +9,7 @@ v-for="(filter, index) in filterOptions" :key="index" :value="FilterOptions[filter]" - color="primary" + color="text" variant="tonal" > {{ $t(`subject.projectsPage.${filter.toLowerCase()}`) }} @@ -73,7 +73,7 @@ watch(activeButton, (newVal: string) => { diff --git a/frontend/src/components/subject/subjectview/header/SubjectHeaderContainer.vue b/frontend/src/components/subject/subjectview/header/SubjectHeaderContainer.vue index c3019e11..bb1e50ce 100644 --- a/frontend/src/components/subject/subjectview/header/SubjectHeaderContainer.vue +++ b/frontend/src/components/subject/subjectview/header/SubjectHeaderContainer.vue @@ -1,24 +1,17 @@ diff --git a/frontend/src/views/CreateProjectView.vue b/frontend/src/views/CreateProjectView.vue index 52bf5817..211f8b3c 100644 --- a/frontend/src/views/CreateProjectView.vue +++ b/frontend/src/views/CreateProjectView.vue @@ -8,18 +8,14 @@ {{ $t("project.not_found") }}
- + - - - - + + @@ -45,21 +52,7 @@ @update:capacity="handleCapacityChange" @update:selected-option="handleOptionChange" required - /> - - - - - - @@ -112,11 +105,7 @@ /> - - - {{ $t("submit.submit_button") }} - - + {{ $t("submit.submit_button") }} {{ errorMessage }} @@ -475,4 +464,13 @@ function divideStudentsIntoGroups(students: User[], capacity: number) { .alert-bottom-margin { margin-bottom: 15px; } + +.createproject { + border-radius: 3px; + margin-top: 25px; +} + +.radiolist { + padding: 5px; +} diff --git a/frontend/src/views/GroupView.vue b/frontend/src/views/GroupView.vue index f82abb6c..961b68e5 100644 --- a/frontend/src/views/GroupView.vue +++ b/frontend/src/views/GroupView.vue @@ -111,7 +111,10 @@ const isTeacher = computed(() => { if (!user.value || !instructors.value) { return false; } - return instructors.value.some((instructor) => instructor.uid === user.value.uid); + return ( + user.value.is_admin || + instructors.value.some((instructor) => instructor.uid === user.value.uid) + ); }); const amountOfMembers = computed(() => { diff --git a/frontend/src/views/GroupsView.vue b/frontend/src/views/GroupsView.vue index eca52fcf..140c0061 100644 --- a/frontend/src/views/GroupsView.vue +++ b/frontend/src/views/GroupsView.vue @@ -2,35 +2,44 @@

{{ $t("default.loading.loading_page") }}

{{ $t("group.error") }}

-
-

{{ "Project: " + project!.name }}

- - -
- - {{ $t("group.groups") }} - {{ $t("group.members") }} - {{ $t("group.actions") }} - - + +

{{ "Project: " + project!.name }}

+ + +
+ + {{ $t("group.groups") }} + {{ $t("group.members") }} + {{ $t("group.actions") }} + + +
+
+ + {{ $t("group.not_found2") }} + +
+ {{ + $t("group.create_group") + }} +
+ + -
-
- - {{ $t("group.not_found2") }} - -
- {{ - $t("group.create_group") - }} -
+ +
@@ -43,6 +52,7 @@ import { useCurrentUserQuery } from "@/queries/User"; import { type GroupForm } from "@/models/Group"; import { useSubjectInstructorsQuery, useSubjectStudentsQuery } from "@/queries/Subject"; import StudentsDialog from "@/components/groups/StudentsDialog.vue"; +import BackButton from "@/components/buttons/BackButton.vue"; const props = defineProps<{ projectId: number; @@ -99,7 +109,6 @@ const isTeacher = computed(() => { return false; } return ( - user.value.is_teacher || user.value.is_admin || instructors.value.some((instructor) => instructor.uid === user.value.uid) ); @@ -124,6 +133,7 @@ async function createGroup() { diff --git a/frontend/src/views/HomeScreenView.vue b/frontend/src/views/HomeScreenView.vue index de629bd6..8bd6cb57 100644 --- a/frontend/src/views/HomeScreenView.vue +++ b/frontend/src/views/HomeScreenView.vue @@ -1,9 +1,10 @@