from django.db import models from closuretree.models import ClosureModel class Section(models.Model): name = models.CharField(max_length=255) def __str__(self): return self.name class Meta: ordering = ('name',) class Headline(models.Model): name = models.CharField(max_length=255) section = models.ForeignKey(Section, null=True, blank=True) def __str__(self): return self.name class Goal(ClosureModel): name = models.CharField(max_length=255, unique=True) parent = models.ForeignKey('self', related_name='children', null=True, blank=True) acronym = models.CharField(max_length=10, blank=True, null=True) overview = models.TextField(max_length=2000, null=True, blank=True) order = models.IntegerField(blank=True, null=True) headline = models.ForeignKey(Headline, blank=True, null=True) def __str__(self): return self.name class Standard(ClosureModel): name = models.CharField(max_length=255) parent = models.ForeignKey('self', related_name='children', null=True, blank=True) goal = models.ForeignKey(Goal, related_name='standards') @property def goal_acronym(self): return self.goal.get_root().name @property def structure(self): return '.'.join([x.order if x.order else x.name for x in self.goal.get_ancestors()]) def __str__(self): return self.name