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,44 @@
# Generated by Django 5.0.8 on 2024-09-16 12:57
import django.db.models.deletion
import modelcluster.fields
import wagtail.fields
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('about', '0003_rename_af1img_aboutpage_section_one_img_and_more'),
('wagtailimages', '0026_delete_uploadedimage'),
]
operations = [
migrations.RemoveField(
model_name='aboutpage',
name='section_two_img',
),
migrations.RemoveField(
model_name='aboutpage',
name='section_two_text',
),
migrations.RemoveField(
model_name='aboutpage',
name='section_two_title',
),
migrations.CreateModel(
name='AboutPageSections',
fields=[
('id', models.BigAutoField(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='sections_about', to='about.aboutpage')),
('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,28 @@
# Generated by Django 5.0.8 on 2024-09-16 12:58
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('about', '0004_remove_aboutpage_section_two_img_and_more'),
]
operations = [
migrations.RenameField(
model_name='aboutpage',
old_name='section_one_img',
new_name='intro_image',
),
migrations.RenameField(
model_name='aboutpage',
old_name='section_one_text',
new_name='intro_text',
),
migrations.RenameField(
model_name='aboutpage',
old_name='section_one_title',
new_name='intro_title',
),
]

View File

@@ -0,0 +1,32 @@
# Generated by Django 5.0.8 on 2024-09-16 13:54
import wagtail.fields
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('about', '0005_rename_section_one_img_aboutpage_intro_image_and_more'),
]
operations = [
migrations.AddField(
model_name='aboutpage',
name='section_one_image',
field=wagtail.fields.RichTextField(blank=True),
),
migrations.AddField(
model_name='aboutpage',
name='section_one_text',
field=wagtail.fields.RichTextField(blank=True),
),
migrations.AddField(
model_name='aboutpage',
name='section_one_title',
field=wagtail.fields.RichTextField(blank=True),
),
migrations.DeleteModel(
name='AboutPageSections',
),
]

View File

@@ -10,25 +10,25 @@ from saburly.custom_editor import FULL_EDITOR
class AboutPage(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_one_image = 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"),
MultiFieldPanel([
FieldPanel('section_two_title', classname="full"),
FieldPanel('section_two_text', classname="full"),
FieldPanel('section_two_img', classname="full"),
], heading="Section Two"),
FieldPanel('section_one_title', classname="full"),
FieldPanel('section_one_text', classname="full"),
FieldPanel('section_one_image', classname="full"),
], heading="Section One"),
]

Binary file not shown.

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'),
]

View File

@@ -97,6 +97,8 @@ DATABASES = {
}
}
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
# Password validation
# https://docs.djangoproject.com/en/5.1/ref/settings/#auth-password-validators

View File

@@ -0,0 +1,31 @@
# Generated by Django 5.0.8 on 2024-09-15 18:45
import django.db.models.deletion
import modelcluster.fields
import wagtail.fields
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('services', '0005_rename_carouse_image_servicespagecarousel_carousel_image_and_more'),
]
operations = [
migrations.CreateModel(
name='ServicesPageSections',
fields=[
('id', models.BigAutoField(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)),
('section_image', wagtail.fields.RichTextField(blank=True)),
('page', modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='sections_services', to='services.servicespage')),
],
options={
'ordering': ['sort_order'],
'abstract': False,
},
),
]

View File

@@ -0,0 +1,20 @@
# Generated by Django 5.0.8 on 2024-09-16 12:06
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('services', '0006_servicespagesections'),
('wagtailimages', '0026_delete_uploadedimage'),
]
operations = [
migrations.AlterField(
model_name='servicespagesections',
name='section_image',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.image'),
),
]

View File

@@ -0,0 +1,34 @@
# Generated by Django 5.0.8 on 2024-09-16 12:14
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('services', '0007_alter_servicespagesections_section_image'),
('wagtailimages', '0026_delete_uploadedimage'),
]
operations = [
migrations.RenameField(
model_name='servicespage',
old_name='section_one_text',
new_name='intro_text',
),
migrations.RenameField(
model_name='servicespage',
old_name='section_one_title',
new_name='intro_title',
),
migrations.RemoveField(
model_name='servicespage',
name='section_one_img',
),
migrations.AddField(
model_name='servicespage',
name='intro_image',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.image'),
),
]

