diff --git a/frontend/src/views/assignments/TeacherAssignment.vue b/frontend/src/views/assignments/TeacherAssignment.vue
index e626a8be..caec311c 100644
--- a/frontend/src/views/assignments/TeacherAssignment.vue
+++ b/frontend/src/views/assignments/TeacherAssignment.vue
@@ -8,6 +8,8 @@
import type { Language } from "@/data-objects/language.ts";
import type { AssignmentResponse } from "@/controllers/assignments.ts";
import type { GroupDTO } from "@dwengo-1/common/interfaces/group";
+import type { AssignmentDTO } from "@dwengo-1/common/interfaces/assignment";
+import type { StudentDTO } from "@dwengo-1/common/interfaces/student";
const props = defineProps<{
classId: string;
@@ -24,7 +26,7 @@
const groups = ref();
const learningPath = ref();
- const assignmentQueryResult = useAssignmentQuery(() => props.classId, props.assignmentId);
+ const assignmentQueryResult = useAssignmentQuery(props.classId, props.assignmentId);
learningPath.value = assignmentQueryResult.data.value?.assignment?.learningPath;
// Get learning path object
const lpQueryResult = useGetLearningPathQuery(
@@ -88,138 +90,185 @@ Const {groupProgressMap} = props.useGroupsWithProgress(
-
-
-
-
-
-
- {{ t("members") }}
-
-
-
-
- {{ member.firstName + " " + member.lastName }}
-
-
-
-
+
+ {{ assignmentResponse.data.assignment.description }}
-
+
+
+ {{ t("groups") }}
+
+
+
+
+ {{ item.name }}
+
+
+
+
+
+
+ {{ Math.ceil(value) }}%
+
+
+
+
+
+
+ {{ item.submitted ? t("see-submission") : t("no-submission") }}
+
+
+
+
+
+
+
+
+ {{ t("members") }}
+
+
+
+
+ {{ member.firstName + " " + member.lastName }}
+
+
+
+
+
+
+ Close
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ g.groupNumber }}
+ mdi-menu-right
+
+ |
+
+
+
+ {{ Math.ceil(value) }}%
+
+
+ |
+ {{ (g.members! as StudentDTO[]).map(member => member.username).join(', ') }} |
+
+
+ mdi-delete
+
+ |
+
+
+
+
+
+
@@ -231,4 +280,106 @@ Const {groupProgressMap} = props.useGroupsWithProgress(
overflow-x: auto;
-webkit-overflow-scrolling: touch;
}
+
+ .header {
+ font-weight: bold !important;
+ background-color: #0e6942;
+ color: white;
+ padding: 10px;
+ }
+
+ table thead th:first-child {
+ border-top-left-radius: 10px;
+ }
+
+ .table thead th:last-child {
+ border-top-right-radius: 10px;
+ }
+
+ .table tbody tr:nth-child(odd) {
+ background-color: white;
+ }
+
+ .table tbody tr:nth-child(even) {
+ background-color: #f6faf2;
+ }
+
+ td,
+ th {
+ border-bottom: 1px solid #0e6942;
+ border-top: 1px solid #0e6942;
+ }
+
+ .table {
+ width: 90%;
+ padding-top: 10px;
+ border-collapse: collapse;
+ }
+
+ h1 {
+ color: #0e6942;
+ text-transform: uppercase;
+ font-weight: bolder;
+ padding-top: 2%;
+ font-size: 50px;
+ }
+
+ h2 {
+ color: #0e6942;
+ font-size: 30px;
+ }
+
+ .join {
+ display: flex;
+ flex-direction: column;
+ gap: 20px;
+ margin-top: 50px;
+ }
+
+ .link {
+ color: #0b75bb;
+ text-decoration: underline;
+ }
+
+ main {
+ margin-left: 30px;
+ }
+
+ @media screen and (max-width: 850px) {
+ h1 {
+ text-align: center;
+ padding-left: 0;
+ }
+
+ .join {
+ text-align: center;
+ align-items: center;
+ margin-left: 0;
+ }
+
+ .sheet {
+ width: 100%;
+ }
+
+ main {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ margin: 5px;
+ }
+
+ .custom-breakpoint {
+ flex-direction: column !important;
+ }
+
+ .table {
+ width: 100%;
+ }
+
+ .responsive-col {
+ max-width: 100% !important;
+ flex-basis: 100% !important;
+ }
+ }