Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
field=models.BooleanField(default=False, verbose_name='Uganda'),
),
migrations.AlterField(
model_name='countryprofilessetting',
name='ZA',
field=models.BooleanField(default=True, verbose_name='South Africa'),
),
migrations.AlterField(
model_name='countryprofilessetting',
name='ZM',
field=models.BooleanField(default=False, verbose_name='Zambia'),
),
migrations.AlterField(
model_name='explainersteps',
name='steps',
field=wagtail.core.fields.StreamField([('step', wagtail.core.blocks.StructBlock([('title', wagtail.core.blocks.CharBlock(required=False)), ('brief', wagtail.core.blocks.TextBlock(required=False)), ('color', wagtail.core.blocks.CharBlock(help_text='Background colour.', required=False)), ('body', wagtail.core.blocks.RichTextBlock(required=False)), ('sidebar', wagtail.core.blocks.RichTextBlock(required=False))], icon='user'))]),
),
migrations.AlterField(
model_name='faq',
name='cta_one_url',
field=models.URLField(default='https://takwimu.zendesk.com/', verbose_name="'Find Out More' button URL"),
),
migrations.AlterField(
model_name='faq',
name='cta_two_name',
field=models.TextField(blank=True, verbose_name='Second button Name (optional)'),
),
migrations.AlterField(
model_name='faq',
name='cta_two_url',
field=models.URLField(blank=True, verbose_name='Second button URL (optional)'),
),
"videos.Videos",
]
template = "home.html"
# Content fields
subtitle = TextField(max_length=250, blank=True, default="")
button_text = CharField(max_length=30, blank=True, default="")
button_url = CharField(max_length=2048, blank=True, default="")
image = ForeignKey(
"mozimages.MozImage",
null=True,
blank=True,
on_delete=SET_NULL,
related_name="+",
)
featured = StreamField(
StreamBlock(
[
(
"post",
PageChooserBlock(
target_model=(
"articles.Article",
"externalcontent.ExternalArticle",
)
),
),
(
"content_page",
PageChooserBlock(target_model=("content.ContentPage",)),
),
("external_page", FeaturedExternalBlock()),
import wagtail.core.blocks
import wagtail.core.fields
class Migration(migrations.Migration):
dependencies = [("externalcontent", "0016_auto_20190731_1226")]
operations = [
migrations.RenameField(
model_name="externalvideo", old_name="video_duration", new_name="duration"
),
migrations.AddField(
model_name="externalvideo",
name="speakers",
field=wagtail.core.fields.StreamField(
[
(
"speaker",
wagtail.core.blocks.PageChooserBlock(
page_type=["people.Person"], required=False
),
)
],
blank=True,
null=True,
),
from django.db import migrations
import wagtail.core.blocks
import wagtail.core.fields
class Migration(migrations.Migration):
dependencies = [
('diamm_site', '0009_auto_20161218_2149'),
]
operations = [
migrations.AlterField(
model_name='publicationpage',
name='pricing',
field=wagtail.core.fields.StreamField((('price', wagtail.core.blocks.StructBlock((('description', wagtail.core.blocks.CharBlock()), ('price', wagtail.core.blocks.DecimalBlock())), template='website/blocks/pricing_field.jinja2')),)),
),
@hooks.register("register_page_listing_buttons")
def page_listing_buttons(page, page_perms, is_parent=False):
if isinstance(page, ElectionIndexPage):
yield wagtailadmin_widgets.PageListingButton(
"Import Election", "/goes/to/a/url/", priority=10
)
class ElectionIndexPage(RoutablePageMixin, Page):
subpage_types = ["CandidatePage"]
electionName = models.CharField(max_length=255)
electionID = models.IntegerField()
panels = StreamField([("three_cards", ThreeCardBlock())], null=True)
@route(r"^$") # will override the default Page serving mechanism
def post_404(self, request):
raise Http404
@route(r"^([^\/]*)\/$")
def election_page(self, request, name, *args, **kwargs):
print(name)
context = self.get_context(request)
try:
page = ElectionIndexPage.objects.live().get(electionName=name)
except ElectionIndexPage.DoesNotExist:
raise Http404
return page.serve(request, *args, **kwargs)
@route(r"^(.*)\/(.*)\/$")
import wagtail.embeds.blocks
import wagtail.core.blocks
import wagtail.snippets.blocks
class Migration(migrations.Migration):
dependencies = [
('home', '0010_auto_20160704_1313'),
]
operations = [
migrations.AlterField(
model_name='homepage',
name='body_da',
field=wagtail.core.fields.StreamField((('image', wagtail.images.blocks.ImageChooserBlock(icon='image')), ('info_block', wagtail.core.blocks.StructBlock((('title', wagtail.core.blocks.CharBlock(required=False, classname='full title')), ('image', wagtail.images.blocks.ImageChooserBlock(required=False)), ('text', wagtail.core.blocks.RichTextBlock(required=False)), ('button', wagtail.core.blocks.StructBlock((('internal_link', wagtail.core.blocks.PageChooserBlock(required=False)), ('external_link', wagtail.core.blocks.URLBlock(required=False)), ('link_text', wagtail.core.blocks.TextBlock(required=False))), required=False)), ('highlight', wagtail.core.blocks.ChoiceBlock(help_text='How should this block be displayed?', required=False, choices=[('', 'None'), ('highlight', 'Highlight (blue)'), ('boxed', 'Boxed'), ('boxed2', 'Boxed Variation'), ('highlight-purple', 'Highlight (purple)')], icon='cup')), ('alignment', wagtail.core.blocks.ChoiceBlock(help_text='How should the text and image be aligned?', default='vertical', choices=[('vertical', 'vertical'), ('horizontal', 'horizontal')], icon='cup'))))), ('video_block', wagtail.core.blocks.StructBlock((('title', wagtail.core.blocks.CharBlock(classname='full title')), ('video', wagtail.embeds.blocks.EmbedBlock())))), ('news_block', wagtail.core.blocks.StructBlock((('title', wagtail.core.blocks.CharBlock(classname='full title')), ('news', wagtail.core.blocks.CharBlock(classname='full title'))))), ('rss_feed', wagtail.core.blocks.StructBlock((('feed', wagtail.snippets.blocks.SnippetChooserBlock(target_model=home.models.snippets.RSSImport, required=True)),))), ('column_block', wagtail.core.blocks.StructBlock((('title_col1', wagtail.core.blocks.CharBlock(required=False, classname='full title')), ('image_col1', wagtail.images.blocks.ImageChooserBlock(required=False)), ('text_col1', wagtail.core.blocks.RichTextBlock(required=False)), ('title_col2', wagtail.core.blocks.CharBlock(required=False, classname='full title')), ('image_col2', wagtail.images.blocks.ImageChooserBlock(required=False)), ('text_col2', wagtail.core.blocks.RichTextBlock(required=False)), ('title_col3', wagtail.core.blocks.CharBlock(required=False, classname='full title')), ('image_col3', wagtail.images.blocks.ImageChooserBlock(required=False)), ('text_col3', wagtail.core.blocks.RichTextBlock(required=False)))))), null=True, blank=True),
),
migrations.AlterField(
model_name='homepage',
name='body_de',
field=wagtail.core.fields.StreamField((('image', wagtail.images.blocks.ImageChooserBlock(icon='image')), ('info_block', wagtail.core.blocks.StructBlock((('title', wagtail.core.blocks.CharBlock(required=False, classname='full title')), ('image', wagtail.images.blocks.ImageChooserBlock(required=False)), ('text', wagtail.core.blocks.RichTextBlock(required=False)), ('button', wagtail.core.blocks.StructBlock((('internal_link', wagtail.core.blocks.PageChooserBlock(required=False)), ('external_link', wagtail.core.blocks.URLBlock(required=False)), ('link_text', wagtail.core.blocks.TextBlock(required=False))), required=False)), ('highlight', wagtail.core.blocks.ChoiceBlock(help_text='How should this block be displayed?', required=False, choices=[('', 'None'), ('highlight', 'Highlight (blue)'), ('boxed', 'Boxed'), ('boxed2', 'Boxed Variation'), ('highlight-purple', 'Highlight (purple)')], icon='cup')), ('alignment', wagtail.core.blocks.ChoiceBlock(help_text='How should the text and image be aligned?', default='vertical', choices=[('vertical', 'vertical'), ('horizontal', 'horizontal')], icon='cup'))))), ('video_block', wagtail.core.blocks.StructBlock((('title', wagtail.core.blocks.CharBlock(classname='full title')), ('video', wagtail.embeds.blocks.EmbedBlock())))), ('news_block', wagtail.core.blocks.StructBlock((('title', wagtail.core.blocks.CharBlock(classname='full title')), ('news', wagtail.core.blocks.CharBlock(classname='full title'))))), ('rss_feed', wagtail.core.blocks.StructBlock((('feed', wagtail.snippets.blocks.SnippetChooserBlock(target_model=home.models.snippets.RSSImport, required=True)),))), ('column_block', wagtail.core.blocks.StructBlock((('title_col1', wagtail.core.blocks.CharBlock(required=False, classname='full title')), ('image_col1', wagtail.images.blocks.ImageChooserBlock(required=False)), ('text_col1', wagtail.core.blocks.RichTextBlock(required=False)), ('title_col2', wagtail.core.blocks.CharBlock(required=False, classname='full title')), ('image_col2', wagtail.images.blocks.ImageChooserBlock(required=False)), ('text_col2', wagtail.core.blocks.RichTextBlock(required=False)), ('title_col3', wagtail.core.blocks.CharBlock(required=False, classname='full title')), ('image_col3', wagtail.images.blocks.ImageChooserBlock(required=False)), ('text_col3', wagtail.core.blocks.RichTextBlock(required=False)))))), null=True, blank=True),
),
migrations.AlterField(
model_name='homepage',
name='body_en',
field=wagtail.core.fields.StreamField((('image', wagtail.images.blocks.ImageChooserBlock(icon='image')), ('info_block', wagtail.core.blocks.StructBlock((('title', wagtail.core.blocks.CharBlock(required=False, classname='full title')), ('image', wagtail.images.blocks.ImageChooserBlock(required=False)), ('text', wagtail.core.blocks.RichTextBlock(required=False)), ('button', wagtail.core.blocks.StructBlock((('internal_link', wagtail.core.blocks.PageChooserBlock(required=False)), ('external_link', wagtail.core.blocks.URLBlock(required=False)), ('link_text', wagtail.core.blocks.TextBlock(required=False))), required=False)), ('highlight', wagtail.core.blocks.ChoiceBlock(help_text='How should this block be displayed?', required=False, choices=[('', 'None'), ('highlight', 'Highlight (blue)'), ('boxed', 'Boxed'), ('boxed2', 'Boxed Variation'), ('highlight-purple', 'Highlight (purple)')], icon='cup')), ('alignment', wagtail.core.blocks.ChoiceBlock(help_text='How should the text and image be aligned?', default='vertical', choices=[('vertical', 'vertical'), ('horizontal', 'horizontal')], icon='cup'))))), ('video_block', wagtail.core.blocks.StructBlock((('title', wagtail.core.blocks.CharBlock(classname='full title')), ('video', wagtail.embeds.blocks.EmbedBlock())))), ('news_block', wagtail.core.blocks.StructBlock((('title', wagtail.core.blocks.CharBlock(classname='full title')), ('news', wagtail.core.blocks.CharBlock(classname='full title'))))), ('rss_feed', wagtail.core.blocks.StructBlock((('feed', wagtail.snippets.blocks.SnippetChooserBlock(target_model=home.models.snippets.RSSImport, required=True)),))), ('column_block', wagtail.core.blocks.StructBlock((('title_col1', wagtail.core.blocks.CharBlock(required=False, classname='full title')), ('image_col1', wagtail.images.blocks.ImageChooserBlock(required=False)), ('text_col1', wagtail.core.blocks.RichTextBlock(required=False)), ('title_col2', wagtail.core.blocks.CharBlock(required=False, classname='full title')), ('image_col2', wagtail.images.blocks.ImageChooserBlock(required=False)), ('text_col2', wagtail.core.blocks.RichTextBlock(required=False)), ('title_col3', wagtail.core.blocks.CharBlock(required=False, classname='full title')), ('image_col3', wagtail.images.blocks.ImageChooserBlock(required=False)), ('text_col3', wagtail.core.blocks.RichTextBlock(required=False)))))), null=True),
),
migrations.AlterField(
model_name='homepage',
name='body_fr',
field=wagtail.core.fields.StreamField((('image', wagtail.images.blocks.ImageChooserBlock(icon='image')), ('info_block', wagtail.core.blocks.StructBlock((('title', wagtail.core.blocks.CharBlock(required=False, classname='full title')), ('image', wagtail.images.blocks.ImageChooserBlock(required=False)), ('text', wagtail.core.blocks.RichTextBlock(required=False)), ('button', wagtail.core.blocks.StructBlock((('internal_link', wagtail.core.blocks.PageChooserBlock(required=False)), ('external_link', wagtail.core.blocks.URLBlock(required=False)), ('link_text', wagtail.core.blocks.TextBlock(required=False))), required=False)), ('highlight', wagtail.core.blocks.ChoiceBlock(help_text='How should this block be displayed?', required=False, choices=[('', 'None'), ('highlight', 'Highlight (blue)'), ('boxed', 'Boxed'), ('boxed2', 'Boxed Variation'), ('highlight-purple', 'Highlight (purple)')], icon='cup')), ('alignment', wagtail.core.blocks.ChoiceBlock(help_text='How should the text and image be aligned?', default='vertical', choices=[('vertical', 'vertical'), ('horizontal', 'horizontal')], icon='cup'))))), ('video_block', wagtail.core.blocks.StructBlock((('title', wagtail.core.blocks.CharBlock(classname='full title')), ('video', wagtail.embeds.blocks.EmbedBlock())))), ('news_block', wagtail.core.blocks.StructBlock((('title', wagtail.core.blocks.CharBlock(classname='full title')), ('news', wagtail.core.blocks.CharBlock(classname='full title'))))), ('rss_feed', wagtail.core.blocks.StructBlock((('feed', wagtail.snippets.blocks.SnippetChooserBlock(target_model=home.models.snippets.RSSImport, required=True)),))), ('column_block', wagtail.core.blocks.StructBlock((('title_col1', wagtail.core.blocks.CharBlock(required=False, classname='full title')), ('image_col1', wagtail.images.blocks.ImageChooserBlock(required=False)), ('text_col1', wagtail.core.blocks.RichTextBlock(required=False)), ('title_col2', wagtail.core.blocks.CharBlock(required=False, classname='full title')), ('image_col2', wagtail.images.blocks.ImageChooserBlock(required=False)), ('text_col2', wagtail.core.blocks.RichTextBlock(required=False)), ('title_col3', wagtail.core.blocks.CharBlock(required=False, classname='full title')), ('image_col3', wagtail.images.blocks.ImageChooserBlock(required=False)), ('text_col3', wagtail.core.blocks.RichTextBlock(required=False)))))), null=True, blank=True),
),
def _add_streamfields(cls: wagtailPage, node: str, dict_params: dict, app: str, prefix: str) -> None:
from .types.streamfield import (
block_handler,
stream_field_handler,
)
for field in cls._meta.fields:
if isinstance(field, StreamField):
field_name = field.name
stream_field_name = f"{node}{string.capwords(field_name, sep='_').replace('_', '')}"
blocks = field.stream_block.child_blocks
handlers = dict(
(name, block_handler(block, app, prefix))
for name, block in blocks.items()
)
f, resolve = stream_field_handler(
stream_field_name,
field_name,
handlers
)
dict_params.update({
duration = CharField(
max_length=30,
blank=True,
null=True,
help_text=(
"Optional video duration in MM:SS format e.g. “12:34”. Shown when the "
"video is displayed as a card"
),
)
transcript = RichTextField(
blank=True,
default="",
features=RICH_TEXT_FEATURES,
help_text="Optional text transcript of the video, supports rich text",
)
video_url = StreamField(
StreamBlock([("embed", EmbedBlock())], min_num=1, max_num=1, required=True),
help_text=(
"Embed URL for the video e.g. https://www.youtube.com/watch?v=kmk43_2dtn0"
),
)
speakers = StreamField(
StreamBlock(
[("speaker", PageChooserBlock(target_model="people.Person"))],
required=False,
),
blank=True,
null=True,
help_text="Optional list of people associated with or starring in the video",
)
# Card fields
serializes these as a list of strings taken from the name attribute of each
tag.
Example:
"tags": ["bird", "wagtail"]
"""
def to_representation(self, value):
return list(value.all().order_by('name').values_list('name', flat=True))
class BaseSerializer(serializers.ModelSerializer):
# Add StreamField to serializer_field_mapping
serializer_field_mapping = serializers.ModelSerializer.serializer_field_mapping.copy()
serializer_field_mapping.update({
wagtailcore_fields.StreamField: StreamField,
})
serializer_related_field = RelatedField
# Meta fields
type = TypeField(read_only=True)
detail_url = DetailUrlField(read_only=True)
def to_representation(self, instance):
data = OrderedDict()
fields = [field for field in self.fields.values() if not field.write_only]
# Split meta fields from core fields
meta_fields = [field for field in fields if field.field_name in self.meta_fields]
fields = [field for field in fields if field.field_name not in self.meta_fields]
# Make sure id is always first. This will be filled in later