View File

@@ -0,0 +1,80 @@
# Generated by Django 5.0.8 on 2024-09-16 12:23
import django.db.models.deletion
import modelcluster.fields
import wagtail.fields
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('services', '0008_rename_section_one_text_servicespage_intro_text_and_more'),
('wagtailimages', '0026_delete_uploadedimage'),
]
operations = [
migrations.RemoveField(
model_name='servicespage',
name='section_five_img',
),
migrations.RemoveField(
model_name='servicespage',
name='section_five_text',
),
migrations.RemoveField(
model_name='servicespage',
name='section_five_title',
),
migrations.RemoveField(
model_name='servicespage',
name='section_four_img',
),
migrations.RemoveField(
model_name='servicespage',
name='section_four_text',
),
migrations.RemoveField(
model_name='servicespage',
name='section_four_title',
),
migrations.RemoveField(
model_name='servicespage',
name='section_three_img',
),
migrations.RemoveField(
model_name='servicespage',
name='section_three_text',
),
migrations.RemoveField(
model_name='servicespage',
name='section_three_title',
),
migrations.RemoveField(
model_name='servicespage',
name='section_two_img',
),
migrations.RemoveField(
model_name='servicespage',
name='section_two_text',
),
migrations.RemoveField(
model_name='servicespage',
name='section_two_title',
),
migrations.CreateModel(
name='ServicesPageSubSection',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('sort_order', models.IntegerField(blank=True, editable=False, null=True)),
('sub_section_title', wagtail.fields.RichTextField(blank=True)),
('sub_section_text', wagtail.fields.RichTextField(blank=True)),
('page', modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='subsections_services', to='services.servicespage')),
('sub_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,17 @@
# Generated by Django 5.0.8 on 2024-09-16 12:52
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('services', '0009_remove_servicespage_section_five_img_and_more'),
]
operations = [
migrations.RemoveField(
model_name='servicespagesubsection',
name='sub_section_title',
),
]

View File

@@ -0,0 +1,61 @@
# Generated by Django 5.0.8 on 2024-09-16 12:57
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('services', '0010_remove_servicespagesubsection_sub_section_title'),
]
operations = [
migrations.RemoveField(
model_name='servicespage',
name='sub_section_five',
),
migrations.RemoveField(
model_name='servicespage',
name='sub_section_five_img',
),
migrations.RemoveField(
model_name='servicespage',
name='sub_section_four',
),
migrations.RemoveField(
model_name='servicespage',
name='sub_section_four_img',
),
migrations.RemoveField(
model_name='servicespage',
name='sub_section_one',
),
migrations.RemoveField(
model_name='servicespage',
name='sub_section_one_img',
),
migrations.RemoveField(
model_name='servicespage',
name='sub_section_six',
),
migrations.RemoveField(
model_name='servicespage',
name='sub_section_six_img',
),
migrations.RemoveField(
model_name='servicespage',
name='sub_section_three',
),
migrations.RemoveField(
model_name='servicespage',
name='sub_section_three_img',
),
migrations.RemoveField(
model_name='servicespage',
name='sub_section_two',
),
migrations.RemoveField(
model_name='servicespage',
name='sub_section_two_img',
),
]

View File

