Browse Source

Add basic theme model

rafalp 6 years ago
parent
commit
7ab4818635

+ 35 - 0
misago/theming/migrations/0001_initial.py

@@ -0,0 +1,35 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.16 on 2018-12-26 16:07
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+import mptt.fields
+
+
+class Migration(migrations.Migration):
+
+    initial = True
+
+    dependencies = [
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='Theme',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('name', models.CharField(max_length=255)),
+                ('is_default', models.BooleanField(default=False)),
+                ('is_active', models.BooleanField(default=False)),
+                ('lft', models.PositiveIntegerField(db_index=True, editable=False)),
+                ('rght', models.PositiveIntegerField(db_index=True, editable=False)),
+                ('tree_id', models.PositiveIntegerField(db_index=True, editable=False)),
+                ('level', models.PositiveIntegerField(db_index=True, editable=False)),
+                ('parent', mptt.fields.TreeForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='children', to='misago_theming.Theme')),
+            ],
+            options={
+                'abstract': False,
+            },
+        ),
+    ]

+ 24 - 0
misago/theming/migrations/0002_create_default_theme.py

@@ -0,0 +1,24 @@
+# Generated by Django 1.11.16 on 2018-12-26 16:11
+from django.db import migrations
+
+
+def create_default_theme(apps, schema_editor):
+    Theme = apps.get_model("misago_theming", "Theme")
+    Theme.objects.create(
+        name="default",
+        is_default=True,
+        is_active=True,
+        lft=1,
+        rght=2,
+        tree_id=0,
+        level=0,
+    )
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('misago_theming', '0001_initial'),
+    ]
+
+    operations = [migrations.RunPython(create_default_theme)]

+ 0 - 0
misago/theming/migrations/__init__.py


+ 54 - 0
misago/theming/models.py

@@ -0,0 +1,54 @@
+from django.db import models
+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)
+
+    class MPTTMeta:
+        order_insertion_by = ["is_default", "name"]
+
+# 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 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 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 = PositiveIntegerField()
+#     size = models.PositiveIntegerField()
+
+#     uploaded_on = models.DateTimeField(auto_now_add=True)
+#     updated_on = models.DateTimeField(auto_now=True)