dms/evolus/models.py

61 lines
1.5 KiB
Python

"""
This module defines the structure and properties of documents.
"""
from django.db import models
from closuretree.models import ClosureModel
from jci.models import Standard
class Audience(ClosureModel):
name = models.CharField(max_length=50)
parent = models.ForeignKey('self', related_name='children', null=True, blank=True)
def __str__(self):
return self.name
class Site(models.Model):
name = models.CharField(max_length=50)
def __str__(self):
return self.name
class Meta:
ordering = ['name']
class Structure(ClosureModel):
name = models.CharField(max_length=50)
acronym = models.CharField(max_length=20, null=True, blank=True)
parent = models.ForeignKey('self', related_name='children', null=True, blank=True)
def __str__(self):
return self.name
class DocumentType(models.Model):
name = models.CharField(max_length=50)
level = models.IntegerField()
template = models.FileField(upload_to='documents_templates/', null=True, blank=True)
def __str__(self):
return self.name
class Meta:
ordering = ['level']
class Document(models.Model):
audiences = models.ManyToManyField(Audience)
sites = models.ManyToManyField(Site)
standards = models.ManyToManyField(Standard, related_name='documents')
structures = models.ManyToManyField(Structure)
title = models.CharField(max_length=255)
overview = models.TextField(blank=True, null=True)
type = models.ForeignKey(DocumentType, null=True)
def __str__(self):
return self.title