digitaleagenturnc/standards/models.py

52 lines
2.1 KiB
Python

from django.db import models
from django.contrib.auth.models import User
from users.models import Agency
from django.urls import reverse
from areas.models import Areas
from tasks.models import Tasks
from cloud.models import DataFile
from users.models import AgencyGroup
import datetime
from django.utils import timezone
#from ckeditor_uploader.fields import RichTextUploadingField
class Standards(models.Model):
agency = models.ForeignKey(Agency, on_delete=models.CASCADE)
area = models.ForeignKey(Areas, on_delete=models.CASCADE)
task = models.ForeignKey(Tasks, on_delete=models.CASCADE)
name = models.CharField(max_length=200, blank=False, default="")
content = models.TextField(blank=True, verbose_name='Inhalt', default="")
created_standard_by = models.ForeignKey(User, on_delete=models.PROTECT)
created_standard_date = models.DateTimeField(default=timezone.now, blank=True)
published_by = models.ForeignKey(User, on_delete=models.PROTECT, related_name='user_published_standard', default=None)
published_on = models.DateTimeField(default=timezone.now, blank=True)
last_modified_by = models.ForeignKey(User, on_delete=models.PROTECT, related_name='user_modified_standard', default=None)
last_modified_on = models.DateTimeField(default=timezone.now, blank=True)
public_a = models.BooleanField(default=False)
# USER
# VERTRETER
representative_a = models.ForeignKey(User, on_delete=models.PROTECT, related_name="user_repr", blank=True, null=True)
# AUSFÜHRENDER
executor_a = models.ForeignKey(User, on_delete=models.PROTECT, related_name="user_executor", blank=True, null=True)
# VERANTWORTLICHER
authority_a = models.ForeignKey(User, on_delete=models.PROTECT, related_name="user_authority", blank=True, null=True)
# FILES
addedfiles_a = models.ManyToManyField(DataFile, blank=True)
# VERLINKTE STANDARDS
linked_standards_a = models.ManyToManyField('Standards', blank=True)
# GORUPS
visibleby_a = models.ManyToManyField(AgencyGroup, blank=True)
def __str__(self):
return f'{self.name}'
# Hier Path für Templates des Models mit Parametern
def get_absolute_url(self):
return reverse('standards-update', kwargs={'pk':self.pk})