40 lines
1.4 KiB
Python
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.PROTECT)
|
|
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})
|
|
|
|
|