🐛 Fixed explore-screen

This commit is contained in:
Mawoka
2022-04-14 17:47:34 +02:00
parent b9687a92cd
commit 2b288b4626
6 changed files with 35 additions and 36 deletions
+11
View File
@@ -0,0 +1,11 @@
from classquiz.db.models import Quiz, User
async def get_meili_data(quiz: Quiz) -> dict:
return {
"id": str(quiz.id),
"title": quiz.title,
"description": quiz.description,
"user": (await User.objects.filter(id=quiz.user_id).first()).username,
"created_at": int(quiz.created_at.timestamp()),
}
+2 -6
View File
@@ -8,6 +8,7 @@ from aiohttp import ClientSession
from classquiz.config import settings, storage, meilisearch from classquiz.config import settings, storage, meilisearch
from classquiz.db.models import Quiz, QuizAnswer, QuizQuestion, User from classquiz.db.models import Quiz, QuizAnswer, QuizQuestion, User
from classquiz.kahoot_importer.get import get as get_quiz from classquiz.kahoot_importer.get import get as get_quiz
from classquiz.helpers import get_meili_data
settings = settings() settings = settings()
@@ -98,12 +99,7 @@ async def import_quiz(quiz_id: str, user: User) -> Quiz | str:
) )
meilisearch.index(settings.meilisearch_index).add_documents( meilisearch.index(settings.meilisearch_index).add_documents(
[ [
{ await get_meili_data(quiz_data)
"id": str(quiz_data.id),
"title": quiz_data.title,
"description": quiz_data.description,
"user": (await User.objects.filter(id=quiz_data.user_id).first()).username,
}
] ]
) )
return await quiz_data.save() return await quiz_data.save()
+4 -19
View File
@@ -3,7 +3,7 @@ import re
import uuid import uuid
from datetime import datetime from datetime import datetime
from random import randint from random import randint
from classquiz.helpers import get_meili_data
from fastapi import APIRouter, Depends, HTTPException from fastapi import APIRouter, Depends, HTTPException
from fastapi.responses import JSONResponse from fastapi.responses import JSONResponse
from pydantic import ValidationError from pydantic import ValidationError
@@ -32,12 +32,7 @@ async def create_quiz_lol(quiz_input: QuizInput, user: User = Depends(get_curren
await redis.delete("global_quiz_count") await redis.delete("global_quiz_count")
meilisearch.index(settings.meilisearch_index).add_documents( meilisearch.index(settings.meilisearch_index).add_documents(
[ [
{ await get_meili_data(quiz)
"id": str(quiz.id),
"title": quiz.title,
"description": quiz.description,
"user": (await User.objects.filter(id=quiz.user_id).first()).username,
}
] ]
) )
return await quiz.save() return await quiz.save()
@@ -138,12 +133,7 @@ async def update_quiz(quiz_id: str, quiz_input: QuizInput, user: User = Depends(
# print(quiz) # print(quiz)
meilisearch.index(settings.meilisearch_index).update_documents( meilisearch.index(settings.meilisearch_index).update_documents(
[ [
{ await get_meili_data(quiz)
"id": str(quiz.id),
"title": quiz_input.title,
"description": quiz_input.description,
"user": (await User.objects.filter(id=quiz.user_id).first()).username,
}
] ]
) )
if quiz.public and not quiz_input.public: if quiz.public and not quiz_input.public:
@@ -152,12 +142,7 @@ async def update_quiz(quiz_id: str, quiz_input: QuizInput, user: User = Depends(
if not quiz.public and quiz_input.public: if not quiz.public and quiz_input.public:
meilisearch.index(settings.meilisearch_index).add_documents( meilisearch.index(settings.meilisearch_index).add_documents(
[ [
{ await get_meili_data(quiz)
"id": str(quiz.id),
"title": quiz_input.title,
"description": quiz_input.description,
"user": (await User.objects.filter(id=quiz.user_id).first()).username,
}
] ]
) )
quiz.title = quiz_input.title quiz.title = quiz_input.title
View File
+12 -1
View File
@@ -1,6 +1,17 @@
<script lang="ts"> <script lang="ts">
const getData = async () => { const getData = async () => {
const response = await fetch('/api/v1/search/?q=*'); const response = await fetch('/api/v1/search/', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
q: '*',
sort: [
"created_at:desc"
]
})
});
return await response.json(); return await response.json();
}; };
</script> </script>
+6 -10
View File
@@ -1,7 +1,9 @@
import meilisearch import meilisearch
from classquiz.db import database from classquiz.db import database
from classquiz.db.models import Quiz, User from classquiz.db.models import Quiz, User
from classquiz.helpers import get_meili_data
from classquiz.config import settings from classquiz.config import settings
from datetime import datetime
from asyncio import run from asyncio import run
settings = settings() settings = settings()
@@ -11,19 +13,13 @@ async def __main__():
if not database.is_connected: if not database.is_connected:
await database.connect() await database.connect()
meili_data = [] meili_data = []
questions = await Quiz.objects.filter(public=True).all() quizzes = await Quiz.objects.filter(public=True).all()
for question in questions: for quiz in quizzes:
meili_data.append( meili_data.append(await get_meili_data(quiz))
{
"id": str(question.id),
"title": question.title,
"description": question.description,
"user": (await User.objects.filter(id=question.user_id).first()).username,
}
)
print(meili_data) print(meili_data)
client = meilisearch.Client(settings.meilisearch_url) client = meilisearch.Client(settings.meilisearch_url)
client.index(settings.meilisearch_index).add_documents(meili_data) client.index(settings.meilisearch_index).add_documents(meili_data)
client.index(settings.meilisearch_index).update_settings({"sortableAttributes": ["created_at"]})
if __name__ == "__main__": if __name__ == "__main__":