mirror of
https://github.com/rzmk/learnhouse.git
synced 2025-12-19 04:19:25 +00:00
feat: use swr for activity
This commit is contained in:
parent
cad10078ae
commit
007ed6c8ea
6 changed files with 56 additions and 54 deletions
|
|
@ -89,6 +89,36 @@ async def get_user_activities(request: Request, user: PublicUser, org_id: str):
|
|||
|
||||
return activities_metadata
|
||||
|
||||
async def get_user_activities_orgslug(request: Request, user: PublicUser, org_slug: str):
|
||||
activities = request.app.db["activities"]
|
||||
courses = request.app.db["courses"]
|
||||
coursechapters = request.app.db["coursechapters"]
|
||||
|
||||
activities_metadata = []
|
||||
|
||||
user_activities = activities.find(
|
||||
{"user_id": user.user_id}, {'_id': 0})
|
||||
|
||||
if not user_activities:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_409_CONFLICT, detail="No activities found")
|
||||
|
||||
for activity in user_activities:
|
||||
# get number of lectures in the course
|
||||
coursechapters = await get_coursechapters_meta(request, activity['course_id'], user)
|
||||
|
||||
# calculate progression using the number of lectures marked complete and the total number of lectures
|
||||
progression = round(
|
||||
len(activity['lectures_marked_complete']) / len(coursechapters['lectures']) * 100, 2)
|
||||
|
||||
course = courses.find_one({"course_id": activity['course_id']}, {'_id': 0})
|
||||
|
||||
# add progression to the activity
|
||||
one_activity = {"course": course, "activitydata": activity, "progression": progression}
|
||||
activities_metadata.append(one_activity)
|
||||
|
||||
return activities_metadata
|
||||
|
||||
|
||||
async def add_lecture_to_activity(request: Request, user: PublicUser, org_id: str, course_id: str, lecture_id: str):
|
||||
activities = request.app.db["activities"]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue