def test_render_within_structblock(self, get_embed): """ When rendering the value of an EmbedBlock directly in a template (as happens when accessing it as a child of a StructBlock), the proper embed output should be rendered, not the URL. """ get_embed.return_value = Embed(html="<h1>Hello world!</h1>") block = blocks.StructBlock([ ("title", blocks.CharBlock()), ("embed", EmbedBlock()), ]) block_val = block.to_python({ "title": "A test", "embed": "http://www.example.com/foo" }) temp = template.Template("embed: {{ self.embed }}") context = template.Context({"self": block_val}) result = temp.render(context) self.assertIn("<h1>Hello world!</h1>", result) # Check that get_embed was called correctly get_embed.assert_any_call("http://www.example.com/foo", None, None)
class Migration(migrations.Migration): dependencies = [ ('tests', '0012_pagewithrelatedpages'), ] operations = [ migrations.AlterField( model_name='pagewithstreamfield', name='body', field=wagtail_fields.StreamField([('link_block', wagtail_blocks.StructBlock([('page', wagtail_blocks.PageChooserBlock(required=False)), ('text', wagtail_blocks.CharBlock(max_length=250))])), ('page', wagtail_blocks.PageChooserBlock()), ('stream', wagtail_blocks.StreamBlock([('page', wagtail_blocks.PageChooserBlock())])), ('rich_text', wagtail_blocks.RichTextBlock()), ('list_of_pages', wagtail_blocks.ListBlock(wagtail_blocks.PageChooserBlock()))], blank=True, verbose_name='Page body'), ), ]
class Migration(migrations.Migration): dependencies = [ ('wagtailcore', '0041_group_collection_permissions_verbose_name_plural'), ('tests', '0004_pagewithrichtext'), ] operations = [ migrations.CreateModel( name='PageWithStreamField', 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')), ('body', wagtail_fields.StreamField([('link_block', wagtail_blocks.StructBlock([('page', wagtail_blocks.PageChooserBlock()), ('text', wagtail_blocks.CharBlock(max_length=250))])), ('page', wagtail_blocks.PageChooserBlock()), ('stream', wagtail_blocks.StreamBlock([('page', wagtail_blocks.PageChooserBlock())])), ('rich_text', wagtail_blocks.RichTextBlock()), ('list_of_pages', wagtail_blocks.ListBlock(wagtail_blocks.PageChooserBlock()))], blank=True, verbose_name='Page body')), ], options={ 'abstract': False, }, bases=('wagtailcore.page',), ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ("wagtailcore", "0066_collection_management_permissions"), ] operations = [ migrations.CreateModel( name="ClassicGeoPage", 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", ), ), ("address", models.CharField(blank=True, max_length=250, null=True)), ("location", models.CharField(blank=True, max_length=250, null=True)), ], options={ "abstract": False, }, bases=("wagtailcore.page", ), ), migrations.CreateModel( name="ClassicGeoPageWithLeaflet", 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", ), ), ( "address", models.CharField( blank=True, help_text="Search powered by MapBox", max_length=250, null=True, ), ), ("location", models.CharField(blank=True, max_length=250, null=True)), ], options={ "abstract": False, }, bases=("wagtailcore.page", ), ), migrations.CreateModel( name="ClassicGeoPageWithLeafletAndZoom", 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", ), ), ( "address", models.CharField( blank=True, help_text="Search powered by Nominatim", max_length=250, null=True, ), ), ("location", models.CharField(blank=True, max_length=250, null=True)), ("zoom", models.SmallIntegerField(blank=True, null=True)), ], options={ "abstract": False, }, bases=("wagtailcore.page", ), ), migrations.CreateModel( name="ClassicGeoPageWithZoom", 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", ), ), ("address", models.CharField(blank=True, max_length=250, null=True)), ("location", models.CharField(blank=True, max_length=250, null=True)), ("zoom", models.SmallIntegerField(blank=True, null=True)), ], options={ "abstract": False, }, bases=("wagtailcore.page", ), ), migrations.CreateModel( name="GeoLocation", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("title", models.CharField(max_length=255)), ("address", models.CharField(blank=True, max_length=250, null=True)), ("zoom", models.SmallIntegerField(blank=True, null=True)), ( "location", django.contrib.gis.db.models.fields.PointField(blank=True, null=True, srid=4326), ), ], ), migrations.CreateModel( name="GeoLocationWithLeaflet", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("title", models.CharField(max_length=255)), ( "address", models.CharField( blank=True, help_text="Search powered by Nominatim", max_length=250, null=True, ), ), ("zoom", models.SmallIntegerField(blank=True, null=True)), ( "location", django.contrib.gis.db.models.fields.PointField(blank=True, null=True, srid=4326), ), ], ), migrations.CreateModel( name="GeoPage", 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", ), ), ("address", models.CharField(blank=True, max_length=250, null=True)), ( "location", django.contrib.gis.db.models.fields.PointField(blank=True, null=True, srid=4326), ), ], options={ "abstract": False, }, bases=("wagtailcore.page", ), ), migrations.CreateModel( name="GeoPageWithLeaflet", 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", ), ), ( "address", models.CharField( blank=True, help_text="Search powered by Nominatim", max_length=250, null=True, ), ), ( "location", django.contrib.gis.db.models.fields.PointField(blank=True, null=True, srid=4326), ), ], options={ "abstract": False, }, bases=("wagtailcore.page", ), ), migrations.CreateModel( name="GeoStreamPage", 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", ), ), ( "body", wagtail_fields.StreamField([ ("map", wagtailgeowidget.blocks.GoogleMapsBlock()), ( "map_with_leaflet", wagtailgeowidget.blocks.LeafletBlock(), ), ( "map_struct", wagtail_blocks.StructBlock( [ ( "address", wagtailgeowidget.blocks. GeoAddressBlock(required=True), ), ( "map", wagtailgeowidget.blocks. GoogleMapsBlock( address_field="address"), ), ], icon="user", ), ), ( "map_struct_with_deprecated_geopanel", wagtail_blocks.StructBlock( [ ( "address", wagtail_blocks.CharBlock( required=True), ), ( "map", wagtailgeowidget.blocks.GeoBlock( address_field="address"), ), ], icon="user", ), ), ( "map_struct_with_leaflet", wagtail_blocks.StructBlock( [ ( "address", wagtailgeowidget.blocks. GeoAddressBlock(required=True), ), ( "map", wagtailgeowidget.blocks.LeafletBlock( address_field="address"), ), ], icon="user", ), ), ( "map_struct_with_zoom", wagtail_blocks.StructBlock( [ ( "address", wagtailgeowidget.blocks. GeoAddressBlock(required=True), ), ( "zoom", wagtailgeowidget.blocks.GeoZoomBlock( required=False), ), ( "map", wagtailgeowidget.blocks. GoogleMapsBlock( address_field="address", zoom_field="zoom", ), ), ], icon="user", ), ), ( "map_struct_leaflet_with_zoom", wagtail_blocks.StructBlock( [ ( "address", wagtailgeowidget.blocks. GeoAddressBlock(required=True), ), ( "zoom", wagtailgeowidget.blocks.GeoZoomBlock( required=False), ), ( "map", wagtailgeowidget.blocks.LeafletBlock( address_field="address", zoom_field="zoom", ), ), ], icon="user", ), ), ]), ), ], options={ "abstract": False, }, bases=("wagtailcore.page", ), ), migrations.CreateModel( name="GeoPageWithLeafletRelatedLocations", fields=[ ( "geolocationwithleaflet_ptr", models.OneToOneField( auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to="geopage.geolocationwithleaflet", ), ), ( "sort_order", models.IntegerField(blank=True, editable=False, null=True), ), ( "page", modelcluster.fields.ParentalKey( on_delete=django.db.models.deletion.CASCADE, related_name="related_locations", to="geopage.geopagewithleaflet", ), ), ], options={ "ordering": ["sort_order"], "abstract": False, }, bases=("geopage.geolocationwithleaflet", models.Model), ), migrations.CreateModel( name="GeoPageRelatedLocations", fields=[ ( "geolocation_ptr", models.OneToOneField( auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to="geopage.geolocation", ), ), ( "sort_order", models.IntegerField(blank=True, editable=False, null=True), ), ( "page", modelcluster.fields.ParentalKey( on_delete=django.db.models.deletion.CASCADE, related_name="related_locations", to="geopage.geopage", ), ), ], options={ "ordering": ["sort_order"], "abstract": False, }, bases=("geopage.geolocation", models.Model), ), ]
class GeoStreamPage(Page): body = StreamField([ ("map", GoogleMapsBlock()), ("map_with_leaflet", LeafletBlock()), ( "map_struct", blocks.StructBlock( [ ("address", GeoAddressBlock(required=True)), ("map", GoogleMapsBlock(address_field="address")), ], icon="user", ), ), ( "map_struct_with_deprecated_geopanel", blocks.StructBlock( [ ("address", blocks.CharBlock(required=True)), ("map", GeoBlock(address_field="address")), ], icon="user", ), ), ( "map_struct_with_leaflet", blocks.StructBlock( [ ("address", GeoAddressBlock(required=True)), ("map", LeafletBlock(address_field="address")), ], icon="user", ), ), ( "map_struct_with_zoom", blocks.StructBlock( [ ("address", GeoAddressBlock(required=True)), ("zoom", GeoZoomBlock(required=False)), ( "map", GoogleMapsBlock(address_field="address", zoom_field="zoom"), ), ], icon="user", ), ), ( "map_struct_leaflet_with_zoom", blocks.StructBlock( [ ("address", GeoAddressBlock(required=True)), ("zoom", GeoZoomBlock(required=False)), ( "map", LeafletBlock(address_field="address", zoom_field="zoom"), ), ], icon="user", ), ), ]) content_panels = Page.content_panels + [ StreamFieldPanel("body"), ] def get_context(self, request): data = super(GeoStreamPage, self).get_context(request) return data
class StreamPage(Page): body = StreamField([ ("map", GoogleMapsBlock()), ("map_leaflet", LeafletBlock()), ( "map_struct", blocks.StructBlock( [ ("address", GeoAddressBlock(required=True)), ("map", GoogleMapsBlock(address_field="address")), ], icon="user", ), ), ( "map_struct_with_deprecated_geopanel", blocks.StructBlock( [ ("address", blocks.CharBlock(required=True)), ("map", GeoBlock(address_field="address")), ], icon="user", ), ), ( "map_struct_leaflet", blocks.StructBlock( [ ( "address", GeoAddressBlock(required=True, geocoder=geocoders.MAPBOX), ), ("map", LeafletBlock(address_field="address")), ], icon="user", ), ), ( "map_struct_with_zoom", blocks.StructBlock( [ ("address", GeoAddressBlock(required=True)), ("zoom", GeoZoomBlock(required=False)), ( "map", GoogleMapsBlock(address_field="address", zoom_field="zoom"), ), ], icon="user", ), ), ( "map_struct_leaflet_with_zoom", blocks.StructBlock( [ ("address", GeoAddressBlock(required=True)), ("zoom", GeoZoomBlock(required=False)), ( "map", LeafletBlock(address_field="address", zoom_field="zoom"), ), ], icon="user", ), ), ]) content_panels = Page.content_panels + [ StreamFieldPanel("body"), ]
class Migration(migrations.Migration): initial = True dependencies = [ ("wagtailcore", "0066_collection_management_permissions"), ] operations = [ migrations.CreateModel( name="StandardPage", 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", ), ), ("address", models.CharField(blank=True, max_length=250, null=True)), ("location", models.CharField(blank=True, max_length=250, null=True)), ], options={ "abstract": False, }, bases=("wagtailcore.page", ), ), migrations.CreateModel( name="StandardPageWithLeaflet", 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", ), ), ( "address", models.CharField( blank=True, help_text="Search powered by Nominatim", max_length=250, null=True, ), ), ("location", models.CharField(blank=True, max_length=250, null=True)), ], options={ "abstract": False, }, bases=("wagtailcore.page", ), ), migrations.CreateModel( name="StandardPageWithLeafletAndZoom", 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", ), ), ( "address", models.CharField( blank=True, help_text="Search powered by Nominatim", max_length=250, null=True, ), ), ("location", models.CharField(blank=True, max_length=250, null=True)), ("zoom", models.SmallIntegerField(blank=True, null=True)), ], options={ "abstract": False, }, bases=("wagtailcore.page", ), ), migrations.CreateModel( name="StandardPageWithZoom", 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", ), ), ("address", models.CharField(blank=True, max_length=250, null=True)), ("location", models.CharField(blank=True, max_length=250, null=True)), ("zoom", models.SmallIntegerField(blank=True, null=True)), ], options={ "abstract": False, }, bases=("wagtailcore.page", ), ), migrations.CreateModel( name="StreamPage", 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", ), ), ( "body", wagtail_fields.StreamField([ ("map", wagtailgeowidget.blocks.GoogleMapsBlock()), ("map_leaflet", wagtailgeowidget.blocks.LeafletBlock()), ( "map_struct", wagtail_blocks.StructBlock( [ ( "address", wagtailgeowidget.blocks. GeoAddressBlock(required=True), ), ( "map", wagtailgeowidget.blocks. GoogleMapsBlock( address_field="address"), ), ], icon="user", ), ), ( "map_struct_with_deprecated_geopanel", wagtail_blocks.StructBlock( [ ( "address", wagtail_blocks.CharBlock( required=True), ), ( "map", wagtailgeowidget.blocks.GeoBlock( address_field="address"), ), ], icon="user", ), ), ( "map_struct_leaflet", wagtail_blocks.StructBlock( [ ( "address", wagtailgeowidget.blocks. GeoAddressBlock(required=True), ), ( "map", wagtailgeowidget.blocks.LeafletBlock( address_field="address"), ), ], icon="user", ), ), ( "map_struct_with_zoom", wagtail_blocks.StructBlock( [ ( "address", wagtailgeowidget.blocks. GeoAddressBlock(required=True), ), ( "zoom", wagtailgeowidget.blocks.GeoZoomBlock( required=False), ), ( "map", wagtailgeowidget.blocks. GoogleMapsBlock( address_field="address", zoom_field="zoom", ), ), ], icon="user", ), ), ( "map_struct_leaflet_with_zoom", wagtail_blocks.StructBlock( [ ( "address", wagtailgeowidget.blocks. GeoAddressBlock(required=True), ), ( "zoom", wagtailgeowidget.blocks.GeoZoomBlock( required=False), ), ( "map", wagtailgeowidget.blocks.LeafletBlock( address_field="address", zoom_field="zoom", ), ), ], icon="user", ), ), ]), ), ], options={ "abstract": False, }, bases=("wagtailcore.page", ), ), ]