Skip to content

Commit

Permalink
Add tests for apply_if_live
Browse files Browse the repository at this point in the history
  • Loading branch information
Diogo Marques committed Apr 2, 2024
1 parent d6949d3 commit 4be0102
Show file tree
Hide file tree
Showing 5 changed files with 598 additions and 523 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Generated by Django 4.2.11 on 2024-04-02 06:26

from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

dependencies = [
('wagtailcore', '0091_remove_revision_submitted_for_moderation'),
('tests', '0001_initial'),
]

operations = [
migrations.CreateModel(
name='TitleFieldPanelPageTest',
fields=[
('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')),
('name', models.CharField(max_length=50)),
('name_de', models.CharField(max_length=50, null=True)),
('name_en', models.CharField(max_length=50, null=True)),
],
options={
'abstract': False,
},
bases=('wagtailcore.page',),
),
]
155 changes: 64 additions & 91 deletions wagtail_modeltranslation/tests/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,13 @@
from modelcluster.fields import ParentalKey
from modelcluster.models import ClusterableModel
from wagtail import blocks
from wagtail.admin.panels import (FieldPanel, FieldRowPanel, InlinePanel,
MultiFieldPanel)
from wagtail.admin.panels import (
FieldPanel,
FieldRowPanel,
InlinePanel,
MultiFieldPanel,
TitleFieldPanel,
)
from wagtail.contrib.routable_page.models import RoutablePageMixin, route
from wagtail.fields import StreamField
from wagtail.models import Page
Expand All @@ -15,7 +20,7 @@
# Wagtail Models
class TestRootPage(Page):
parent_page_types = []
subpage_types = ['tests.TestSlugPage1', 'tests.TestSlugPage2']
subpage_types = ["tests.TestSlugPage1", "tests.TestSlugPage2"]


class TestSlugPage1(Page):
Expand All @@ -34,7 +39,7 @@ class PatchTestPage(Page):
description = models.CharField(max_length=50)

search_fields = Page.search_fields + [
index.SearchField('description'),
index.SearchField("description"),
]


Expand All @@ -46,31 +51,26 @@ class PatchTestSnippetNoPanels(models.Model):
@register_snippet
class PatchTestSnippet(PatchTestSnippetNoPanels):

panels = [
FieldPanel('name')
]

panels = [FieldPanel("name")]

# ######### Snippet Patching Models

########## Snippet Patching Models
@register_snippet
class FieldPanelSnippet(models.Model):
name = models.CharField(max_length=10)

panels = [
FieldPanel('name')
]
panels = [FieldPanel("name")]


@register_snippet
class ImageChooserPanelSnippet(models.Model):
image = models.ForeignKey(
'wagtailimages.Image',
"wagtailimages.Image",
on_delete=models.CASCADE,
)

panels = [
FieldPanel('image'),
FieldPanel("image"),
]


Expand All @@ -79,45 +79,29 @@ class FieldRowPanelSnippet(models.Model):
other_name = models.CharField(max_length=10)

panels = [
FieldRowPanel([
FieldPanel('other_name'),
]),
FieldRowPanel(
[
FieldPanel("other_name"),
]
),
]


@register_snippet
class StreamFieldPanelSnippet(models.Model):
body = StreamField(
[
('text', blocks.CharBlock(max_length=10))
],
blank=False,
use_json_field=True
)
body = StreamField([("text", blocks.CharBlock(max_length=10))], blank=False, use_json_field=True)

panels = [
FieldPanel('body')
]
panels = [FieldPanel("body")]


class MultiFieldPanelBase(models.Model):
name = models.CharField(max_length=10)
image = models.ForeignKey(
'wagtailimages.Image',
on_delete=models.CASCADE,
related_name='+'
)
image = models.ForeignKey("wagtailimages.Image", on_delete=models.CASCADE, related_name="+")
other_name = models.CharField(max_length=10)
panels = [
MultiFieldPanel(
FieldPanelSnippet.panels
),
MultiFieldPanel(
ImageChooserPanelSnippet.panels
),
MultiFieldPanel(
FieldRowPanelSnippet.panels
),
MultiFieldPanel(FieldPanelSnippet.panels),
MultiFieldPanel(ImageChooserPanelSnippet.panels),
MultiFieldPanel(FieldRowPanelSnippet.panels),
]

