digitaleagenturnc/organizer/models.py

80 lines
2.9 KiB
Python

from django.db import models
from users.models import Agency, AgencyGroup
from django.urls import reverse
from colorful.fields import RGBColorField
from django.contrib.auth.models import User
import datetime
'''
Model Quicklinks
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 QuickLinks(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)
link = models.CharField(max_length=200, blank=False)
logo = models.ImageField(default='agencymain/linkdefault.png', upload_to='agencymain', blank=True)
def __str__(self):
return f'{self.name}'
def get_absolute_url(self):
return reverse('ql-update', kwargs={'pk':self.pk})
@property
def get_photo_url(self):
if self.logo and hasattr(self.logo, 'url'):
return self.logo.url
else:
return "/media/agencymain/linkdefault.png"
class AGContactsCagetory(models.Model):
agency = models.ForeignKey(Agency, on_delete=models.PROTECT)
name = models.CharField(default="", max_length=200, blank=False)
def __str__(self):
return f'{self.name}'
class AGContacts(models.Model):
agency = models.ForeignKey(Agency, on_delete=models.PROTECT)
personname = models.CharField(default="", max_length=200, blank=False)
company = models.CharField(default="", max_length=200, blank=False)
mail = models.CharField(default="", max_length=200, blank=False)
phone1 = models.CharField(default="", max_length=200, blank=False)
phone2 = models.CharField(default="", max_length=200, blank=False)
street = models.CharField(default="", max_length=200, blank=True)
city = models.CharField(default="", max_length=200, blank=True)
plz = models.CharField(default="", max_length=5, blank=True)
desc = models.TextField(max_length=3000, blank=True)
category = models.ForeignKey("AGContactsCagetory", default=None, on_delete=models.SET_DEFAULT, null=True, blank=True)
def __str__(self):
return f'{self.company}'
def get_absolute_url(self):
return reverse('cont-update', kwargs={'pk':self.pk})
class AGPassword(models.Model):
agency = models.ForeignKey(Agency, on_delete=models.PROTECT)
name = models.CharField(default="", max_length=200, blank=False)
agpass_username = models.CharField(default="", max_length=200, blank=False)
compass = models.CharField(default="", max_length=200, blank=False)
link = models.CharField(default="", max_length=200, blank=False)
visibleby = models.ManyToManyField(AgencyGroup, blank=True)
def __str__(self):
return f'{self.name}'
def get_absolute_url(self):
return reverse('aggpass-update', kwargs={'pk':self.pk})