dms/evolus/models.py

61 lines
1.5 KiB
Python
Raw Normal View History

"""
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
2017-09-18 13:12:13 +02:00
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)
2017-09-18 15:49:32 +02:00
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
2017-09-18 13:12:13 +02:00
2017-09-18 15:49:32 +02:00
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):
2017-09-18 13:12:13 +02:00
audiences = models.ManyToManyField(Audience)
sites = models.ManyToManyField(Site)
standards = models.ManyToManyField(Standard, related_name='documents')
2017-09-18 13:12:13 +02:00
structures = models.ManyToManyField(Structure)
title = models.CharField(max_length=255)
overview = models.TextField(blank=True, null=True)
2017-09-18 15:49:32 +02:00
type = models.ForeignKey(DocumentType, null=True)
def __str__(self):
2017-09-18 15:49:32 +02:00
return self.title