class Meta:
Expand All @@ -132,120 +116,109 @@ class MultiFieldPanelSnippet(MultiFieldPanelBase):
class BaseInlineModel(MultiFieldPanelBase):
field_name = models.CharField(max_length=10)

image_chooser = models.ForeignKey(
'wagtailimages.Image',
on_delete=models.CASCADE,
related_name='+'
)
image_chooser = models.ForeignKey("wagtailimages.Image", on_delete=models.CASCADE, related_name="+")

fieldrow_name = models.CharField(max_length=10)

panels = [
FieldPanel('field_name'),
FieldPanel('image_chooser'),
FieldRowPanel([
FieldPanel('fieldrow_name'),
]),
FieldPanel("field_name"),
FieldPanel("image_chooser"),
FieldRowPanel(
[
FieldPanel("fieldrow_name"),
]
),
] + MultiFieldPanelBase.panels


class SnippetInlineModel(BaseInlineModel):
page = ParentalKey(
'tests.InlinePanelSnippet',
related_name='related_snippet_model',
"tests.InlinePanelSnippet",
related_name="related_snippet_model",
on_delete=models.CASCADE,
)


@register_snippet
class InlinePanelSnippet(ClusterableModel):
panels = [
InlinePanel('related_snippet_model')
]
panels = [InlinePanel("related_snippet_model")]


# ######### Page Patching Models

class FieldPanelPage(Page):
name = models.CharField(max_length=50)

content_panels = [
FieldPanel('name'),
FieldPanel("name"),
]


class ImageChooserPanelPage(Page):
image = models.ForeignKey(
'wagtailimages.Image',
"wagtailimages.Image",
on_delete=models.SET_NULL,
null=True, blank=True,
null=True,
blank=True,
)

content_panels = [
FieldPanel('image'),
FieldPanel("image"),
]


class FieldRowPanelPage(Page):
other_name = models.CharField(max_length=10)

content_panels = [
FieldRowPanel([
FieldPanel('other_name'),
]),
FieldRowPanel(
[
FieldPanel("other_name"),
]
),
]


class StreamFieldPanelPage(Page):
body = StreamField(
[
('text', blocks.CharBlock(max_length=10))
],
blank=False,
use_json_field=True
)
body = StreamField([("text", blocks.CharBlock(max_length=10))], blank=False, use_json_field=True)

content_panels = [
FieldPanel('body')
]
content_panels = [FieldPanel("body")]


class MultiFieldPanelPage(Page):
name = models.CharField(max_length=50)
image = models.ForeignKey(
'wagtailimages.Image',
"wagtailimages.Image",
on_delete=models.SET_NULL,
null=True, blank=True,
null=True,
blank=True,
)
other_name = models.CharField(max_length=10)
content_panels = [
MultiFieldPanel(
FieldPanelPage.content_panels
),
MultiFieldPanel(
ImageChooserPanelPage.content_panels
),
MultiFieldPanel(
FieldRowPanelPage.content_panels
),
MultiFieldPanel(FieldPanelPage.content_panels),
MultiFieldPanel(ImageChooserPanelPage.content_panels),
MultiFieldPanel(FieldRowPanelPage.content_panels),
]


class PageInlineModel(BaseInlineModel):
page = ParentalKey('tests.InlinePanelPage', related_name='related_page_model')
page = ParentalKey("tests.InlinePanelPage", related_name="related_page_model")


class InlinePanelPage(Page):
content_panels = [
InlinePanel('related_page_model')
]
content_panels = [InlinePanel("related_page_model")]


class RoutablePageTest(RoutablePageMixin, Page):
@route(r'^archive/year/1984/$')
@route(r"^archive/year/1984/$")
def archive_for_1984(self, request):
return HttpResponse("we were always at war with eastasia")

@route(r'^archive/year/(\d+)/$')
@route(r"^archive/year/(\d+)/$")
def archive_by_year(self, request, year):
return HttpResponse("ARCHIVE BY YEAR: " + str(year))


class TitleFieldPanelPageTest(Page):
name = models.CharField(max_length=50)

content_panels = [TitleFieldPanel("name", apply_if_live=True)]
2 changes: 2 additions & 0 deletions wagtail_modeltranslation/tests/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,3 +95,5 @@
ALLOWED_HOSTS = ['localhost']

WAGTAILADMIN_BASE_URL = 'http://localhost'

STATIC_URL = 'static/'
Loading

0 comments on commit 4be0102

Please sign in to comment.