@@ -10,98 +10,24 @@ from saburly.custom_editor import FULL_EDITOR
class ServicesPage(Page):
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)
sub_section_one = RichTextField(blank=True, features=FULL_EDITOR)
sub_section_one_img = RichTextField(blank=True, features=FULL_EDITOR)
sub_section_two = RichTextField(blank=True, features=FULL_EDITOR)
sub_section_two_img = RichTextField(blank=True, features=FULL_EDITOR)
sub_section_three = RichTextField(blank=True, features=FULL_EDITOR)
sub_section_three_img = RichTextField(blank=True, features=FULL_EDITOR)
sub_section_four = RichTextField(blank=True, features=FULL_EDITOR)
sub_section_four_img = RichTextField(blank=True, features=FULL_EDITOR)
sub_section_five = RichTextField(blank=True, features=FULL_EDITOR)
sub_section_five_img = RichTextField(blank=True, features=FULL_EDITOR)
sub_section_six = RichTextField(blank=True, features=FULL_EDITOR)
sub_section_six_img = RichTextField(blank=True, features=FULL_EDITOR)
intro_title = RichTextField(blank=True, features=FULL_EDITOR)
intro_text = RichTextField(blank=True, features=FULL_EDITOR)
intro_image = models.ForeignKey(
'wagtailimages.Image',
null=True,
blank=True,
on_delete=models.SET_NULL,
related_name='+'
)
content_panels = Page.content_panels + [
MultiFieldPanel([
FieldPanel('section_one_title'),
FieldPanel('section_one_text'),
FieldPanel('section_one_img'),
], heading="Section 1"),
MultiFieldPanel([
FieldPanel('section_two_title'),
FieldPanel('section_two_text'),
FieldPanel('section_two_img'),
], heading="Section 2"),
MultiFieldPanel([
FieldPanel('section_three_title'),
FieldPanel('section_three_text'),
FieldPanel('section_three_img'),
], heading="Section 3"),
MultiFieldPanel([
FieldPanel('section_four_title'),
FieldPanel('section_four_text'),
FieldPanel('section_four_img'),
], heading="Section 4"),
MultiFieldPanel([
FieldPanel('section_five_title'),
FieldPanel('section_five_text'),
FieldPanel('section_five_img'),
], heading="Section 5"),
MultiFieldPanel([
FieldPanel('sub_section_one'),
FieldPanel('sub_section_one_img'),
FieldPanel('sub_section_two'),
FieldPanel('sub_section_two_img'),
FieldPanel('sub_section_three'),
FieldPanel('sub_section_three_img'),
FieldPanel('sub_section_four'),
FieldPanel('sub_section_four_img'),
FieldPanel('sub_section_five'),
FieldPanel('sub_section_five_img'),
FieldPanel('sub_section_six'),
FieldPanel('sub_section_six_img'),
], heading="Section 5 Subfields"),
FieldPanel('intro_title'),
FieldPanel('intro_text'),
FieldPanel('intro_image'),
], heading="Intro Section"),
InlinePanel('carousel_services', heading="Carousel Services", label="Carousel Services"),
InlinePanel('sections_services', heading="Sections Services", label="Sections Services"),
InlinePanel('subsections_services', heading="Sub-Sections Services", label="Sub-Sections Services"),
]
class ServicesPageCarousel(Orderable):
@@ -120,3 +46,39 @@ class ServicesPageCarousel(Orderable):
FieldPanel('carousel_name'),
FieldPanel('carousel_image'),
]
class ServicesPageSections(Orderable):
page = ParentalKey(ServicesPage, on_delete=models.CASCADE, related_name='sections_services')
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'),
]
class ServicesPageSubSection(Orderable):
page = ParentalKey(ServicesPage, on_delete=models.CASCADE, related_name='subsections_services')
sub_section_text = RichTextField(blank=True, features=FULL_EDITOR)
sub_section_image = models.ForeignKey(
'wagtailimages.Image',
null=True,
blank=True,
on_delete=models.SET_NULL,
related_name='+'
)
panels = [
FieldPanel('sub_section_text'),
FieldPanel('sub_section_image'),
]

View File

