Change to content to Orderable

This commit is contained in:
2024-09-16 20:16:16 +02:00
parent a70db94b2b
commit d1fe5bb187
37 changed files with 718 additions and 371 deletions

View File

@@ -0,0 +1,47 @@
# Generated by Django 5.0.8 on 2024-09-16 12:36
import django.db.models.deletion
import modelcluster.fields
import wagtail.fields
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('home', '0005_rename_hf4img_homepage_section_five_img_and_more'),
('wagtailimages', '0026_delete_uploadedimage'),
]
operations = [
migrations.RenameField(
model_name='homepage',
old_name='section_one_img',
new_name='intro_image',
),
migrations.RenameField(
model_name='homepage',
old_name='section_one_text',
new_name='intro_text',
),
migrations.RenameField(
model_name='homepage',
old_name='section_one_title',
new_name='intro_title',
),
migrations.CreateModel(
name='HomePageSections',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('sort_order', models.IntegerField(blank=True, editable=False, null=True)),
('section_title', wagtail.fields.RichTextField(blank=True)),
('section_text', wagtail.fields.RichTextField(blank=True)),
('page', modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='homepage_sections', to='home.homepage')),
('section_image', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.image')),
],
options={
'ordering': ['sort_order'],
'abstract': False,
},
),
]

View File

@@ -0,0 +1,61 @@
# Generated by Django 5.0.8 on 2024-09-16 12:39
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('home', '0006_rename_section_one_img_homepage_intro_image_and_more'),
]
operations = [
migrations.RemoveField(
model_name='homepage',
name='section_five_img',
),
migrations.RemoveField(
model_name='homepage',
name='section_five_text',
),
migrations.RemoveField(
model_name='homepage',
name='section_five_title',
),
migrations.RemoveField(
model_name='homepage',
name='section_four_img',
),
migrations.RemoveField(
model_name='homepage',
name='section_four_text',
),
migrations.RemoveField(
model_name='homepage',
name='section_four_title',
),
migrations.RemoveField(
model_name='homepage',
name='section_three_img',
),
migrations.RemoveField(
model_name='homepage',
name='section_three_text',
),
migrations.RemoveField(
model_name='homepage',
name='section_three_title',
),
migrations.RemoveField(
model_name='homepage',
name='section_two_img',
),
migrations.RemoveField(
model_name='homepage',
name='section_two_text',
),
migrations.RemoveField(
model_name='homepage',
name='section_two_title',
),
]

View File

@@ -0,0 +1,18 @@
# Generated by Django 5.0.8 on 2024-09-16 13:01
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('home', '0007_remove_homepage_section_five_img_and_more'),
]
operations = [
migrations.AlterField(
model_name='homepagesections',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
]

View File

@@ -2,62 +2,45 @@ from __future__ import unicode_literals
from django.db import models
from wagtail.models import Page
from wagtail.models import Page, Orderable
from wagtail.fields import RichTextField
from wagtail.admin.panels import FieldPanel, MultiFieldPanel
from wagtail.admin.panels import FieldPanel, MultiFieldPanel, InlinePanel
from modelcluster.models import ParentalKey
from saburly.custom_editor import FULL_EDITOR
class HomePage(Page):
intro_title = RichTextField(blank=True, features=FULL_EDITOR)
intro_text = RichTextField(blank=True, features=FULL_EDITOR)
intro_image = RichTextField(blank=True, features=FULL_EDITOR)
section_one_title = RichTextField(blank=True, features=FULL_EDITOR)
section_one_text = RichTextField(blank=True, features=FULL_EDITOR)
section_one_img = RichTextField(blank=True, features=FULL_EDITOR)
section_two_title = RichTextField(blank=True, features=FULL_EDITOR)
section_two_text = RichTextField(blank=True, features=FULL_EDITOR)
section_two_img = RichTextField(blank=True, features=FULL_EDITOR)
section_three_title = RichTextField(blank=True, features=FULL_EDITOR)
section_three_text = RichTextField(blank=True, features=FULL_EDITOR)
section_three_img = RichTextField(blank=True, features=FULL_EDITOR)
section_four_title = RichTextField(blank=True, features=FULL_EDITOR)
section_four_text = RichTextField(blank=True, features=FULL_EDITOR)
section_four_img = RichTextField(blank=True, features=FULL_EDITOR)
section_five_title = RichTextField(blank=True, features=FULL_EDITOR)
section_five_text = RichTextField(blank=True, features=FULL_EDITOR)
section_five_img = RichTextField(blank=True, features=FULL_EDITOR)
content_panels = Page.content_panels + [
MultiFieldPanel([
FieldPanel('section_one_title', classname="full"),
FieldPanel('section_one_text', classname="full"),
FieldPanel('section_one_img', classname="full"),
], heading="Section One"),
FieldPanel('intro_title', classname="full"),
FieldPanel('intro_text', classname="full"),
FieldPanel('intro_image', classname="full"),
], heading="Intro Section"),
InlinePanel('homepage_sections', heading="Sections Home", label="Sections Home"),
MultiFieldPanel([
FieldPanel('section_two_title', classname="full"),
FieldPanel('section_two_text', classname="full"),
FieldPanel('section_two_img', classname="full"),
], heading="Section Two"),
MultiFieldPanel([
FieldPanel('section_three_title', classname="full"),
FieldPanel('section_three_text', classname="full"),
FieldPanel('section_three_img', classname="full"),
], heading="Section Three"),
MultiFieldPanel([
FieldPanel('section_four_title', classname="full"),
FieldPanel('section_four_text', classname="full"),
FieldPanel('section_four_img', classname="full"),
], heading="Section Four"),
MultiFieldPanel([
FieldPanel('section_five_title', classname="full"),
FieldPanel('section_five_text', classname="full"),
FieldPanel('section_five_img', classname="full"),
], heading="Section Five"),
]
class HomePageSections(Orderable):
page = ParentalKey(HomePage, on_delete=models.CASCADE, related_name='homepage_sections')
section_title = RichTextField(blank=True, features=FULL_EDITOR)
section_text = RichTextField(blank=True, features=FULL_EDITOR)
section_image = models.ForeignKey(
'wagtailimages.Image',
null=True,
blank=True,
on_delete=models.SET_NULL,
related_name='+'
)
panels = [
FieldPanel('section_title'),
FieldPanel('section_text'),
FieldPanel('section_image'),
]