46 lines
1.7 KiB
Python
46 lines
1.7 KiB
Python
from django.contrib.auth import get_user_model
|
|
from django.db import models
|
|
|
|
from books.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, related_name='objective_groups')
|
|
# 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,
|
|
related_name='objectives')
|
|
|
|
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,
|
|
related_name='objective_progress')
|
|
user = models.ForeignKey(get_user_model(), blank=True, null=True, on_delete=models.CASCADE)
|
|
|
|
def __str__(self):
|
|
return 'Lernzielstatus {}-{}'.format(self.objective, self.done)
|