@@ -7,19 +7,19 @@
{% block content %}
<section class="relative bg-white">
<div class="container mx-auto p-4">
<div class="container mx-auto p-4 pt-6">
<div class="flex flex-col lg:flex-row">
<div class="lg:w-3/5 mb-4 lg:mb-0 lg:pr-8">
<div class="text-3xl xsm:text-4xl md:text-5xl py-2 my-2 lg:text-5xl">
{{ page.section_one_title|richtext }}
{{ page.intro_title|richtext }}
</div>
<div class="mb-10 text-base md:text-lg lg:text-lg text-left leading-smaller sm:leading-mid md:leading-normal lg:leading-loose">
{{ page.section_one_text|richtext }}
{{ page.intro_text|richtext }}
</div>
</div>
<div class="lg:w-2/5 flex items-center justify-center">
<div class="md:max-h-sm md:max-w-35 mx-auto">
{{ page.section_one_img|richtext }}
{{ page.intro_image|richtext }}
</div>
</div>
</div>
@@ -33,15 +33,15 @@
<div class="flex flex-col lg:flex-row">
<div class="lg:w-3/5 mb-4 lg:mb-0 lg:pr-8">
<div class="mb-10 text-base md:text-lg lg:text-lg text-left leading-smaller sm:leading-mid md:leading-normal lg:leading-loose">
{{ page.section_two_title|richtext }}
{{ page.section_one_title|richtext }}
</div>
<div class="text-3xl xsm:text-4xl md:text-5xl py-2 my-2 lg:text-5xl">
{{ page.section_two_text|richtext }}
{{ page.section_one_text|richtext }}
</div>
</div>
<div class="lg:w-2/5 flex items-center justify-center">
<div class="md:max-h-sm md:max-w-35 mx-auto">
{{ page.section_two_img|richtext }}
{{ page.section_one_image|richtext }}
</div>
</div>
</div>

View File

@@ -25,6 +25,5 @@
{% include 'footer.html' %}
</main>
<script src="{%static './js/index.js'%}"></script>
<script src="{%static './js/carousel.js'%}"></script>
</body>

View File

