attachmenttype.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. from django.db import models
  2. from django.utils.translation import ugettext_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('misago_acl.Role', related_name='+', blank=True)
  20. limit_downloads_to = models.ManyToManyField('misago_acl.Role', related_name='+', blank=True)
  21. def __str__(self):
  22. return self.name
  23. @property
  24. def is_enabled(self):
  25. return self.status == AttachmentType.ENABLED
  26. @property
  27. def extensions_list(self):
  28. if self.extensions:
  29. return self.extensions.split(',')
  30. return []
  31. @property
  32. def mimetypes_list(self):
  33. if self.mimetypes:
  34. return self.mimetypes.split(',')
  35. return []