|
@@ -1,4 +1,5 @@
|
|
from django.db import models
|
|
from django.db import models
|
|
|
|
+from django.utils.translation import gettext
|
|
from mptt.models import MPTTModel, TreeForeignKey
|
|
from mptt.models import MPTTModel, TreeForeignKey
|
|
|
|
|
|
|
|
|
|
@@ -10,45 +11,77 @@ class Theme(MPTTModel):
|
|
is_default = models.BooleanField(default=False)
|
|
is_default = models.BooleanField(default=False)
|
|
is_active = 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:
|
|
class MPTTMeta:
|
|
order_insertion_by = ["is_default", "name"]
|
|
order_insertion_by = ["is_default", "name"]
|
|
|
|
|
|
-# class Css(models.Model):
|
|
|
|
-# theme = models.ForeignKey(Theme, on_delete=models.PROTECT, related_name="css")
|
|
|
|
|
|
+ def __str__(self):
|
|
|
|
+ if self.is_default:
|
|
|
|
+ return gettext("Default Misago Theme")
|
|
|
|
+ return self.name
|
|
|
|
+
|
|
|
|
+ @property
|
|
|
|
+ def level_range(self):
|
|
|
|
+ return range(self.level)
|
|
|
|
|
|
-# 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)
|
|
|
|
|
|
+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()
|
|
|
|
|
|
-# uploaded_on = models.DateTimeField(auto_now_add=True)
|
|
|
|
-# updated_on = models.DateTimeField(auto_now=True)
|
|
|
|
|
|
+ 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 Font(models.Model):
|
|
|
|
-# theme = models.ForeignKey(Theme, on_delete=models.PROTECT, related_name="fonts")
|
|
|
|
|
|
+ class Meta:
|
|
|
|
+ ordering = ["order"]
|
|
|
|
|
|
-# name = models.CharField(max_length=255)
|
|
|
|
-# file = models.FileField(max_length=255)
|
|
|
|
-# type = models.CharField(max_length=255)
|
|
|
|
-# size = models.PositiveIntegerField()
|
|
|
|
|
|
+ def __str__(self):
|
|
|
|
+ return self.name
|
|
|
|
|
|
-# uploaded_on = models.DateTimeField(auto_now_add=True)
|
|
|
|
-# updated_on = models.DateTimeField(auto_now=True)
|
|
|
|
|
|
|
|
|
|
+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()
|
|
|
|
|
|
-# class Image(models.Model):
|
|
|
|
-# theme = models.ForeignKey(Theme, on_delete=models.PROTECT, related_name="images")
|
|
|
|
|
|
+ uploaded_on = models.DateTimeField(auto_now_add=True)
|
|
|
|
+ updated_on = models.DateTimeField(auto_now=True)
|
|
|
|
|
|
-# name = models.CharField(max_length=255)
|
|
|
|
-# file = models.ImageField(max_length=255)
|
|
|
|
-# type = models.CharField(max_length=255)
|
|
|
|
-# width = models.PositiveIntegerField()
|
|
|
|
-# heigh = PositiveIntegerField()
|
|
|
|
-# size = models.PositiveIntegerField()
|
|
|
|
|
|
+ class Meta:
|
|
|
|
+ ordering = ["name"]
|
|
|
|
|
|
-# uploaded_on = models.DateTimeField(auto_now_add=True)
|
|
|
|
-# updated_on = models.DateTimeField(auto_now=True)
|
|
|
|
|
|
+ def __str__(self):
|
|
|
|
+ return self.name
|