diff --git a/classquiz/routers/editor.py b/classquiz/routers/editor.py index 9e1213a..98a60ba 100644 --- a/classquiz/routers/editor.py +++ b/classquiz/routers/editor.py @@ -215,7 +215,13 @@ async def finish_edit(edit_id: str, quiz_input: QuizInput): await redis.delete(f"edit_session:{edit_id}:images") return await quiz.update() else: - quiz = Quiz(**quiz_input.dict(), user_id=session_data.user_id, id=session_data.quiz_id) + quiz = Quiz( + **quiz_input.dict(), + user_id=session_data.user_id, + id=session_data.quiz_id, + created_at=datetime.now(), + updated_at=datetime.now(), + ) await redis.delete("global_quiz_count") if quiz_input.public: meilisearch.index(settings.meilisearch_index).add_documents([await get_meili_data(quiz)]) diff --git a/classquiz/routers/quiz.py b/classquiz/routers/quiz.py index b21abd3..58ef9f9 100644 --- a/classquiz/routers/quiz.py +++ b/classquiz/routers/quiz.py @@ -178,7 +178,12 @@ async def get_game_id(game_pin: str): @router.get("/list") async def get_quiz_list(user: User = Depends(get_current_user), page_size: int | None = 10, page: int | None = 1): try: - return await Quiz.objects.filter(user_id=user.id).paginate(page, page_size=page_size).all() + return ( + await Quiz.objects.order_by(Quiz.updated_at.desc()) + .filter(user_id=user.id) + .paginate(page, page_size=page_size) + .all() + ) except ormar.exceptions.QueryDefinitionError: raise HTTPException(status_code=400, detail="Invalid page(size). page(size) have to be greater than 0.") diff --git a/classquiz/routers/users/__init__.py b/classquiz/routers/users/__init__.py index 514efbc..97f7d06 100644 --- a/classquiz/routers/users/__init__.py +++ b/classquiz/routers/users/__init__.py @@ -4,6 +4,7 @@ import gzip import os +from datetime import datetime import ormar import pydantic @@ -63,7 +64,7 @@ router.include_router(oauth.router, tags=["users", "oauth"], prefix="/oauth") response_model_include={"id": ..., "verified": ..., "email": ...}, ) async def create_user(user: RouteUser, background_task: BackgroundTasks) -> User | JSONResponse: - user = User(**user.dict(), id=uuid.uuid4(), avatar=gzipped_user_avatar()) + user = User(**user.dict(), id=uuid.uuid4(), avatar=gzipped_user_avatar(), created_at=datetime.now()) try: validate_email(user.email) except EmailNotValidError as e: diff --git a/frontend/src/lib/navbar.svelte b/frontend/src/lib/navbar.svelte index cfab1b0..09ac89f 100644 --- a/frontend/src/lib/navbar.svelte +++ b/frontend/src/lib/navbar.svelte @@ -106,7 +106,6 @@ -