from django.db import models from django.contrib.auth.models import User from django.utils.text import slugify import uuid class QivipQuiz(models.Model): STATUS_VALUES = { "public": "Öffentlich", "hidden": "Versteckt", "private": "Privat", } uuid = models.UUIDField(default=uuid.uuid4, editable=False, unique=True) user_id = models.ForeignKey(User, on_delete=models.CASCADE, related_name='quiz') creation_date = models.DateTimeField(auto_now_add=True) update_date = models.DateTimeField(auto_now=True) status = models.CharField(max_length=10, choices=STATUS_VALUES.items()) category = models.ForeignKey('QuizCategory', related_name='quiz', on_delete=models.CASCADE) tags = models.ManyToManyField('Tag', blank=True) name = models.CharField(max_length=255) description = models.TextField(blank=True, null=True) def __str__(self): return self.name # Create your models here. class QivipQuestion(models.Model): uuid = models.UUIDField(default=uuid.uuid4, editable=False, unique=True) quiz_id = models.ForeignKey(QivipQuiz, on_delete=models.CASCADE, related_name='question') creation_date = models.DateTimeField(auto_now_add=True) update_date = models.DateTimeField(auto_now=True) data = models.TextField() def __str__(self): return self.data[:50] class Tag(models.Model): name = models.CharField(max_length=100, unique=True) def __str__(self): return self.name class QuizCategory(models.Model): name = models.CharField(max_length=100, unique=True) description = models.TextField(blank=True, null=True) slug = models.SlugField(unique=True, blank=True) def save(self, *args, **kwargs): if not self.slug: self.slug = slugify(self.name) super().save(*args, **kwargs) def __str__(self): return self.name