attachmenttype.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. from django.db import models
  2. from django.utils.translation import gettext_lazy as _
  3. class AttachmentType(models.Model):
  4. ENABLED = 0
  5. LOCKED = 1
  6. DISABLED = 2
  7. name = models.CharField(max_length=255)
  8. extensions = models.CharField(max_length=255)
  9. mimetypes = models.CharField(null=True, blank=True, max_length=255)
  10. size_limit = models.PositiveIntegerField(default=1024)
  11. status = models.PositiveIntegerField(
  12. default=ENABLED,
  13. choices=[
  14. (ENABLED, _("Allow uploads and downloads")),
  15. (LOCKED, _("Allow downloads only")),
  16. (DISABLED, _("Disallow both uploading and downloading")),
  17. ],
  18. )
  19. limit_uploads_to = models.ManyToManyField(
  20. "misago_acl.Role", related_name="+", blank=True
  21. )
  22. limit_downloads_to = models.ManyToManyField(
  23. "misago_acl.Role", related_name="+", blank=True
  24. )
  25. def __str__(self):
  26. return self.name
  27. @property
  28. def is_enabled(self):
  29. return self.status == AttachmentType.ENABLED
  30. @property
  31. def extensions_list(self):
  32. if self.extensions:
  33. return self.extensions.split(",")
  34. return []
  35. @property
  36. def mimetypes_list(self):
  37. if self.mimetypes:
  38. return self.mimetypes.split(",")
  39. return []