123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- from django.db import models
- from django.utils.translation import gettext
- from mptt.models import MPTTModel, TreeForeignKey
- class Theme(MPTTModel):
- parent = TreeForeignKey(
- "self", on_delete=models.PROTECT, null=True, blank=True, related_name="children"
- )
- name = models.CharField(max_length=255)
- is_default = models.BooleanField(default=False)
- is_active = models.BooleanField(default=False)
- version = models.CharField(max_length=255, null=True, blank=True)
- author = models.CharField(max_length=255, null=True, blank=True)
- url = models.URLField(max_length=255, null=True, blank=True)
- class MPTTMeta:
- order_insertion_by = ["is_default", "name"]
- def __str__(self):
- if self.is_default:
- return gettext("Default Misago Theme")
- return self.name
- @property
- def level_range(self):
- return range(self.level)
- class Css(models.Model):
- theme = models.ForeignKey(Theme, on_delete=models.PROTECT, related_name="css")
- name = models.CharField(max_length=255)
- url = models.URLField(max_length=255, null=True, blank=True)
- file = models.ImageField(max_length=255, null=True, blank=True)
- size = models.PositiveIntegerField()
- order = models.IntegerField(default=0)
- is_enabled = models.BooleanField(default=True)
- uploaded_on = models.DateTimeField(auto_now_add=True)
- updated_on = models.DateTimeField(auto_now=True)
- class Meta:
- ordering = ["order"]
- def __str__(self):
- return self.name
- class Font(models.Model):
- theme = models.ForeignKey(Theme, on_delete=models.PROTECT, related_name="fonts")
- name = models.CharField(max_length=255)
- file = models.FileField(max_length=255)
- type = models.CharField(max_length=255)
- size = models.PositiveIntegerField()
- uploaded_on = models.DateTimeField(auto_now_add=True)
- updated_on = models.DateTimeField(auto_now=True)
- class Meta:
- ordering = ["name"]
- def __str__(self):
- return self.name
- class Image(models.Model):
- theme = models.ForeignKey(Theme, on_delete=models.PROTECT, related_name="images")
- name = models.CharField(max_length=255)
- file = models.ImageField(max_length=255)
- type = models.CharField(max_length=255)
- width = models.PositiveIntegerField()
- heigh = models.PositiveIntegerField()
- size = models.PositiveIntegerField()
- uploaded_on = models.DateTimeField(auto_now_add=True)
- updated_on = models.DateTimeField(auto_now=True)
- class Meta:
- ordering = ["name"]
- def __str__(self):
- return self.name
|