diff --git a/frontend/src/components/AssessmentPlugin.vue b/frontend/src/components/AssessmentPlugin.vue index eae9763e..f1253608 100644 --- a/frontend/src/components/AssessmentPlugin.vue +++ b/frontend/src/components/AssessmentPlugin.vue @@ -71,7 +71,7 @@ const addAssessment = () => { } const redirectToForm = () => { - if (props.type == 'quiz') window.open('/lms/quizzes/new', '_blank') - else window.open('/lms/assignments/new', '_blank') + if (props.type == 'quiz') window.open('/lms/quizzes?new=true', '_blank') + else window.open('/lms/assignments?new=true', '_blank') } diff --git a/frontend/src/pages/Assignments.vue b/frontend/src/pages/Assignments.vue index 73bd1564..695d4ae6 100644 --- a/frontend/src/pages/Assignments.vue +++ b/frontend/src/pages/Assignments.vue @@ -85,7 +85,7 @@ import { } from 'frappe-ui' import { computed, inject, onMounted, ref, watch } from 'vue' import { Plus } from 'lucide-vue-next' -import { useRouter } from 'vue-router' +import { useRouter, useRoute } from 'vue-router' import { sessionStore } from '../stores/session' import AssignmentForm from '@/components/Modals/AssignmentForm.vue' import EmptyState from '@/components/EmptyState.vue' @@ -99,12 +99,17 @@ const assignmentID = ref('new') const assignmentCount = ref(0) const { brand } = sessionStore() const router = useRouter() +const route = useRoute() const readOnlyMode = window.read_only_mode onMounted(() => { if (!user.data?.is_moderator && !user.data?.is_instructor) { router.push({ name: 'Courses' }) } + if (route.query.new === 'true') { + assignmentID.value = 'new' + showAssignmentForm.value = true + } getAssignmentCount() titleFilter.value = router.currentRoute.value.query.title typeFilter.value = router.currentRoute.value.query.type diff --git a/frontend/src/pages/Quizzes.vue b/frontend/src/pages/Quizzes.vue index b8c6afab..b0d3197a 100644 --- a/frontend/src/pages/Quizzes.vue +++ b/frontend/src/pages/Quizzes.vue @@ -134,7 +134,7 @@ import { toast, usePageMeta, } from 'frappe-ui' -import { useRouter } from 'vue-router' +import { useRouter, useRoute } from 'vue-router' import { computed, inject, onMounted, ref, watch } from 'vue' import { Plus } from 'lucide-vue-next' import { sessionStore } from '@/stores/session' @@ -145,6 +145,7 @@ const { brand } = sessionStore() const user = inject('$user') const dayjs = inject('$dayjs') const router = useRouter() +const route = useRoute() const search = ref('') const readOnlyMode = window.read_only_mode const quizFilters = ref({}) @@ -157,6 +158,9 @@ onMounted(() => { } else if (!user.data?.is_moderator) { quizFilters.value['owner'] = user.data?.name } + if (route.query.new === 'true') { + showForm.value = true + } }) watch(search, () => {