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 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) rated = models.IntegerField() 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) 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})