Files
vontor-cz/backend/social/pages/models.py

50 lines
1.5 KiB
Python

from django.db import models
from django.conf import settings
from vontor_cz.custom_fields import WebPImageField
# Create your models here.
class Hub(models.Model):
name = models.CharField(max_length=255, unique=True)
description = models.TextField(blank=True, null=True)
owner = models.ForeignKey(
settings.AUTH_USER_MODEL,
on_delete=models.SET_NULL,
null=True,
related_name='owned_hubs'
)
icon = WebPImageField(upload_to='hub_icons/', null=True, blank=True)
banner = WebPImageField(upload_to='hub_banners/', null=True, blank=True)
members = models.ManyToManyField(
settings.AUTH_USER_MODEL,
related_name='hubs',
blank=True
)
#TODO:
def __str__(self):
return self.name
class HubPermission(models.Model):
hub = models.ForeignKey(Hub, on_delete=models.CASCADE, related_name='moderators')
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
changing_name = models.BooleanField(default=False)
changing_description = models.BooleanField(default=False)
changing_icon = models.BooleanField(default=False)
changing_banner = models.BooleanField(default=False)
managing_members = models.BooleanField(default=False)
managing_posts = models.BooleanField(default=False)
managing_chats = models.BooleanField(default=False)
class Meta:
unique_together = ('hub', 'user')
def __str__(self):
return f"{self.user} moderates {self.hub}"