@@ -10,88 +10,70 @@
<div class="container mx-auto items-center flex xl:flex-row justify-between flex-col p-4">
<div class="lg:w-3/5 text-center lg:text-left">
<h2 class="text-3xl xsm:text-4xl md:text-5xl py-2 my-2 lg:text-5xl">
{{ page.section_one_title|richtext }}
{{ page.intro_title|richtext }}
</h2>
<div class="mb-10 text-base md:text-lg lg:text-lg text-left leading-smaller sm:leading-mid md:leading-normal lg:leading-loose">
{{ page.section_one_text|richtext }}
{{ page.intro_text|richtext }}
</div>
</div>
<div class="lg:w-2/5">
<div class="md:max-h-sm md:max-w-35 mx-auto">
{{ page.section_one_img|richtext }}
{{ page.intro_image|richtext }}
</div>
</div>
</div>
</section>
<section class="relative bg-gray-100">
<div class="container mx-auto items-center flex xl:flex-row justify-between flex-col p-4">
<div class="lg:w-2/5">
<div class="md:max-h-sm md:max-w-35 mx-auto">
{{ page.section_two_img|richtext }}
</div>
</div>
<div class="lg:w-3/5 text-center lg:text-left">
<h2 class="text-3xl xsm:text-4xl md:text-5xl py-2 my-2 lg:text-5xl">
{{ page.section_two_title|richtext }}
</h2>
<div class="mb-10 text-base md:text-lg lg:text-lg text-left leading-smaller sm:leading-mid md:leading-normal lg:leading-loose">
{{ page.section_two_text|richtext }}
</div>
</div>
</div>
</section>
<section class="relative bg-white">
<div class="container mx-auto items-center flex xl:flex-row justify-between flex-col p-4">
<div class="lg:w-3/5 text-center lg:text-left">
<h2 class="text-3xl xsm:text-4xl md:text-5xl py-2 my-2 lg:text-5xl">
{{ page.section_three_title|richtext }}
</h2>
<div class="mb-10 text-base md:text-lg lg:text-lg text-left leading-smaller sm:leading-mid md:leading-normal lg:leading-loose">
{{ page.section_three_text|richtext }}
</div>
</div>
<div class="lg:w-2/5">
<div class="md:max-h-sm md:max-w-35 mx-auto">
{{ page.section_three_img|richtext }}
</div>
</div>
</div>
</section>
<section class="relative bg-gray-100">
<div class="container mx-auto items-center flex xl:flex-row justify-between flex-col p-4">
<div class="lg:w-2/5">
<div class="md:max-h-sm md:max-w-35 mx-auto">
{{ page.section_four_img|richtext }}
</div>
</div>
<div class="lg:w-3/5 text-center lg:text-left">
<h2 class="text-3xl xsm:text-4xl md:text-5xl py-2 my-2 lg:text-5xl">
{{ page.section_four_title|richtext }}
</h2>
<div class="mb-10 text-base md:text-lg lg:text-lg text-left leading-smaller sm:leading-mid md:leading-normal lg:leading-loose">
{{ page.section_four_text|richtext }}
</div>
</div>
</div>
</section>
{% for item in page.homepage_sections.all %}
{% if item.section_image %}
{% if forloop.counter|divisibleby:2 %}
<section class="relative bg-white">
<div class="container mx-auto grid grid-cols-1 gap-6 p-4">
<div class="text-center lg:text-center">
<div class="container mx-auto items-center flex xl:flex-row justify-between flex-col p-4">
<div class="lg:w-3/5 text-center lg:text-left">
<h2 class="text-3xl xsm:text-4xl md:text-5xl py-2 my-2 lg:text-5xl">
{{ page.section_five_title|richtext }}
{{ item.section_title|richtext }}
</h2>
<div class="mb-10 text-base md:text-lg lg:text-lg text-left leading-smaller sm:leading-mid md:leading-normal lg:leading-loose">
{{ item.section_text|richtext }}
</div>
<div class="text-base md:text-lg lg:text-lg text-left leading-smaller sm:leading-mid md:leading-normal lg:leading-loose">
{{ page.section_five_text|richtext }}
</div>
<div class="md:max-h-sm md:max-w-35 mx-auto">
{{ page.section_five_img|richtext }}
<div class="lg:w-2/5">
<img src="{{ item.section_image.file.url }}" alt="{{ item.section_title }}" class="md:max-h-sm md:max-w-35 mx-auto">
</div>
</div>
</section>
{% endblock %}
{% else %}
<section class="relative bg-gray-100">
<div class="container mx-auto p-4">
<div class="text-center mb-8"></div>
<div class="flex flex-col lg:flex-row-reverse">
<div class="lg:w-3/5 mb-4 lg:mb-0 lg:pl-8">
<div class="text-3xl xsm:text-4xl md:text-5xl py-2 my-2 lg:text-5xl">
{{ item.section_title|richtext}}
</div>
<div class="mb-10 text-base md:text-lg lg:text-lg text-left leading-smaller sm:leading-mid md:leading-normal lg:leading-loose">
{{ item.section_text|richtext}}
</div>
</div>
<div class="lg:w-2/5 flex items-center justify-center">
<img src="{{ item.section_image.file.url }}" alt="Intro Image" class="md:max-h-sm md:max-w-35 mx-auto">
</div>
</div>
</div>
</section>
{% endif %}
{% else %}
<section class="relative bg-white">
<div class="container mx-auto grid grid-cols-1 gap-6 p-4">
<div>
<div class="text-3xl xsm:text-4xl md:text-5xl py-2 my-2 lg:text-5xl">
{{ item.section_title|richtext }}
</div>
</div>
<div class="text-base md:text-lg lg:text-lg text-left leading-smaller sm:leading-mid md:leading-normal lg:leading-loose">
{{ item.section_text|richtext }}
</div>
</div>
</section>
{% endif %}
{% endfor %}
{% endblock content %}

View File

