🐛 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.db.models import Quiz, QuizAnswer, QuizQuestion, User
from classquiz.kahoot_importer.get import get as get_quiz
from classquiz.helpers import get_meili_data
settings = settings()
@@ -98,12 +99,7 @@ async def import_quiz(quiz_id: str, user: User) -> Quiz | str:
)
meilisearch.index(settings.meilisearch_index).add_documents(
[
{
"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,
}
await get_meili_data(quiz_data)
]
)
return await quiz_data.save()
+4 -19
View File
@@ -3,7 +3,7 @@ import re
import uuid
from datetime import datetime
from random import randint
from classquiz.helpers import get_meili_data
from fastapi import APIRouter, Depends, HTTPException
from fastapi.responses import JSONResponse
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")
meilisearch.index(settings.meilisearch_index).add_documents(
[
{
"id": str(quiz.id),
"title": quiz.title,
"description": quiz.description,
"user": (await User.objects.filter(id=quiz.user_id).first()).username,
}
await get_meili_data(quiz)
]
)
return await quiz.save()
@@ -138,12 +133,7 @@ async def update_quiz(quiz_id: str, quiz_input: QuizInput, user: User = Depends(
# print(quiz)
meilisearch.index(settings.meilisearch_index).update_documents(
[
{
"id": str(quiz.id),
"title": quiz_input.title,
"description": quiz_input.description,
"user": (await User.objects.filter(id=quiz.user_id).first()).username,
}
await get_meili_data(quiz)
]
)
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:
meilisearch.index(settings.meilisearch_index).add_documents(
[
{
"id": str(quiz.id),
"title": quiz_input.title,
"description": quiz_input.description,
"user": (await User.objects.filter(id=quiz.user_id).first()).username,
}
await get_meili_data(quiz)
]
)
quiz.title = quiz_input.title
View File
+12 -1
View File
@@ -1,6 +1,17 @@
<script lang="ts">
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();
};
</script>
+6 -10
View File
@@ -1,7 +1,9 @@
import meilisearch
from classquiz.db import database
from classquiz.db.models import Quiz, User
from classquiz.helpers import get_meili_data
from classquiz.config import settings
from datetime import datetime
from asyncio import run
settings = settings()
@@ -11,19 +13,13 @@ async def __main__():
if not database.is_connected:
await database.connect()
meili_data = []
questions = await Quiz.objects.filter(public=True).all()
for question in questions:
meili_data.append(
{
"id": str(question.id),
"title": question.title,
"description": question.description,
"user": (await User.objects.filter(id=question.user_id).first()).username,
}
)
quizzes = await Quiz.objects.filter(public=True).all()
for quiz in quizzes:
meili_data.append(await get_meili_data(quiz))
print(meili_data)
client = meilisearch.Client(settings.meilisearch_url)
client.index(settings.meilisearch_index).add_documents(meili_data)
client.index(settings.meilisearch_index).update_settings({"sortableAttributes": ["created_at"]})
if __name__ == "__main__":