From ec845a2981049f3430c346d2c183784f2777af1e Mon Sep 17 00:00:00 2001
From: borzechof99 <borzechof99@mi.fu-berlin.de>
Date: Sat, 12 Jun 2021 17:32:32 +0200
Subject: [PATCH] Add Admin Integration and update seed_db.py

---
 unisportomat/quiz/admin.py                    | 21 +++++-
 .../quiz/management/commands/seed_db.py       | 70 +++++++++++++++----
 2 files changed, 73 insertions(+), 18 deletions(-)

diff --git a/unisportomat/quiz/admin.py b/unisportomat/quiz/admin.py
index c1adb96..f986e46 100644
--- a/unisportomat/quiz/admin.py
+++ b/unisportomat/quiz/admin.py
@@ -1,6 +1,7 @@
 """ Here is the place to register the Models to be seen in the admin interface """
 
 from django.contrib import admin
+from modeltranslation.admin import TranslationAdmin
 
 # Register your models here.
 from .models import (
@@ -12,9 +13,23 @@ from .models import (
     KnowledgeSnack,
 )
 
+
+class QuestionAdmin(TranslationAdmin):
+    """Allows for proper formatting of Translations in Question"""
+
+
+class CallToMoveAdmin(TranslationAdmin):
+    """Allows for proper formatting of Translations in CallToMove"""
+
+
+class KnowledgeSnackAdmin(TranslationAdmin):
+    """Allows for proper formatting of Translations in KnowledgeSnack"""
+
+
 admin.site.register(Sport)
 admin.site.register(Criterion)
-admin.site.register(Question)
 admin.site.register(CriterionRating)
-admin.site.register(CallToMove)
-admin.site.register(KnowledgeSnack)
+
+admin.site.register(Question, QuestionAdmin)
+admin.site.register(CallToMove, CallToMoveAdmin)
+admin.site.register(KnowledgeSnack, KnowledgeSnackAdmin)
diff --git a/unisportomat/quiz/management/commands/seed_db.py b/unisportomat/quiz/management/commands/seed_db.py
index 31f0e9c..ded2a91 100644
--- a/unisportomat/quiz/management/commands/seed_db.py
+++ b/unisportomat/quiz/management/commands/seed_db.py
@@ -8,6 +8,7 @@ import random
 from django.core.files.uploadedfile import SimpleUploadedFile
 from django.core.management import call_command
 from django.core.management.base import BaseCommand
+from django.utils.translation import activate
 from quiz.models import (
     Sport,
     Criterion,
@@ -50,7 +51,7 @@ class Command(BaseCommand):
             help="No super user shall be created",
         )
 
-    def handle(self, *args, **options):
+    def handle(self, *args, **options):  # pylint: disable=too-many-locals
         """Create some objects for all models"""
 
         # delete all present database entries (necessary because of unique constraints)
@@ -93,21 +94,43 @@ class Command(BaseCommand):
 
         # Create questions
         questions = [
-            "Ich würde am liebsten gemeinsam mit anderen trainieren.",
-            "Teamgeist und Wir-Gefühl sind für mich beim Sport eine große Motivation.",
-            "Ich betreibe lieber alleine Sport.",
-            "Ich bin bereit, mir ggf. Material für die Sportart zu kaufen.",
-            "Ich bevorzuge das Sportangebot draußen in der Natur vor dem Indoor-Angebot.",
+            (
+                "Ich würde am liebsten gemeinsam mit anderen trainieren.",
+                "I'd prefer to train with others.",
+            ),
+            (
+                "Teamgeist und Wir-Gefühl sind für mich beim Sport eine große Motivation.",
+                "Being in a Team is a big motivation for me.",
+            ),
+            ("Ich betreibe lieber alleine Sport.", "I prefer to do sport alone"),
+            (
+                "Ich bin bereit, mir ggf. Material für die Sportart zu kaufen.",
+                "I am willing to buy extra materials for sport.",
+            ),
+            (
+                "Ich bevorzuge das Sportangebot draußen in der Natur vor dem Indoor-Angebot.",
+                "I prefer sports outside in the nature instead of indoors.",
+            ),
         ]
 
         for number, criterion in enumerate(Criterion.objects.all()):
-            Question(text=questions[number], criterion=criterion).save()
+            activate("de")
+            que = Question(text=questions[number][0], criterion=criterion)
+            activate("en")
+            que.text = questions[number][1]
+            que.save()
 
         # Create Calls to Move
         calls_to_move = [
-            "Kreise deine Schultern vor der nächsten Frage 3x nach hinten",
-            "Stehe auf, beuge dich mit gestrecktem Rücken nach vorne und greife deinen Stuhl.",
-            "Mache vor der nächsten Frage 3 Jumping Jacks",
+            (
+                "Kreise deine Schultern vor der nächsten Frage 3x nach hinten",
+                "Move your shoulders in circles. Three Times. Noooow.",
+            ),
+            (
+                "Stehe auf, beuge dich mit gestrecktem Rücken nach vorne und greife deinen Stuhl.",
+                "Stand up, keep your back straight, bow down.",
+            ),
+            ("Mache vor der nächsten Frage 3 Jumping Jacks", "Do Three Jumping Jacks."),
         ]
         image = SimpleUploadedFile(
             name="test_image.png",
@@ -116,13 +139,26 @@ class Command(BaseCommand):
         )
 
         for text in calls_to_move:
-            CallToMove(text=text, image=image).save()
+            activate("de")
+            c_t_m = CallToMove(text=text[0], image=image)
+            activate("en")
+            c_t_m.text = text[1]
+            c_t_m.save()
 
         # Create Knowledge Snacks
         knowledge_snacks = [
-            "Dass Treppensteigen fast 5x so viele Kalorien verbrennt, wie das Nutzen des Aufzuges?",
-            "Dass das Spielemobil zur Mittagszeit immer auf dem Campus unterwegs ist?",
-            "Dass regelmäßige Bewegung Herz-Kreislauf-Erkrankungen vorbeugt?",
+            (
+                "Dass Treppensteigen fast 5x so viele Kalorien verbrennt, wie das Nutzen des Aufzuges?",
+                "That Taking the stairs burns five times as much calories than using the lift?",
+            ),
+            (
+                "Dass das Spielemobil zur Mittagszeit immer auf dem Campus unterwegs ist?",
+                "That the Spielemobil is on campus every noon?",
+            ),
+            (
+                "Dass regelmäßige Bewegung Herz-Kreislauf-Erkrankungen vorbeugt?",
+                "That proper training prevents heart disease?",
+            ),
         ]
         image = SimpleUploadedFile(
             name="logo.png",
@@ -130,4 +166,8 @@ class Command(BaseCommand):
             content_type="image/png",
         )
         for text in knowledge_snacks:
-            KnowledgeSnack(text=text, image=image).save()
+            activate("de")
+            k_s = KnowledgeSnack(text=text[0], image=image)
+            activate("en")
+            k_s.text = text[1]
+            k_s.save()
-- 
GitLab