@@ -12,81 +12,75 @@
<div class="flex flex-col lg:flex-row">
<div class="lg:w-3/5 mb-4 lg:mb-0 lg:pr-8">
<div class="text-3xl xsm:text-4xl md:text-5xl py-2 my-2 lg:text-5xl">
{{ page.section_one_title|richtext }}
{{ page.intro_title|richtext }}
</div>
<div class="mb-10 text-base md:text-lg lg:text-lg text-left leading-smaller sm:leading-mid md:leading-normal lg:leading-loose">
{{ page.section_one_text|richtext }}
{{ page.intro_text|richtext }}
</div>
</div>
<div class="lg:w-2/5 flex items-center justify-center">
<div class="md:max-h-sm md:max-w-35 mx-auto">
{{ page.section_one_img|richtext }}
<div class="md:max-h-sm md:max-w-35 mx-auto tiltImage">
<img src="{{ page.intro_image.file.url }}" alt="Intro Image" class="md:max-h-sm md:max-w-35 mx-auto">
</div>
</div>
</div>
</div>
</section>
<section class="relative bg-gray-100">
<div class="container mx-auto p-4">
<div class="text-center mb-8"></div>
<div class="flex flex-col lg:flex-row-reverse">
<div class="lg:w-3/5 mb-4 lg:mb-0 lg:pl-8">
<div class="text-3xl xsm:text-4xl md:text-5xl py-2 my-2 lg:text-5xl">
{{ page.section_two_title|richtext }}
</div>
<div class="mb-10 text-base md:text-lg lg:text-lg text-left leading-smaller sm:leading-mid md:leading-normal lg:leading-loose">
{{ page.section_two_text|richtext }}
</div>
</div>
<div class="lg:w-2/5 flex items-center justify-center">
<div class="md:max-h-sm md:max-w-35 mx-auto">
{{ page.section_two_img|richtext }}
</div>
</div>
</div>
</div>
</section>
<section class="relative bg-white">
{% for item in page.sections_services.all %}
{% if item.section_image %}
{% if forloop.counter|divisibleby:2 %}
<section class="relative bg-white">
<div class="container mx-auto p-4">
<div class="text-center mb-8"></div>
<div class="flex flex-col lg:flex-row">
<div class="lg:w-3/5 mb-4 lg:mb-0 lg:pr-8">
<div class="text-3xl xsm:text-4xl md:text-5xl py-2 my-2 lg:text-5xl">
{{ page.section_three_title|richtext }}
{{ item.section_title|richtext}}
</div>
<div class="mb-10 text-base md:text-lg lg:text-lg text-left leading-smaller sm:leading-mid md:leading-normal lg:leading-loose">
{{ page.section_three_text|richtext }}
{{ item.section_text|richtext }}
</div>
</div>
<div class="lg:w-2/5">
<img src="{{ item.section_image.file.url }}" alt="{{ item.section_title }}" class="md:max-h-sm md:max-w-35 mx-auto">
</div>
</div>
</div>
</section>
{% else %}
<section class="relative bg-gray-100">
<div class="container mx-auto p-4">
<div class="text-center mb-8"></div>
<div class="flex flex-col lg:flex-row-reverse">
<div class="lg:w-3/5 mb-4 lg:mb-0 lg:pl-8">
<div class="text-3xl xsm:text-4xl md:text-5xl py-2 my-2 lg:text-5xl">
{{ item.section_title|richtext}}
</div>
<div class="mb-10 text-base md:text-lg lg:text-lg text-left leading-smaller sm:leading-mid md:leading-normal lg:leading-loose">
{{ item.section_text|richtext}}
</div>
</div>
<div class="lg:w-2/5 flex items-center justify-center">
<div class="md:max-h-sm md:max-w-35 mx-auto">
{{ page.section_three_img|richtext }}
<img src="{{ item.section_image.file.url }}" alt="Intro Image" class="md:max-h-sm md:max-w-35 mx-auto">
</div>
</div>
</div>
</div>
</section>
<section class="relative bg-gray-100 shadow-3xl border border-gray-300">
<div class="container mx-auto p-4">
<div class="text-center mb-8">
</div>
<div class="grid grid-cols-1 lg:grid-cols-1 gap-8">
<div class="text-center text-3xl xsm:text-4xl md:text-5xl py-2 my-2 lg:text-5xl">
{{ page.section_four_title|richtext }}
</div>
<div class="mb-10 text-base md:text-lg lg:text-lg text-left leading-sm sm:leading-mid md:leading-normal lg:leading-loose">
{{ page.section_four_text|richtext }}
</div>
<div class="flex items-center justify-center">
<div class="md:max-h-sm md:max-w-35 mx-auto">
{{ page.section_four_img|richtext }}
</section>
{% endif %}
{% else %}
<section class="relative bg-gray-100">
<div class="container mx-auto grid grid-cols-1 gap-6 p-4">
<div class="text-center lg:text-center">
<div class="text-3xl xsm:text-4xl md:text-5xl py-2 my-2 lg:text-5xl">
{{ item.section_title|richtext }}
</div>
</div>
<div class="text-base md:text-lg lg:text-lg text-left leading-smaller sm:leading-mid md:leading-normal lg:leading-loose">
{{ item.section_text|richtext }}
</div>
</div>
{% if forloop.counter == 3 %}
<div class="container mx-auto px-4 pb-5">
<div class="relative">
<div class="carousel-slider">
@@ -103,79 +97,31 @@
</div>
</div>
</div>
</section>
{% endif %}
</section>
{% endif %}
{% endfor %}
<section class="relative bg-white">
<div class="container mx-auto p-4">
<div class="text-center mb-8"></div>
<div class="flex flex-col lg:flex-row">
<div class="lg:w-3/5 mb-4 lg:mb-0 lg:pr-8">
<div class="text-3xl xsm:text-4xl md:text-5xl py-2 my-2 lg:text-5xl">
{{ page.section_five_title|richtext }}
</div>
<div class="mb-10 text-base md:text-lg lg:text-lg text-left leading-smaller sm:leading-mid md:leading-normal lg:leading-loose">
{{ page.section_five_text|richtext }}
</div>
</div>
<div class="lg:w-2/5 flex items-center justify-center">
<div class="md:max-h-sm md:max-w-35 mx-auto">
{{ page.section_five_img|richtext }}
</div>
</div>
</div>
</div>
</section>
<section>
<div class="container mx-auto shadow-xl border border-gray-300">
<div class="grid grid-cols-1 sm:grid-cols-2">
{% for item in page.subsections_services.all %}
<div class="border border-gray-300 p-6">
<div class="grid grid-cols-1 gap-4 text-center">
<div class="flex justify-center">{{ page.sub_section_one_img|richtext }}</div>
<div>{{ page.sub_section_one|richtext }}</div>
<div class="flex justify-center">
<img src="{{ item.sub_section_image.file.url }}" style="max-width: 30%; height: auto;"/>
</div>
<div>{{ item.sub_section_text|richtext }}</div>
</div>
</div>
{% endfor %}
</div>
</div>
</section>
<br />
<div class="border border-gray-300 p-6">
<div class="grid grid-cols-1 gap-4 text-center">
<div class="flex justify-center">{{ page.sub_section_two_img|richtext }}</div>
<div>{{ page.sub_section_two|richtext }}</div>
</div>
</div>
{% load static %}
<div class="border border-gray-300 p-6">
<div class="grid grid-cols-1 gap-4 text-center">
<div class="flex justify-center">{{ page.sub_section_three_img|richtext }}</div>
<div>{{ page.sub_section_three|richtext }}</div>
</div>
</div>
<div class="border border-gray-300 p-6">
<div class="grid grid-cols-1 gap-4 text-center">
<div class="flex justify-center">{{ page.sub_section_four_img|richtext }}</div>
<div>{{ page.sub_section_four|richtext }}</div>
</div>
</div>
<div class="border border-gray-300 p-6">
<div class="grid grid-cols-1 gap-4 text-center">
<div class="flex justify-center">{{ page.sub_section_five_img|richtext }}</div>
<div>{{ page.sub_section_five|richtext }}</div>
</div>
</div>
<div class="border border-gray-300 p-6">
<div class="grid grid-cols-1 gap-4 text-center">
<div class="flex justify-center">{{ page.sub_section_six_img|richtext }}</div>
<div>{{ page.sub_section_six|richtext }}</div>
</div>
</div>
</div>
</div>
</section>
<br />
{% endblock %}
<script src="{%static './js/carousel.js'%}"></script>
{% endblock content%}