from django.db import models from django.utils.translation import gettext_lazy as _ class AttachmentType(models.Model): ENABLED = 0 LOCKED = 1 DISABLED = 2 name = models.CharField(max_length=255) extensions = models.CharField(max_length=255) mimetypes = models.CharField(null=True, blank=True, max_length=255) size_limit = models.PositiveIntegerField(default=1024) status = models.PositiveIntegerField( default=ENABLED, choices=[ (ENABLED, _("Allow uploads and downloads")), (LOCKED, _("Allow downloads only")), (DISABLED, _("Disallow both uploading and downloading")), ], ) limit_uploads_to = models.ManyToManyField( "misago_acl.Role", related_name="+", blank=True ) limit_downloads_to = models.ManyToManyField( "misago_acl.Role", related_name="+", blank=True ) def __str__(self): return self.name @property def is_enabled(self): return self.status == AttachmentType.ENABLED @property def is_locked(self): return self.status == AttachmentType.LOCKED @property def extensions_list(self): if self.extensions: return self.extensions.split(",") return [] @property def mimetypes_list(self): if self.mimetypes: return self.mimetypes.split(",") return []