mirror of
https://github.com/rzmk/learnhouse.git
synced 2025-12-19 04:19:25 +00:00
feat: improve trail performance and fix bugs
This commit is contained in:
parent
c5617cb47a
commit
eb56cf4d29
2 changed files with 9 additions and 12 deletions
|
|
@ -4,6 +4,7 @@ import { removeCourse } from '@services/courses/activity';
|
||||||
import { getCourseThumbnailMediaDirectory } from '@services/media/media';
|
import { getCourseThumbnailMediaDirectory } from '@services/media/media';
|
||||||
import { revalidateTags } from '@services/utils/ts/requests';
|
import { revalidateTags } from '@services/utils/ts/requests';
|
||||||
import Link from 'next/link';
|
import Link from 'next/link';
|
||||||
|
import { useRouter } from 'next/navigation';
|
||||||
import { mutate } from 'swr';
|
import { mutate } from 'swr';
|
||||||
|
|
||||||
interface TrailCourseElementProps {
|
interface TrailCourseElementProps {
|
||||||
|
|
@ -14,12 +15,14 @@ interface TrailCourseElementProps {
|
||||||
function TrailCourseElement(props: TrailCourseElementProps) {
|
function TrailCourseElement(props: TrailCourseElementProps) {
|
||||||
const courseid = props.course.course_id.replace("course_", "")
|
const courseid = props.course.course_id.replace("course_", "")
|
||||||
const course = props.course
|
const course = props.course
|
||||||
|
const router = useRouter();
|
||||||
|
|
||||||
async function quitCourse(course_id: string) {
|
async function quitCourse(course_id: string) {
|
||||||
// Close activity
|
// Close activity
|
||||||
let activity = await removeCourse(course_id, props.orgslug);
|
let activity = await removeCourse(course_id, props.orgslug);
|
||||||
// Mutate course
|
// Mutate course
|
||||||
revalidateTags(['courses'], props.orgslug);
|
revalidateTags(['courses'], props.orgslug);
|
||||||
|
router.refresh();
|
||||||
|
|
||||||
// Mutate
|
// Mutate
|
||||||
mutate(`${getAPIUrl()}trail/org_slug/${props.orgslug}/trail`);
|
mutate(`${getAPIUrl()}trail/org_slug/${props.orgslug}/trail`);
|
||||||
|
|
|
||||||
|
|
@ -121,19 +121,13 @@ async def get_user_trail_with_orgslug(
|
||||||
if not trail:
|
if not trail:
|
||||||
return Trail(masked=False, courses=[])
|
return Trail(masked=False, courses=[])
|
||||||
|
|
||||||
# Check if these courses still exist in the database
|
course_ids = [course["course_id"] for course in trail["courses"]]
|
||||||
for course in trail["courses"]:
|
|
||||||
course_id = course["course_id"]
|
|
||||||
course_object = await courses_mongo.find_one(
|
|
||||||
{"course_id": course_id}, {"_id": 0}
|
|
||||||
)
|
|
||||||
print('checking course ' + course_id)
|
|
||||||
if not course_object:
|
|
||||||
print("Course not found " + course_id)
|
|
||||||
trail["courses"].remove(course)
|
|
||||||
continue
|
|
||||||
|
|
||||||
course["course_object"] = course_object
|
live_courses = await courses_mongo.find({"course_id": {"$in": course_ids}}).to_list(
|
||||||
|
length=None
|
||||||
|
)
|
||||||
|
|
||||||
|
trail["courses"] = live_courses
|
||||||
|
|
||||||
for courses in trail["courses"]:
|
for courses in trail["courses"]:
|
||||||
course_id = courses["course_id"]
|
course_id = courses["course_id"]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue