digitaleagenturnc/areas/models.py

40 lines
1.4 KiB
Python

from django.db import models
from users.models import Agency
from django.urls import reverse
from colorful.fields import RGBColorField
from django.contrib.auth.models import User
import datetime
'''
Model Areas
Verwaltet alle gespeicherten Bereiche für die Agentur. Wird eine neue erstellt,
wird dieser die Agency zugewiesen. Das Farb-Feld ist für später, damit im
Ogranigramm eine Farbe für den jeweiligen Bereich festgelegt wird.
users speichert alle primary-Keys der User, welche diesem Bereich zugeordnet sind!
'''
class Areas(models.Model):
# Wenn die Area gelöscht wird, wird NICHT die Agency gelöscht
agency = models.ForeignKey(Agency, on_delete=models.CASCADE)
name = models.CharField(max_length=200, blank=False)
color = RGBColorField(colors=['#FFB900', '#E74856', '#0078D7', '#0099BC', '#7A7574'], default='#0099BC', blank=True)
desc = models.TextField(max_length=3000, blank=True)
usersfield = models.ManyToManyField(User, blank=True, related_name='users_in_area')
created_area_by = models.ForeignKey(User, on_delete=models.SET_NULL, null=True)
created_area_date = models.DateField(default=datetime.date.today, blank=True)
visible = models.BooleanField(default=True)
areaorder = 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('areas-update', kwargs={'pk':self.pk})