From 513d65704f27a4f6bae85a7233df06a672e23af0 Mon Sep 17 00:00:00 2001 From: swve Date: Fri, 19 Jan 2024 21:22:06 +0100 Subject: [PATCH] feat: make some courses inputs optional --- apps/api/src/routers/courses/courses.py | 4 +-- apps/api/src/services/courses/courses.py | 3 ++ .../(withmenu)/course/[courseuuid]/course.tsx | 27 +++++++++++++----- .../Dashboard/UI/CourseOverviewTop.tsx | 5 ++++ .../Modals/Course/Create/CreateCourse.tsx | 6 ++-- .../Objects/Thumbnails/CourseThumbnail.tsx | 5 ++-- apps/web/public/empty_thumbnail.png | Bin 0 -> 140890 bytes apps/web/services/courses/courses.ts | 5 +++- 8 files changed, 40 insertions(+), 15 deletions(-) create mode 100644 apps/web/public/empty_thumbnail.png diff --git a/apps/api/src/routers/courses/courses.py b/apps/api/src/routers/courses/courses.py index f9485e80..6244c838 100644 --- a/apps/api/src/routers/courses/courses.py +++ b/apps/api/src/routers/courses/courses.py @@ -31,8 +31,8 @@ async def api_create_course( name: str = Form(), description: str = Form(), public: bool = Form(), - learnings: str = Form(), - tags: str = Form(), + learnings: str = Form(None), + tags: str = Form(None), about: str = Form(), current_user: PublicUser = Depends(get_current_user), db_session: Session = Depends(get_db_session), diff --git a/apps/api/src/services/courses/courses.py b/apps/api/src/services/courses/courses.py index cd667db7..cc007a56 100644 --- a/apps/api/src/services/courses/courses.py +++ b/apps/api/src/services/courses/courses.py @@ -146,6 +146,9 @@ async def create_course( ) course.thumbnail_image = name_in_disk + else: + course.thumbnail_image = "" + # Insert course db_session.add(course) db_session.commit() diff --git a/apps/web/app/orgs/[orgslug]/(withmenu)/course/[courseuuid]/course.tsx b/apps/web/app/orgs/[orgslug]/(withmenu)/course/[courseuuid]/course.tsx index bd391921..d7d16a7b 100644 --- a/apps/web/app/orgs/[orgslug]/(withmenu)/course/[courseuuid]/course.tsx +++ b/apps/web/app/orgs/[orgslug]/(withmenu)/course/[courseuuid]/course.tsx @@ -73,9 +73,13 @@ const CourseClient = (props: any) => { - -
-
+ {props.course.thumbnail_image ? +
+
+ : +
+
+ } @@ -185,15 +189,24 @@ const CourseClient = (props: any) => { -
+
{user && -
+
- +
Author
-
{course.authors[0].first_name} {course.authors[0].last_name} {(course.authors[0].first_name && course.authors[0].last_name) ? course.authors[0].first_name + ' ' + course.authors[0].last_name : course.authors[0].username}
+
+ {course.authors[0].first_name && course.authors[0].last_name && ( +
+

{course.authors[0].first_name + ' ' + course.authors[0].last_name}

@{course.authors[0].username } +
)} + {!course.authors[0].first_name && !course.authors[0].last_name && ( +
+

@{course.authors[0].username}

+
)} +
} diff --git a/apps/web/components/Dashboard/UI/CourseOverviewTop.tsx b/apps/web/components/Dashboard/UI/CourseOverviewTop.tsx index 1400b4d4..e0f409cf 100644 --- a/apps/web/components/Dashboard/UI/CourseOverviewTop.tsx +++ b/apps/web/components/Dashboard/UI/CourseOverviewTop.tsx @@ -7,6 +7,8 @@ import { getUriWithOrg } from "@services/config/config"; import { useOrg } from "@components/Contexts/OrgContext"; import { getCourseThumbnailMediaDirectory } from "@services/media/media"; import Link from "next/link"; +import Image from "next/image"; +import EmptyThumbnailImage from '../../../public/empty_thumbnail.png'; export function CourseOverviewTop({ params }: { params: CourseOverviewParams }) { const course = useCourse() as any; @@ -21,7 +23,10 @@ export function CourseOverviewTop({ params }: { params: CourseOverviewParams })
+ {course?.courseStructure?.thumbnail ? + : + }
Course
diff --git a/apps/web/components/Objects/Modals/Course/Create/CreateCourse.tsx b/apps/web/components/Objects/Modals/Course/Create/CreateCourse.tsx index d1cc4db2..94726a97 100644 --- a/apps/web/components/Objects/Modals/Course/Create/CreateCourse.tsx +++ b/apps/web/components/Objects/Modals/Course/Create/CreateCourse.tsx @@ -111,16 +111,16 @@ function CreateCourseModal({ closeModal, orgslug }: any) { Please provide a thumbnail for your course - + - Course tags (separated by comma) + Course Learnings (separated by comma) Please provide learning elements, separated by comma (,) -