84 lines
3.7 KiB
Python
84 lines
3.7 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
|
|
|
|
class StandardCommentRate(models.Model):
|
|
#standard = models.ForeignKey("Standards", on_delete=models.CASCADE)
|
|
rated_by = models.ForeignKey(User, on_delete=models.PROTECT)
|
|
rate_stats = models.IntegerField(default=0)
|
|
oncomment = models.ForeignKey("StandardComments", on_delete=models.CASCADE)
|
|
|
|
class StandardComments(models.Model):
|
|
standard = models.ForeignKey("Standards", on_delete=models.CASCADE)
|
|
content = models.CharField(max_length=200, blank=False, default="")
|
|
comment_by = models.ForeignKey(User, on_delete=models.CASCADE)
|
|
comment_on = models.DateTimeField(default=timezone.now, blank=True)
|
|
last_modified_on = models.DateTimeField(default=timezone.now, blank=True)
|
|
|
|
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 = models.BooleanField(default=False)
|
|
|
|
freefield_title = models.CharField(max_length=200, blank=False, default="")
|
|
freefield_content = models.TextField(max_length=500, blank=False, default="")
|
|
|
|
|
|
# USER
|
|
# VERTRETER
|
|
#representative = models.ForeignKey(User, on_delete=models.PROTECT, related_name="user_repr", blank=True, null=True)
|
|
representative = models.ManyToManyField(User, blank=True, related_name='user_rep')
|
|
# AUSFÜHRENDER
|
|
#executor = models.ForeignKey(User, on_delete=models.PROTECT, related_name="user_executor", blank=True, null=True)
|
|
executor = models.ManyToManyField(User, blank=True, related_name='user_ex')
|
|
# VERANTWORTLICHER
|
|
#authority = models.ForeignKey(User, on_delete=models.PROTECT, related_name="user_authority", blank=True, null=True)
|
|
authority = models.ManyToManyField(User, blank=True, related_name='user_aut')
|
|
|
|
# FILES
|
|
addedfiles = models.ManyToManyField(DataFile, blank=True)
|
|
# VERLINKTE STANDARDS
|
|
linked_standards = models.ManyToManyField('Standards', blank=True)
|
|
# GORUPS
|
|
visibleby = models.ManyToManyField(AgencyGroup, blank=True)
|
|
|
|
#indi_name = models.CharField(max_length=200, blank=False, default="")
|
|
#indi_conmtent = models.CharField(max_length=500, blank=False, default="")
|
|
|
|
# FIELD FOR AGENCYNETWORK
|
|
comments = models.ManyToManyField("StandardComments", blank=True, related_name='comments')
|
|
parent_standard = models.ForeignKey("Standards", related_name='partentedstandard', on_delete=models.PROTECT, blank=True, null=True, default=None)
|
|
shared_on = models.DateTimeField(default=timezone.now, blank=True)
|
|
|
|
|
|
|
|
#Counter, wie oft dieser Standard in eine andere Agentur kopiert wird
|
|
agencynetworkcounter = models.IntegerField(default=0)
|
|
|
|
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})
|