🐛 Fixed datetime bug and added sorting to quizzes on dashboard

This commit is contained in:
Mawoka
2023-02-09 16:17:20 +01:00
parent 93104eb311
commit 6e9d614f3f
4 changed files with 15 additions and 4 deletions
+7 -1
View File
@@ -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)])
+6 -1
View File
@@ -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.")
+2 -1
View File
@@ -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:
-1
View File
@@ -106,7 +106,6 @@
</button>
</div>
</section>
<ul id="menu-items" class="lg:flex w-full flex-col lg:flex-row" class:hidden={openMenu}>
<li class="py-2 lg:hidden">
<BrownButton href="https://mawoka.eu/donate" target="_blank"