From 60a917e60c0abba8fd23ae25f53c63f63c22948d Mon Sep 17 00:00:00 2001 From: Jannat Patel Date: Tue, 27 Feb 2024 20:41:02 +0530 Subject: [PATCH] feat: course creation page structure --- frontend/src/components/UserDropdown.vue | 20 ++- frontend/src/pages/Courses.vue | 21 ++- frontend/src/pages/CreateCourse.vue | 131 ++++++++++++++++++ frontend/src/pages/CreateOutline.vue | 0 frontend/src/pages/JobDetail.vue | 4 +- frontend/src/pages/Lesson.vue | 74 +++++----- frontend/src/pages/Profile.vue | 1 + frontend/src/router.js | 18 +++ .../doctype/course_lesson/course_lesson.py | 42 +++--- .../lms_course_progress.json | 12 +- lms/lms/doctype/lms_quiz/lms_quiz.json | 2 +- .../lms_quiz_submission.json | 3 +- lms/lms/utils.py | 9 ++ 13 files changed, 263 insertions(+), 74 deletions(-) create mode 100644 frontend/src/pages/CreateCourse.vue create mode 100644 frontend/src/pages/CreateOutline.vue create mode 100644 frontend/src/pages/Profile.vue diff --git a/frontend/src/components/UserDropdown.vue b/frontend/src/components/UserDropdown.vue index e9842c9b..d71ea7da 100644 --- a/frontend/src/components/UserDropdown.vue +++ b/frontend/src/components/UserDropdown.vue @@ -46,8 +46,10 @@ import LMSLogo from '@/components/Icons/LMSLogo.vue' import { sessionStore } from '@/stores/session' import { Dropdown } from 'frappe-ui' -import { ChevronDown } from 'lucide-vue-next' +import { ChevronDown, LogIn, LogOut, User } from 'lucide-vue-next' +import { useRouter } from 'vue-router' +const router = useRouter() const props = defineProps({ isCollapsed: { type: Boolean, @@ -57,10 +59,20 @@ const props = defineProps({ const { logout, user } = sessionStore() let { isLoggedIn } = sessionStore() - +console.log(user) const userDropdownOptions = [ { - icon: 'log-out', + icon: User, + label: 'My Profile', + onClick: () => { + router.push(`/user/${user.data?.username}`) + }, + condition: () => { + return isLoggedIn + }, + }, + { + icon: LogOut, label: 'Log out', onClick: () => { logout.submit().then(() => { @@ -72,7 +84,7 @@ const userDropdownOptions = [ }, }, { - icon: 'log-in', + icon: LogIn, label: 'Log in', onClick: () => { window.location.href = '/login' diff --git a/frontend/src/pages/Courses.vue b/frontend/src/pages/Courses.vue index 000b58cb..52422499 100644 --- a/frontend/src/pages/Courses.vue +++ b/frontend/src/pages/Courses.vue @@ -9,12 +9,21 @@ :items="[{ label: __('All Courses'), route: { name: 'Courses' } }]" />
- + + +
diff --git a/frontend/src/pages/CreateCourse.vue b/frontend/src/pages/CreateCourse.vue new file mode 100644 index 00000000..671224e5 --- /dev/null +++ b/frontend/src/pages/CreateCourse.vue @@ -0,0 +1,131 @@ + + diff --git a/frontend/src/pages/CreateOutline.vue b/frontend/src/pages/CreateOutline.vue new file mode 100644 index 00000000..e69de29b diff --git a/frontend/src/pages/JobDetail.vue b/frontend/src/pages/JobDetail.vue index 42d7d8bb..7904224f 100644 --- a/frontend/src/pages/JobDetail.vue +++ b/frontend/src/pages/JobDetail.vue @@ -126,7 +126,9 @@ const jobApplication = createResource({ }) onMounted(() => { - jobApplication.submit() + if (user.data?.name) { + jobApplication.submit() + } }) const openApplicationModal = () => { diff --git a/frontend/src/pages/Lesson.vue b/frontend/src/pages/Lesson.vue index f5277033..40044fed 100644 --- a/frontend/src/pages/Lesson.vue +++ b/frontend/src/pages/Lesson.vue @@ -1,5 +1,5 @@