from django.contrib.auth import get_user_model from django.db import models from django_extensions.db.models import TitleDescriptionModel from book.models import Module class ObjectiveGroup(models.Model): class Meta: verbose_name = 'Lernziel Gruppe' verbose_name_plural = 'Lernziel Gruppen' title = models.CharField('title', blank=True, null=False, max_length=255) module = models.ForeignKey(Module, blank=False, null=False, on_delete=models.CASCADE) # a user can define her own objectives, hence this optional param user = models.ForeignKey(get_user_model(), blank=True, null=True, on_delete=models.CASCADE) def __str__(self): return 'ObjectiveGroup {}-{}-{}'.format(self.id, self.module, self.title) class Objective(models.Model): class Meta: verbose_name = 'Lernziel' verbose_name_plural = 'Lernziele' text = models.CharField('text', blank=True, null=False, max_length=255) group = models.ForeignKey(ObjectiveGroup, blank=False, null=False, on_delete=models.CASCADE) def __str__(self): return 'Objective {}-{}'.format(self.id, self.text) class ObjectiveProgressStatus(models.Model): class Meta: verbose_name = 'Lernzielstatus' verbose_name_plural = 'Lernzielstatus' done = models.BooleanField('Lernziel erledigt?', default=False) objective = models.ForeignKey(Objective, blank=False, null=False, on_delete=models.CASCADE) user = models.ForeignKey(get_user_model(), blank=True, null=True, on_delete=models.CASCADE) def __str__(self): return 'Lernzielstatus {}-{}'.format(self.objective, self.done)