feat: store assigment user

This commit is contained in:
Reto Aebersold 2023-12-18 12:25:59 +01:00
parent 9e31975d76
commit 5ee6cc2596
5 changed files with 24 additions and 2 deletions

View File

@ -123,3 +123,16 @@ export async function handleCockpit(to: RouteLocationNormalized) {
return "/"; return "/";
} }
} }
export async function handleAcceptLearningMentorInvitation(
to: RouteLocationNormalized
) {
const user = useUserStore();
if (user.loggedIn) {
return;
}
return `/onboarding/vv-${user.language}/account/create?next=${encodeURIComponent(
to.fullPath
)}`;
}

View File

@ -1,6 +1,7 @@
import DashboardPage from "@/pages/dashboard/DashboardPage.vue"; import DashboardPage from "@/pages/dashboard/DashboardPage.vue";
import LoginPage from "@/pages/LoginPage.vue"; import LoginPage from "@/pages/LoginPage.vue";
import { import {
handleAcceptLearningMentorInvitation,
handleCockpit, handleCockpit,
handleCourseSessionAsQueryParam, handleCourseSessionAsQueryParam,
handleCurrentCourseSession, handleCurrentCourseSession,
@ -132,6 +133,11 @@ const router = createRouter({
path: "/lernbegleitung/:courseId/invitation/:invitationId", path: "/lernbegleitung/:courseId/invitation/:invitationId",
component: () => import("@/pages/learningMentor/InvitationAcceptPage.vue"), component: () => import("@/pages/learningMentor/InvitationAcceptPage.vue"),
props: true, props: true,
beforeEnter: handleAcceptLearningMentorInvitation,
meta: {
// The login redirect is handled in the beforeEnter guard
public: true,
},
}, },
{ {
path: "/course/:courseSlug/cockpit", path: "/course/:courseSlug/cockpit",

View File

@ -48,7 +48,7 @@ export const useDashboardStore = defineStore("dashboard", () => {
const loadDashboardConfig = async () => { const loadDashboardConfig = async () => {
if (dashboardConfigs.value.length > 0) return; if (dashboardConfigs.value.length > 0) return;
const configData = await fetchDashboardConfig(); const configData = await fetchDashboardConfig();
if (configData) { if (configData && configData.length > 0) {
dashboardConfigs.value = configData; dashboardConfigs.value = configData;
await switchAndLoadDashboardConfig(configData[0]); await switchAndLoadDashboardConfig(configData[0]);
} }

View File

@ -154,6 +154,7 @@ def update_assignment_completion(
if completion_status == AssignmentCompletionStatus.SUBMITTED: if completion_status == AssignmentCompletionStatus.SUBMITTED:
ac.submitted_at = timezone.now() ac.submitted_at = timezone.now()
if evaluation_user: if evaluation_user:
ac.evaluation_user = evaluation_user
NotificationService.send_assignment_submitted_notification( NotificationService.send_assignment_submitted_notification(
recipient=evaluation_user, recipient=evaluation_user,
sender=ac.assignment_user, sender=ac.assignment_user,

View File

@ -144,7 +144,7 @@ class UpdateAssignmentCompletionTestCase(TestCase):
user_text_input0 = subtasks[0] user_text_input0 = subtasks[0]
user_text_input1 = subtasks[1] user_text_input1 = subtasks[1]
ac = AssignmentCompletion.objects.create( AssignmentCompletion.objects.create(
assignment_user=self.user, assignment_user=self.user,
assignment=self.assignment, assignment=self.assignment,
course_session=self.course_session, course_session=self.course_session,
@ -163,6 +163,7 @@ class UpdateAssignmentCompletionTestCase(TestCase):
assignment=self.assignment, assignment=self.assignment,
course_session=self.course_session, course_session=self.course_session,
completion_status=AssignmentCompletionStatus.SUBMITTED, completion_status=AssignmentCompletionStatus.SUBMITTED,
evaluation_user=self.trainer,
) )
ac = AssignmentCompletion.objects.get( ac = AssignmentCompletion.objects.get(
@ -173,6 +174,7 @@ class UpdateAssignmentCompletionTestCase(TestCase):
self.assertEqual(ac.completion_status, "SUBMITTED") self.assertEqual(ac.completion_status, "SUBMITTED")
self.assertEqual(ac.submitted_at.date(), date.today()) self.assertEqual(ac.submitted_at.date(), date.today())
self.assertEqual(ac.evaluation_user, self.trainer)
# will create AssignmentCompletionAuditLog entry # will create AssignmentCompletionAuditLog entry
acl = AssignmentCompletionAuditLog.objects.get( acl = AssignmentCompletionAuditLog.objects.get(