class SectorLandingPage(ExclusivePageMixin, BaseInvestPage):
    subpage_types = ['invest.sectorPage']
    slug_identity = slugs.INVEST_SECTOR_LANDING_PAGE
    slug_override = 'industries'

    # page fields
    heading = models.CharField(max_length=255)

    hero_image = models.ForeignKey('wagtailimages.Image',
                                   null=True,
                                   blank=True,
                                   on_delete=models.SET_NULL,
                                   related_name='+')

    image_panels = [
        ImageChooserPanel('hero_image'),
    ]
    content_panels = [FieldPanel('heading'), SearchEngineOptimisationPanel()]
    settings_panels = [
        FieldPanel('title_en_gb'),
        FieldPanel('slug'),
    ]

    edit_handler = make_translated_interface(content_panels=content_panels,
                                             settings_panels=settings_panels,
                                             other_panels=[
                                                 ObjectList(image_panels,
                                                            heading='Images'),
                                             ])
class SetupGuideLandingPage(ExclusivePageMixin, BaseInvestPage):
    subpage_types = ['invest.SetupGuidePage']
    slug_identity = slugs.INVEST_GUIDE_LANDING_PAGE
    # override the slug when generating the url
    slug_override = 'uk-setup-guide'

    # page fields
    heading = models.CharField(max_length=255)
    sub_heading = models.CharField(max_length=255)
    lead_in = models.TextField(blank=True)

    content_panels = [
        FieldPanel('heading'),
        FieldPanel('sub_heading'),
        FieldPanel('lead_in'),
        SearchEngineOptimisationPanel()
    ]

    settings_panels = [
        FieldPanel('title_en_gb'),
        FieldPanel('slug'),
    ]

    edit_handler = make_translated_interface(
        content_panels=content_panels,
        settings_panels=settings_panels,
    )
Beispiel #3
0
class BannerComponent(BaseComponentsPage):
    view_path = ''

    banner_content = MarkdownField()
    banner_label = models.CharField(max_length=50, null=True, blank=True)

    content_panels = [
        MultiFieldPanel(
            heading='Banner component',
            children=[
                FieldPanel('banner_label'),
                FieldPanel('banner_content'),
            ]
        ),
    ]

    settings_panels = [
        FieldPanel('title_en_gb'),
        FieldPanel('slug'),
    ]

    edit_handler = make_translated_interface(
        content_panels=content_panels,
        settings_panels=settings_panels,
    )
class AboutUkRegionListingPagePanels:
    image_panels = [
        ImageChooserPanel('hero_image'),
        MediaChooserPanel('hero_video')
    ]

    content_panels = [
        FieldPanel('title'),
        FieldPanel('breadcrumbs_label'),
        MultiFieldPanel(
            heading="Hero",
            children=[
                FieldPanel('hero_title'),
            ],
        ),
        FieldPanel('intro'),
        MultiFieldPanel(heading="Contact us section",
                        classname="collapsible",
                        children=[
                            FieldPanel('contact_title'),
                            FieldPanel('contact_text'),
                            FieldPanel('contact_cta_text'),
                            FieldPanel('contact_cta_link'),
                        ]),
        MultiFieldPanel(
            heading="Explore more of the Investment Atlas section",
            classname="collapsible",
            children=[
                PageChooserPanel('related_page_one', [
                    'great_international.WhyInvestInTheUKPage',
                    'great_international.InternationalTopicLandingPage',
                    'great_international.AboutUkRegionPage',
                    'great_international.InvestmentOpportunityPage'
                ]),
                PageChooserPanel('related_page_two', [
                    'great_international.WhyInvestInTheUKPage',
                    'great_international.InternationalTopicLandingPage',
                    'great_international.AboutUkRegionPage',
                    'great_international.InvestmentOpportunityPage'
                ]),
                PageChooserPanel('related_page_three', [
                    'great_international.WhyInvestInTheUKPage',
                    'great_international.InternationalTopicLandingPage',
                    'great_international.AboutUkRegionPage',
                    'great_international.InvestmentOpportunityPage'
                ]),
            ]),
        SearchEngineOptimisationPanel()
    ]

    settings_panels = [
        FieldPanel('slug'),
    ]

    edit_handler = make_translated_interface(content_panels=content_panels,
                                             settings_panels=settings_panels,
                                             other_panels=[
                                                 ObjectList(image_panels,
                                                            heading='Images'),
                                             ])
Beispiel #5
0
class SetupGuideLandingPage(ExclusivePageMixin, BasePage):
    service_name_value = cms.INVEST
    subpage_types = ['invest.SetupGuidePage']
    slug_identity = cms.INVEST_GUIDE_LANDING_PAGE_SLUG
    view_path = 'setup-guide-landing/'

    # page fields
    heading = models.CharField(max_length=255)
    sub_heading = models.CharField(max_length=255)
    lead_in = models.TextField(blank=True)

    content_panels = [
        FieldPanel('heading'),
        FieldPanel('sub_heading'),
        FieldPanel('lead_in'),
        SearchEngineOptimisationPanel()
    ]

    settings_panels = [
        FieldPanel('title_en_gb'),
        FieldPanel('slug'),
    ]

    edit_handler = make_translated_interface(
        content_panels=content_panels,
        settings_panels=settings_panels,
    )
Beispiel #6
0
class RegionLandingPage(ExclusivePageMixin, BasePage):
    service_name_value = cms.INVEST
    subpage_types = ['invest.sectorPage']
    slug_identity = cms.INVEST_UK_REGION_LANDING_PAGE_SLUG
    view_path = 'uk-regions/'

    # page fields
    heading = models.CharField(max_length=255)

    hero_image = models.ForeignKey('wagtailimages.Image',
                                   null=True,
                                   blank=True,
                                   on_delete=models.SET_NULL,
                                   related_name='+')

    image_panels = [
        ImageChooserPanel('hero_image'),
    ]
    content_panels = [FieldPanel('heading'), SearchEngineOptimisationPanel()]
    settings_panels = [
        FieldPanel('title_en_gb'),
        FieldPanel('slug'),
    ]

    edit_handler = make_translated_interface(content_panels=content_panels,
                                             settings_panels=settings_panels,
                                             other_panels=[
                                                 ObjectList(image_panels,
                                                            heading='Images'),
                                             ])
class WhyInvestInTheUKPagePanels:

    content_panels = [
        MultiFieldPanel(
            heading="Hero and Intro",
            classname='collapsible',
            children=[
                FieldPanel('title'),
                ImageChooserPanel('hero_image'),
                MediaChooserPanel('hero_video'),
                FieldPanel('strapline'),
                FieldPanel('introduction'),
                ImageChooserPanel('intro_image'),
            ],
        ),
        MultiFieldPanel(
            heading="UK Strengths",
            classname='collapsible',
            children=[
                FieldPanel('uk_strength_title'),
                FieldPanel('uk_strength_intro'),
                StreamFieldPanel('uk_strength_panels'),
            ],
        ),
        SearchEngineOptimisationPanel()
    ]
    settings_panels = [
        FieldPanel('slug'),
    ]

    edit_handler = make_translated_interface(content_panels=content_panels,
                                             settings_panels=settings_panels)
class InternationalTradeIndustryContactPagePanels:

    content_panels = [
        FieldPanel('title'),
        MultiFieldPanel(heading='Contact form',
                        children=[
                            FieldPanel('breadcrumbs_label'),
                            FieldPanel('introduction_text'),
                            FieldPanel('submit_button_text'),
                        ]),
        MultiFieldPanel(heading='Success page',
                        children=[
                            FieldPanel('success_message_text'),
                            FieldPanel('success_back_link_text'),
                        ]),
        SearchEngineOptimisationPanel(),
    ]

    settings_panels = [
        FieldPanel('slug'),
    ]
    edit_handler = make_translated_interface(
        content_panels=content_panels,
        settings_panels=settings_panels,
    )
Beispiel #9
0
class IndustryArticlePage(BaseFASPage):

    view_path = 'industry-articles/'

    breadcrumbs_label = models.CharField(max_length=50)
    introduction_title = models.CharField(max_length=255)
    body = MarkdownField(blank=True)
    author_name = models.CharField(max_length=255)
    job_title = models.CharField(max_length=255)
    proposition_text = models.CharField(max_length=255)
    call_to_action_text = models.CharField(max_length=500)
    show_table_of_content = models.BooleanField(
        default=False,
        help_text=(
            'Any H2 in the body will be listed in the table of content. '
            'Allows users to click to go to sections of the page. Useful for '
            'long articles.'))
    back_to_home_link_text = models.CharField(max_length=100)
    social_share_title = models.CharField(max_length=100)
    date = models.DateField()

    content_panels = [
        FieldPanel('breadcrumbs_label'),
        MultiFieldPanel(
            heading='Contact us',
            children=[
                FieldPanel('proposition_text'),
                FieldPanel('call_to_action_text'),
            ],
            classname='collapsible',
        ),
        MultiFieldPanel(heading='Article',
                        children=[
                            FieldPanel('introduction_title'),
                            FieldPanel('body'),
                        ]),
        MultiFieldPanel(heading='Author',
                        children=[
                            FieldPanel('author_name'),
                            FieldPanel('job_title'),
                            FieldPanel('date'),
                        ]),
        MultiFieldPanel(heading='Footer',
                        children=[
                            FieldPanel('back_to_home_link_text'),
                            FieldPanel('social_share_title'),
                        ]),
        SearchEngineOptimisationPanel(),
    ]

    settings_panels = [
        FieldPanel('title_en_gb'),
        FieldPanel('slug'),
        MultiFieldPanel(heading='Page structure',
                        children=[FieldPanel('show_table_of_content')])
    ]

    edit_handler = make_translated_interface(content_panels=content_panels,
                                             settings_panels=settings_panels)
Beispiel #10
0
class IndustryLandingPage(ExclusivePageMixin, BreadcrumbMixin, BaseFASPage):
    slug_identity = slugs.FIND_A_SUPPLIER_INDUSTRY_LANDING
    slug_override = 'industries'
    subpage_types = [
        'find_a_supplier.IndustryContactPage',
        'find_a_supplier.IndustryPage',
    ]

    hero_image = models.ForeignKey('wagtailimages.Image',
                                   null=True,
                                   blank=True,
                                   on_delete=models.SET_NULL,
                                   related_name='+')
    mobile_hero_image = models.ForeignKey('wagtailimages.Image',
                                          null=True,
                                          blank=True,
                                          on_delete=models.SET_NULL,
                                          related_name='+')
    hero_image_caption = models.CharField(max_length=255, blank=True)
    breadcrumbs_label = models.CharField(max_length=50)
    hero_title = models.CharField(max_length=500)
    proposition_text = models.CharField(max_length=500)
    call_to_action_text = models.CharField(max_length=500)
    more_industries_title = models.CharField(max_length=100)

    image_panels = [
        ImageChooserPanel('hero_image'),
        ImageChooserPanel('mobile_hero_image'),
    ]

    content_panels = [
        FieldPanel('breadcrumbs_label'),
        FieldPanel('hero_title'),
        FieldPanel('hero_image_caption'),
        MultiFieldPanel(heading='Contact us',
                        children=[
                            FieldRowPanel(children=[
                                FieldPanel('proposition_text'),
                                FieldPanel('call_to_action_text'),
                            ],
                                          classname='full field-row-panel'),
                        ]),
        FieldPanel('more_industries_title'),
        SearchEngineOptimisationPanel(),
    ]
    settings_panels = [
        FieldPanel('title_en_gb'),
        FieldPanel('slug'),
    ]

    edit_handler = make_translated_interface(content_panels=content_panels,
                                             settings_panels=settings_panels,
                                             other_panels=[
                                                 ObjectList(image_panels,
                                                            heading='Images'),
                                             ])
class InternationalInvestmentSubSectorPagePanels:

    content_panels = [
        FieldPanel('title'),
        FieldPanel('heading'),
    ]

    settings_panels = [
        FieldPanel('slug'),
    ]

    edit_handler = make_translated_interface(content_panels=content_panels,
                                             settings_panels=settings_panels)
class InternationalTopicLandingPagePanels:

    content_panels = [
        FieldPanel('title'),
        FieldPanel('landing_page_title'),
        MultiFieldPanel(heading='Hero content',
                        children=[
                            ImageChooserPanel('hero_image'),
                            MediaChooserPanel('hero_video'),
                            FieldPanel('hero_teaser')
                        ]),
        MultiFieldPanel(
            heading="Explore more of the Investment Atlas section",
            classname="collapsible",
            children=[
                PageChooserPanel('related_page_one', [
                    'great_international.WhyInvestInTheUKPage',
                    'great_international.AboutUkRegionPage',
                    'great_international.InvestmentOpportunityPage',
                    'great_international.InvestmentGeneralContentPage',
                    'great_international.AboutUkRegionListingPage',
                    'great_international.InvestmentOpportunityListingPage'
                ]),
                PageChooserPanel('related_page_two', [
                    'great_international.WhyInvestInTheUKPage',
                    'great_international.AboutUkRegionPage',
                    'great_international.InvestmentOpportunityPage',
                    'great_international.InvestmentGeneralContentPage',
                    'great_international.AboutUkRegionListingPage',
                    'great_international.InvestmentOpportunityListingPage'
                ]),
                PageChooserPanel('related_page_three', [
                    'great_international.WhyInvestInTheUKPage',
                    'great_international.AboutUkRegionPage',
                    'great_international.InvestmentOpportunityPage',
                    'great_international.InvestmentGeneralContentPage',
                    'great_international.AboutUkRegionListingPage',
                    'great_international.InvestmentOpportunityListingPage'
                ]),
            ]),
        SearchEngineOptimisationPanel(),
    ]

    settings_panels = [
        FieldPanel('slug'),
        FieldPanel('tags', widget=CheckboxSelectMultiple)
    ]

    edit_handler = make_translated_interface(content_panels=content_panels,
                                             settings_panels=settings_panels)
class InfoPage(BaseInvestPage):
    """
    Markdown page - used for terms and conditions
    and privacy policy
    """
    view_path = 'info/'
    content = MarkdownField()

    content_panels = [FieldPanel('content'), SearchEngineOptimisationPanel()]

    settings_panels = [FieldPanel('title_en_gb'), FieldPanel('slug')]

    edit_handler = make_translated_interface(
        content_panels=content_panels,
        settings_panels=settings_panels,
    )
class InternationalHomePagePanels:

    content_panels = [
        FieldPanel('title'),
        FieldPanel('hero_title'),
        MediaChooserPanel('hero_video'),
        StreamFieldPanel('homepage_link_panels'),
        SearchEngineOptimisationPanel(),
    ]

    settings_panels = [
        FieldPanel('slug'),
    ]

    edit_handler = make_translated_interface(content_panels=content_panels,
                                             settings_panels=settings_panels)
Beispiel #15
0
class CapitalInvestContactFormSuccessPagePanels:
    content_panels = [
        FieldPanel('title'),
        FieldPanel('message_box_heading'),
        FieldPanel('message_box_description'),
        FieldPanel('what_happens_next_description')
    ]

    settings_panels = [
        FieldPanel('slug'),
    ]

    edit_handler = make_translated_interface(
        content_panels=content_panels,
        settings_panels=settings_panels,
    )
Beispiel #16
0
class CapitalInvestContactFormPagePanels:
    content_panels = [
        FieldPanel('title'),
        FieldPanel('breadcrumbs_label'),
        FieldPanel('heading'),
        FieldPanel('intro'),
        FieldPanel('comment'),
        FieldPanel('cta_text'),
        SearchEngineOptimisationPanel()
    ]

    settings_panels = [
        FieldPanel('slug'),
    ]

    edit_handler = make_translated_interface(
        content_panels=content_panels,
        settings_panels=settings_panels,
    )
class InternationalArticleListingPagePanels:

    content_panels = [
        FieldPanel('title'),
        FieldPanel('landing_page_title'),
        MultiFieldPanel(heading='Hero',
                        children=[
                            ImageChooserPanel('hero_image'),
                            FieldPanel('hero_teaser')
                        ]),
        FieldPanel('list_teaser'),
        SearchEngineOptimisationPanel(),
    ]

    settings_panels = [
        FieldPanel('slug'),
        FieldPanel('tags', widget=CheckboxSelectMultiple)
    ]

    edit_handler = make_translated_interface(content_panels=content_panels,
                                             settings_panels=settings_panels)
Beispiel #18
0
class InvestmentGeneralContentPagePanels:
    content_panels = [
        MultiFieldPanel(
            heading="Hero and Intro",
            classname='collapsible',
            children=[
                FieldPanel('title'),
                ImageChooserPanel('hero_image'),
                MediaChooserPanel('hero_video'),
                FieldPanel('strapline'),
                FieldPanel('introduction'),
                ImageChooserPanel('intro_image'),
            ],
        ),
        StreamFieldPanel('main_content'),
        SearchEngineOptimisationPanel(),
    ]
    settings_panels = [
        FieldPanel('slug'),
    ]

    edit_handler = make_translated_interface(content_panels=content_panels,
                                             settings_panels=settings_panels)
class InternationalArticlePagePanels:

    content_panels = [
        FieldPanel('title'),
        FieldPanel('article_title'),
        MultiFieldPanel(heading='Article content',
                        children=[
                            FieldPanel('article_subheading'),
                            FieldPanel('article_teaser'),
                            FieldPanel('article_body_text')
                        ]),
        MultiFieldPanel(heading='CTA fields',
                        children=[
                            FieldPanel('cta_title'),
                            FieldPanel('cta_teaser'),
                            FieldPanel('cta_link_label'),
                            FieldPanel('cta_link'),
                        ]),
        SearchEngineOptimisationPanel(),
    ]

    image_panels = [
        ImageChooserPanel('article_image'),
        FieldPanel('article_video', widget=AdminMediaChooser),
    ]

    settings_panels = [
        FieldPanel('type_of_article', widget=Select),
        FieldPanel('slug'),
        FieldPanel('tags', widget=CheckboxSelectMultiple)
    ]

    edit_handler = make_translated_interface(
        content_panels=content_panels,
        settings_panels=settings_panels,
        other_panels=[ObjectList(image_panels, heading='Images')],
    )
Beispiel #20
0
class IndustryContactPage(ExclusivePageMixin, BreadcrumbMixin, BaseFASPage):

    view_path = 'industries/contact/'
    slug_identity = slugs.FIND_A_SUPPLIER_INDUSTRY_CONTACT
    # override the slug when generating the url
    slug_override = ''

    breadcrumbs_label = models.CharField(max_length=50)
    introduction_text = MarkdownField(blank=True)
    submit_button_text = models.CharField(max_length=100)
    success_message_text = MarkdownField(blank=True)
    success_back_link_text = models.CharField(max_length=100)

    content_panels = [
        MultiFieldPanel(heading='Contact form',
                        children=[
                            FieldPanel('breadcrumbs_label'),
                            FieldPanel('introduction_text'),
                            FieldPanel('submit_button_text'),
                        ]),
        MultiFieldPanel(heading='Success page',
                        children=[
                            FieldPanel('success_message_text'),
                            FieldPanel('success_back_link_text'),
                        ]),
        SearchEngineOptimisationPanel(),
    ]

    settings_panels = [
        FieldPanel('title_en_gb'),
        FieldPanel('slug'),
    ]
    edit_handler = make_translated_interface(
        content_panels=content_panels,
        settings_panels=settings_panels,
    )
Beispiel #21
0
class InvestmentAtlasLandingPagePanels:

    content_panels = [
        MultiFieldPanel(heading="Title and breadcrumbs",
                        classname='collapsible',
                        children=[
                            FieldPanel('title'),
                            FieldPanel('breadcrumbs_label'),
                        ]),
        MultiFieldPanel(heading='Hero',
                        classname='collapsible',
                        children=[
                            ImageChooserPanel('hero_image'),
                            MediaChooserPanel('hero_video'),
                            ImageChooserPanel('mobile_hero_image'),
                            FieldPanel('hero_title'),
                            FieldPanel('hero_strapline'),
                        ]),
        MultiFieldPanel(
            heading='Downpage content panels',
            classname='collapsible',
            children=[
                StreamFieldPanel('downpage_sections'),
            ],
        ),
        SearchEngineOptimisationPanel(),
    ]

    settings_panels = [
        FieldPanel('slug'),
    ]

    edit_handler = make_translated_interface(
        content_panels=content_panels,
        settings_panels=settings_panels,
    )
Beispiel #22
0
class InvestmentOpportunityListingPagePanels:

    content_panels = [
        MultiFieldPanel(
            heading='Opportunity Listing Page Title',
            children=[
                FieldPanel('title'),
                FieldPanel('search_results_title'),
                FieldPanel('breadcrumbs_label'),
            ],
        ),
        MultiFieldPanel(
            heading='Hero content',
            children=[
                MediaChooserPanel('hero_video'),
                FieldPanel('hero_text'),
            ],
        ),
        MultiFieldPanel(
            heading='CTA content',
            children=[
                FieldPanel('contact_cta_title'),
                FieldPanel('contact_cta_text'),
                FieldPanel('contact_cta_link'),
            ],
        ),
        SearchEngineOptimisationPanel(),
    ]
    settings_panels = [
        FieldPanel('slug'),
    ]

    edit_handler = make_translated_interface(
        content_panels=content_panels,
        settings_panels=settings_panels,
    )
Beispiel #23
0
class InvestmentOpportunityPagePanels:

    content_panels = [
        MultiFieldPanel(
            heading='Opportunity Page title, intro and summary',
            classname='collapsible',
            children=[
                FieldPanel('title'),
                FieldPanel('breadcrumbs_label'),
                ImageChooserPanel('hero_image'),
                MediaChooserPanel('hero_video'),
                FieldPanel('strapline'),
                FieldPanel('introduction'),
                ImageChooserPanel('intro_image'),
                FieldPanel('opportunity_summary'),
            ],
        ),
        MultiFieldPanel(
            heading="Key facts",
            classname='collapsible',
            children=[
                FieldRowPanel([
                    FieldPanel('promoter'),
                    FieldPanel('location'),
                    MultiFieldPanel(heading='Scale',
                                    children=[
                                        FieldPanel('scale'),
                                        FieldPanel('scale_value'),
                                    ]),
                ]),
                FieldRowPanel([
                    FieldPanel('planning_status'),
                    FieldPanel('investment_type'),
                    FieldPanel('time_to_investment_decision'),
                ]),
                HelpPanel(
                    'In addition to these, please also set a location in the Location tab'
                ),
            ],
        ),
        MultiFieldPanel(
            heading='Opportunity Contact',
            classname='collapsible',
            children=[
                FieldPanel('contact_name'),
                ImageChooserPanel('contact_avatar'),
                FieldPanel('contact_job_title'),
                FieldPanel('contact_link'),
            ],
        ),
        MultiFieldPanel(
            heading='The Opportunity',
            classname='collapsible',
            children=[
                StreamFieldPanel('main_content'),
                FieldPanel('important_links'),
            ],
        ),
        SearchEngineOptimisationPanel(),
    ]

    related_entities_panels = [
        FieldRowPanel(heading='Location and Relevant Regions',
                      classname='collapsible',
                      children=[
                          StreamFieldPanel('regions_with_locations'),
                      ]),
        FieldRowPanel(
            heading="Sectors and Sub-sectors",
            classname='collapsible collapsed',
            children=[
                InlinePanel('related_sectors', label="Related Sectors"),
                InlinePanel('related_sub_sectors', label="Related Sub-sectors")
            ],
        ),
    ]

    settings_panels = [
        FieldPanel('slug'),
        FieldPanel('priority_weighting'),
    ]

    edit_handler = make_translated_interface(
        content_panels=content_panels,
        other_panels=related_entities_panels,  # These are shown as separate tabs
        settings_panels=settings_panels,
    )
class InternationalTradeHomePagePanels:

    image_panels = [
        ImageChooserPanel('hero_image'),
        ImageChooserPanel('mobile_hero_image'),
    ]

    content_panels = [
        FieldPanel('title'),
        MultiFieldPanel(
            heading='Hero',
            children=[
                FieldPanel('breadcrumbs_label'),
                FieldPanel('hero_text'),
                FieldPanel('hero_image_caption'),
                FieldPanel('search_field_placeholder'),
                FieldPanel('search_button_text'),
            ],
            classname='collapsible',
        ),
        MultiFieldPanel(
            heading='Contact us',
            children=[
                FieldPanel('proposition_text'),
                FieldPanel('call_to_action_text'),
            ],
            classname='collapsible',
        ),
        MultiFieldPanel(
            heading='Industries',
            children=[
                FieldPanel('industries_list_text'),
                FieldPanel('industries_list_call_to_action_text'),
            ],
            classname='collapsible',
        ),
        MultiFieldPanel(
            heading='Services',
            children=[
                FieldPanel('services_list_text'),
                FieldRowPanel(
                    classname='full field-row-panel',
                    children=[
                        MultiFieldPanel([
                            ImageChooserPanel('services_column_one_icon'),
                            FieldPanel('services_column_one'),
                        ]),
                        MultiFieldPanel([
                            ImageChooserPanel('services_column_two_icon'),
                            FieldPanel('services_column_two'),
                        ]),
                        MultiFieldPanel([
                            ImageChooserPanel('services_column_three_icon'),
                            FieldPanel('services_column_three'),
                        ]),
                        MultiFieldPanel([
                            ImageChooserPanel('services_column_four_icon'),
                            FieldPanel('services_column_four'),
                        ]),
                    ],
                ),
                FieldPanel('how_we_help_cta_text'),
                FieldPanel('how_we_help_cta_link'),
            ],
            classname='collapsible',
        ),
        SearchEngineOptimisationPanel()
    ]

    settings_panels = [
        FieldPanel('slug'),
    ]

    edit_handler = make_translated_interface(content_panels=content_panels,
                                             settings_panels=settings_panels,
                                             other_panels=[
                                                 ObjectList(image_panels,
                                                            heading='Images'),
                                             ])
Beispiel #25
0
class SectorPage(BasePage):
    # Related sector are implemented as subpages
    service_name_value = cms.INVEST
    subpage_types = ['invest.sectorPage']
    view_path = 'industries/'

    featured = models.BooleanField(default=False)
    description = models.TextField()  # appears in card on external pages

    # page fields
    heading = models.CharField(max_length=255)

    hero_image = models.ForeignKey('wagtailimages.Image',
                                   null=True,
                                   blank=True,
                                   on_delete=models.SET_NULL,
                                   related_name='+')

    pullout_text = MarkdownField(blank=True, null=True)
    pullout_stat = models.CharField(max_length=255, blank=True, null=True)
    pullout_stat_text = models.CharField(max_length=255, blank=True, null=True)

    subsection_title_one = models.CharField(max_length=200)
    subsection_content_one = MarkdownField()
    subsection_map_one = models.ForeignKey('wagtailimages.Image',
                                           null=True,
                                           blank=True,
                                           on_delete=models.SET_NULL,
                                           related_name='+')

    subsection_title_two = models.CharField(max_length=200)
    subsection_content_two = MarkdownField()
    subsection_map_two = models.ForeignKey('wagtailimages.Image',
                                           null=True,
                                           blank=True,
                                           on_delete=models.SET_NULL,
                                           related_name='+')

    subsection_title_three = models.CharField(max_length=200, blank=True)
    subsection_content_three = MarkdownField(blank=True)
    subsection_map_three = models.ForeignKey('wagtailimages.Image',
                                             null=True,
                                             blank=True,
                                             on_delete=models.SET_NULL,
                                             related_name='+')

    subsection_title_four = models.CharField(max_length=200, blank=True)
    subsection_content_four = MarkdownField(blank=True)
    subsection_map_four = models.ForeignKey('wagtailimages.Image',
                                            null=True,
                                            blank=True,
                                            on_delete=models.SET_NULL,
                                            related_name='+')

    subsection_title_five = models.CharField(max_length=200, blank=True)
    subsection_content_five = MarkdownField(blank=True)
    subsection_map_five = models.ForeignKey('wagtailimages.Image',
                                            null=True,
                                            blank=True,
                                            on_delete=models.SET_NULL,
                                            related_name='+')

    subsection_title_six = models.CharField(max_length=200, blank=True)
    subsection_content_six = MarkdownField(blank=True)
    subsection_map_six = models.ForeignKey('wagtailimages.Image',
                                           null=True,
                                           blank=True,
                                           on_delete=models.SET_NULL,
                                           related_name='+')

    subsection_title_seven = models.CharField(max_length=200, blank=True)
    subsection_content_seven = MarkdownField(blank=True)
    subsection_map_seven = models.ForeignKey('wagtailimages.Image',
                                             null=True,
                                             blank=True,
                                             on_delete=models.SET_NULL,
                                             related_name='+')
    # subsections end

    image_panels = [
        ImageChooserPanel('hero_image'),
    ]
    content_panels = [
        FieldPanel('description'),
        FieldPanel('heading'),
        MultiFieldPanel([
            FieldPanel('pullout_text'),
            FieldPanel('pullout_stat'),
            FieldPanel('pullout_stat_text')
        ],
                        heading='Pullout',
                        classname='collapsible'),
        # subsections panels
        MultiFieldPanel([
            FieldPanel('subsection_title_one'),
            FieldPanel('subsection_content_one'),
            ImageChooserPanel('subsection_map_one')
        ],
                        heading='subsections one',
                        classname='collapsible'),
        MultiFieldPanel([
            FieldPanel('subsection_title_two'),
            FieldPanel('subsection_content_two'),
            ImageChooserPanel('subsection_map_two')
        ],
                        heading='subsections two',
                        classname='collapsible'),
        MultiFieldPanel([
            FieldPanel('subsection_title_three'),
            FieldPanel('subsection_content_three'),
            ImageChooserPanel('subsection_map_three')
        ],
                        heading='subsections three',
                        classname='collapsible collapsed'),
        MultiFieldPanel([
            FieldPanel('subsection_title_four'),
            FieldPanel('subsection_content_four'),
            ImageChooserPanel('subsection_map_four')
        ],
                        heading='subsections four',
                        classname='collapsible collapsed'),
        MultiFieldPanel([
            FieldPanel('subsection_title_five'),
            FieldPanel('subsection_content_five'),
            ImageChooserPanel('subsection_map_five')
        ],
                        heading='subsections five',
                        classname='collapsible collapsed'),
        MultiFieldPanel([
            FieldPanel('subsection_title_six'),
            FieldPanel('subsection_content_six'),
            ImageChooserPanel('subsection_map_six')
        ],
                        heading='subsections six',
                        classname='collapsible collapsed'),
        MultiFieldPanel([
            FieldPanel('subsection_title_seven'),
            FieldPanel('subsection_content_seven'),
            ImageChooserPanel('subsection_map_seven')
        ],
                        heading='Subsection seven',
                        classname='collapsible collapsed'),
        SearchEngineOptimisationPanel()
    ]
    settings_panels = [
        FieldPanel('title_en_gb'),
        FieldPanel('slug'),
        FieldPanel('featured')
    ]

    edit_handler = make_translated_interface(content_panels=content_panels,
                                             settings_panels=settings_panels,
                                             other_panels=[
                                                 ObjectList(image_panels,
                                                            heading='Images'),
                                             ])
Beispiel #26
0
class InvestHomePage(ExclusivePageMixin, BasePage):
    service_name_value = cms.INVEST
    slug_identity = cms.INVEST_HOME_PAGE_SLUG
    view_path = ''

    heading = models.CharField(max_length=255)
    sub_heading = models.CharField(max_length=255)
    hero_image = models.ForeignKey('wagtailimages.Image',
                                   blank=True,
                                   null=True,
                                   on_delete=models.SET_NULL,
                                   related_name='+')

    # subsections
    subsection_title_one = models.CharField(max_length=255)
    subsection_content_one = MarkdownField()

    subsection_title_two = models.CharField(max_length=255)
    subsection_content_two = MarkdownField()

    subsection_title_three = models.CharField(max_length=255, blank=True)
    subsection_content_three = MarkdownField(blank=True)

    subsection_title_four = models.CharField(max_length=255, blank=True)
    subsection_content_four = MarkdownField(blank=True)

    subsection_title_five = models.CharField(max_length=255, blank=True)
    subsection_content_five = MarkdownField(blank=True)

    subsection_title_six = models.CharField(max_length=255, blank=True)
    subsection_content_six = MarkdownField(blank=True)

    subsection_title_seven = models.CharField(max_length=255, blank=True)
    subsection_content_seven = MarkdownField(blank=True)

    sector_title = models.TextField(default="Discover UK Industries",
                                    max_length=255)

    sector_button_text = models.TextField(default="See more industries",
                                          max_length=255)

    setup_guide_title = models.CharField(
        default='Set up an overseas business in the UK', max_length=255)

    setup_guide_lead_in = models.TextField(blank=True, null=True)

    how_we_help_title = models.CharField(default='How we help', max_length=255)
    how_we_help_lead_in = models.TextField(blank=True, null=True)
    # how we help
    how_we_help_text_one = models.CharField(max_length=255)
    how_we_help_icon_one = models.ForeignKey('wagtailimages.Image',
                                             null=True,
                                             blank=True,
                                             on_delete=models.SET_NULL,
                                             related_name='+')
    how_we_help_text_two = models.CharField(max_length=255)
    how_we_help_icon_two = models.ForeignKey('wagtailimages.Image',
                                             null=True,
                                             blank=True,
                                             on_delete=models.SET_NULL,
                                             related_name='+')
    how_we_help_text_three = models.CharField(max_length=255)
    how_we_help_icon_three = models.ForeignKey('wagtailimages.Image',
                                               null=True,
                                               blank=True,
                                               on_delete=models.SET_NULL,
                                               related_name='+')
    how_we_help_text_four = models.CharField(max_length=255)
    how_we_help_icon_four = models.ForeignKey('wagtailimages.Image',
                                              null=True,
                                              blank=True,
                                              on_delete=models.SET_NULL,
                                              related_name='+')
    how_we_help_text_five = models.CharField(max_length=255)
    how_we_help_icon_five = models.ForeignKey('wagtailimages.Image',
                                              null=True,
                                              blank=True,
                                              on_delete=models.SET_NULL,
                                              related_name='+')
    how_we_help_text_six = models.CharField(max_length=255)

    image_panels = [
        ImageChooserPanel('hero_image'),
    ]

    content_panels = [
        FieldPanel('heading'),
        FieldPanel('sub_heading'),
        # subsections
        MultiFieldPanel([
            FieldPanel('subsection_title_one'),
            FieldPanel('subsection_content_one'),
        ],
                        heading='subsections one',
                        classname='collapsible'),
        MultiFieldPanel([
            FieldPanel('subsection_title_two'),
            FieldPanel('subsection_content_two'),
        ],
                        heading='subsections two',
                        classname='collapsible'),
        MultiFieldPanel([
            FieldPanel('subsection_title_three'),
            FieldPanel('subsection_content_three'),
        ],
                        heading='subsections three',
                        classname='collapsible collapsed'),
        MultiFieldPanel([
            FieldPanel('subsection_title_four'),
            FieldPanel('subsection_content_four'),
        ],
                        heading='subsections four',
                        classname='collapsible collapsed'),
        MultiFieldPanel([
            FieldPanel('subsection_title_five'),
            FieldPanel('subsection_content_five'),
        ],
                        heading='subsections five',
                        classname='collapsible collapsed'),
        MultiFieldPanel([
            FieldPanel('subsection_title_six'),
            FieldPanel('subsection_content_six'),
        ],
                        heading='subsections six',
                        classname='collapsible collapsed'),
        MultiFieldPanel([
            FieldPanel('subsection_title_seven'),
            FieldPanel('subsection_content_seven'),
        ],
                        heading='subsections seven',
                        classname='collapsible collapsed'),
        FieldPanel('sector_title'),
        FieldPanel('sector_button_text'),
        FieldPanel('setup_guide_title'),
        FieldPanel('setup_guide_lead_in'),
        FieldPanel('how_we_help_title'),
        FieldPanel('how_we_help_lead_in'),
        MultiFieldPanel([
            FieldPanel('how_we_help_text_one'),
            ImageChooserPanel('how_we_help_icon_one')
        ],
                        heading='How we help one',
                        classname='collapsible'),
        MultiFieldPanel([
            FieldPanel('how_we_help_text_two'),
            ImageChooserPanel('how_we_help_icon_two')
        ],
                        heading='How we help two',
                        classname='collapsible'),
        MultiFieldPanel([
            FieldPanel('how_we_help_text_three'),
            ImageChooserPanel('how_we_help_icon_three')
        ],
                        heading='How we help three',
                        classname='collapsible'),
        MultiFieldPanel([
            FieldPanel('how_we_help_text_four'),
            ImageChooserPanel('how_we_help_icon_four')
        ],
                        heading='How we help four',
                        classname='collapsible'),
        MultiFieldPanel([
            FieldPanel('how_we_help_text_five'),
            ImageChooserPanel('how_we_help_icon_five')
        ],
                        heading='How we help five',
                        classname='collapsible'),
        MultiFieldPanel([
            FieldPanel('how_we_help_text_six'),
        ],
                        heading='How we help six',
                        classname='collapsible'),
        SearchEngineOptimisationPanel()
    ]

    settings_panels = [
        FieldPanel('title_en_gb'),
        FieldPanel('slug'),
    ]

    edit_handler = make_translated_interface(content_panels=content_panels,
                                             settings_panels=settings_panels,
                                             other_panels=[
                                                 ObjectList(image_panels,
                                                            heading='Images'),
                                             ])
Beispiel #27
0
class SetupGuidePage(BasePage):
    service_name_value = cms.INVEST
    view_path = 'setup-guides/'

    description = models.TextField()  # appears in card on external pages

    heading = models.CharField(max_length=255)
    sub_heading = models.CharField(max_length=255)

    # subsections
    subsection_title_one = models.CharField(max_length=255)
    subsection_content_one = MarkdownField()

    subsection_title_two = models.CharField(max_length=255)
    subsection_content_two = MarkdownField()

    subsection_title_three = models.CharField(max_length=255, blank=True)
    subsection_content_three = MarkdownField(blank=True)

    subsection_title_four = models.CharField(max_length=255, blank=True)
    subsection_content_four = MarkdownField(blank=True)

    subsection_title_five = models.CharField(max_length=255, blank=True)
    subsection_content_five = MarkdownField(blank=True)

    subsection_title_six = models.CharField(max_length=255, blank=True)
    subsection_content_six = MarkdownField(blank=True)

    subsection_title_seven = models.CharField(max_length=255, blank=True)
    subsection_content_seven = MarkdownField(blank=True)

    content_panels = [
        FieldPanel('description'),
        FieldPanel('heading'),
        FieldPanel('sub_heading'),
        # subsections
        MultiFieldPanel([
            FieldPanel('subsection_title_one'),
            FieldPanel('subsection_content_one'),
        ],
                        heading='subsections one',
                        classname='collapsible'),
        MultiFieldPanel([
            FieldPanel('subsection_title_two'),
            FieldPanel('subsection_content_two'),
        ],
                        heading='subsections two',
                        classname='collapsible'),
        MultiFieldPanel([
            FieldPanel('subsection_title_three'),
            FieldPanel('subsection_content_three'),
        ],
                        heading='subsections three',
                        classname='collapsible collapsed'),
        MultiFieldPanel([
            FieldPanel('subsection_title_four'),
            FieldPanel('subsection_content_four'),
        ],
                        heading='subsections four',
                        classname='collapsible collapsed'),
        MultiFieldPanel([
            FieldPanel('subsection_title_five'),
            FieldPanel('subsection_content_five'),
        ],
                        heading='subsections five',
                        classname='collapsible collapsed'),
        MultiFieldPanel([
            FieldPanel('subsection_title_six'),
            FieldPanel('subsection_content_six'),
        ],
                        heading='subsections six',
                        classname='collapsible collapsed'),
        MultiFieldPanel([
            FieldPanel('subsection_title_seven'),
            FieldPanel('subsection_content_seven'),
        ],
                        heading='subsections seven',
                        classname='collapsible collapsed'),
        SearchEngineOptimisationPanel()
    ]

    settings_panels = [
        FieldPanel('title_en_gb'),
        FieldPanel('slug'),
    ]

    edit_handler = make_translated_interface(
        content_panels=content_panels,
        settings_panels=settings_panels,
    )
class AboutUkWhyChooseTheUkPagePanels:

    content_panels = [
        FieldPanel('title'),
        FieldPanel('breadcrumbs_label'),
        MultiFieldPanel(
            heading="Hero",
            children=[
                FieldPanel('hero_title'),
                ImageChooserPanel('hero_image'),
            ],
        ),
        MultiFieldPanel(
            heading="Teaser",
            children=[
                FieldPanel('teaser'),
                FieldPanel('primary_contact_cta_text'),
                FieldPanel('primary_contact_cta_link')
            ],
        ),
        MultiFieldPanel(
            heading="Section 1",
            classname='collapsible',
            children=[
                HelpPanel('At least one field required for section to show'),
                FieldRowPanel([
                    FieldPanel('section_one_body'),
                    MultiFieldPanel([
                        ImageChooserPanel('section_one_image'),
                        FieldPanel('section_one_video',
                                   widget=AdminMediaChooser)
                    ])
                ])
            ],
        ),
        MultiFieldPanel(heading='Statistics',
                        classname='collapsible',
                        children=[
                            FieldRowPanel([
                                MultiFieldPanel([
                                    FieldPanel('statistic_1_heading'),
                                    FieldPanel('statistic_1_number'),
                                    FieldPanel('statistic_1_smallprint')
                                ]),
                                MultiFieldPanel([
                                    FieldPanel('statistic_2_heading'),
                                    FieldPanel('statistic_2_number'),
                                    FieldPanel('statistic_2_smallprint')
                                ]),
                                MultiFieldPanel([
                                    FieldPanel('statistic_3_heading'),
                                    FieldPanel('statistic_3_number'),
                                    FieldPanel('statistic_3_smallprint')
                                ]),
                                MultiFieldPanel([
                                    FieldPanel('statistic_4_heading'),
                                    FieldPanel('statistic_4_number'),
                                    FieldPanel('statistic_4_smallprint')
                                ]),
                                MultiFieldPanel([
                                    FieldPanel('statistic_5_heading'),
                                    FieldPanel('statistic_5_number'),
                                    FieldPanel('statistic_5_smallprint')
                                ]),
                                MultiFieldPanel([
                                    FieldPanel('statistic_6_heading'),
                                    FieldPanel('statistic_6_number'),
                                    FieldPanel('statistic_6_smallprint')
                                ]),
                            ])
                        ]),
        MultiFieldPanel(heading="Articles section",
                        classname='collapsible',
                        children=[
                            InlinePanel('about_uk_articles_fields',
                                        label="About UK articles")
                        ]),
        MultiFieldPanel(
            heading="EBook section",
            classname='collapsible',
            children=[
                HelpPanel('Required fields for section to show: title, body'),
                FieldRowPanel([
                    ImageChooserPanel('ebook_section_image'),
                    FieldPanel('ebook_section_image_alt_text')
                ]),
                MultiFieldPanel([
                    FieldPanel('ebook_section_title'),
                    FieldPanel('ebook_section_body'),
                    HelpPanel(
                        'CTAs require both text and a link to show on page.'),
                    FieldPanel('ebook_section_cta_text'),
                    FieldPanel('ebook_section_cta_link'),
                ]),
            ]),
        MultiFieldPanel(
            heading="Related pages",
            classname='collapsible',
            children=[
                HelpPanel(
                    'Required for section to show: title and at least one related page'
                ),
                FieldPanel('how_dit_help_title'),
                FieldRowPanel([
                    MultiFieldPanel([
                        PageChooserPanel(
                            'related_page_one',
                            'great_international.AboutDitServicesPage'),
                    ]),
                    MultiFieldPanel([
                        PageChooserPanel(
                            'related_page_two',
                            'great_international.AboutDitServicesPage'),
                    ]),
                    MultiFieldPanel([
                        PageChooserPanel(
                            'related_page_three',
                            'great_international.AboutDitServicesPage'),
                    ]),
                ]),
            ],
        ),
        MultiFieldPanel(
            heading="Contact Section",
            classname='collapsible',
            children=[
                HelpPanel('Required fields for section to show: '
                          'Title, Summary'),
                FieldPanel('contact_us_section_title'),
                FieldPanel('contact_us_section_summary'),
                HelpPanel('CTAs require both text and a link to show '
                          'on page. '),
                FieldPanel('contact_us_section_cta_text'),
                FieldPanel('contact_us_section_cta_link'),
            ],
        ),
        SearchEngineOptimisationPanel()
    ]

    settings_panels = [
        FieldPanel('slug'),
    ]

    edit_handler = make_translated_interface(content_panels=content_panels,
                                             settings_panels=settings_panels)
class HighPotentialOpportunityDetailPage(BaseInvestPage):
    subpage_types = ['invest.HighPotentialOpportunityDetailPage']
    view_path = 'high-potential-opportunities/'

    breadcrumbs_label = models.CharField(max_length=50)
    heading = models.CharField(max_length=255)
    hero_image = models.ForeignKey('wagtailimages.Image',
                                   null=True,
                                   blank=True,
                                   on_delete=models.SET_NULL,
                                   related_name='+')

    featured = models.BooleanField(default=True)
    description = models.TextField(
        blank=True,
        help_text="This is the description shown when the HPO "
        "is featured on another page i.e. the Invest Home Page")

    contact_proposition = MarkdownField(
        blank=False,
        verbose_name='Body text',
    )
    contact_button = models.CharField(max_length=500)
    proposition_one = MarkdownField(blank=False)
    proposition_one_image = models.ForeignKey('wagtailimages.Image',
                                              null=True,
                                              blank=True,
                                              on_delete=models.SET_NULL,
                                              related_name='+')
    proposition_one_video = models.ForeignKey('wagtailmedia.Media',
                                              null=True,
                                              blank=True,
                                              on_delete=models.SET_NULL,
                                              related_name='+')
    opportunity_list_title = models.CharField(max_length=300)
    opportunity_list_item_one = MarkdownField()
    opportunity_list_item_two = MarkdownField()
    opportunity_list_item_three = MarkdownField(blank=True)
    opportunity_list_image = models.ForeignKey('wagtailimages.Image',
                                               null=True,
                                               blank=True,
                                               on_delete=models.SET_NULL,
                                               related_name='+')
    proposition_two = MarkdownField(blank=False)
    proposition_two_list_item_one = MarkdownField()
    proposition_two_list_item_two = MarkdownField()
    proposition_two_list_item_three = MarkdownField()
    proposition_two_image = models.ForeignKey('wagtailimages.Image',
                                              null=True,
                                              blank=True,
                                              on_delete=models.SET_NULL,
                                              related_name='+')
    proposition_two_video = models.ForeignKey('wagtailmedia.Media',
                                              null=True,
                                              blank=True,
                                              on_delete=models.SET_NULL,
                                              related_name='+')
    competitive_advantages_title = models.CharField(
        max_length=300,
        verbose_name='Body text',
    )
    competitive_advantages_list_item_one = MarkdownField()
    competitive_advantages_list_item_one_icon = models.ForeignKey(
        'wagtailimages.Image',
        null=True,
        blank=True,
        on_delete=models.SET_NULL,
        related_name='+')
    competitive_advantages_list_item_two = MarkdownField()
    competitive_advantages_list_item_two_icon = models.ForeignKey(
        'wagtailimages.Image',
        null=True,
        blank=True,
        on_delete=models.SET_NULL,
        related_name='+')
    competitive_advantages_list_item_three = MarkdownField()
    competitive_advantages_list_item_three_icon = models.ForeignKey(
        'wagtailimages.Image',
        null=True,
        blank=True,
        on_delete=models.SET_NULL,
        related_name='+')
    testimonial = MarkdownField(blank=True)
    testimonial_background = models.ForeignKey(
        'wagtailimages.Image',
        null=True,
        blank=True,
        on_delete=models.SET_NULL,
        related_name='+',
        verbose_name='Background image',
    )
    companies_list_text = MarkdownField()
    companies_list_item_image_one = models.ForeignKey(
        'wagtailimages.Image',
        null=True,
        blank=True,
        on_delete=models.SET_NULL,
        related_name='+')
    companies_list_item_image_two = models.ForeignKey(
        'wagtailimages.Image',
        null=True,
        blank=True,
        on_delete=models.SET_NULL,
        related_name='+')
    companies_list_item_image_three = models.ForeignKey(
        'wagtailimages.Image',
        null=True,
        blank=True,
        on_delete=models.SET_NULL,
        related_name='+')
    companies_list_item_image_four = models.ForeignKey(
        'wagtailimages.Image',
        null=True,
        blank=True,
        on_delete=models.SET_NULL,
        related_name='+')
    companies_list_item_image_five = models.ForeignKey(
        'wagtailimages.Image',
        null=True,
        blank=True,
        on_delete=models.SET_NULL,
        related_name='+')
    companies_list_item_image_six = models.ForeignKey(
        'wagtailimages.Image',
        null=True,
        blank=True,
        on_delete=models.SET_NULL,
        related_name='+')
    companies_list_item_image_seven = models.ForeignKey(
        'wagtailimages.Image',
        null=True,
        blank=True,
        on_delete=models.SET_NULL,
        related_name='+')
    companies_list_item_image_eight = models.ForeignKey(
        'wagtailimages.Image',
        null=True,
        blank=True,
        on_delete=models.SET_NULL,
        related_name='+')
    case_study_list_title = models.CharField(max_length=300)
    case_study_one_text = MarkdownField(blank=True)
    case_study_one_image = models.ForeignKey('wagtailimages.Image',
                                             null=True,
                                             blank=True,
                                             on_delete=models.SET_NULL,
                                             related_name='+')
    case_study_two_text = MarkdownField(blank=True)
    case_study_two_image = models.ForeignKey('wagtailimages.Image',
                                             null=True,
                                             blank=True,
                                             on_delete=models.SET_NULL,
                                             related_name='+')
    case_study_three_text = MarkdownField(blank=True)
    case_study_three_image = models.ForeignKey('wagtailimages.Image',
                                               null=True,
                                               blank=True,
                                               on_delete=models.SET_NULL,
                                               related_name='+')
    case_study_four_text = MarkdownField(blank=True)
    case_study_four_image = models.ForeignKey('wagtailimages.Image',
                                              null=True,
                                              blank=True,
                                              on_delete=models.SET_NULL,
                                              related_name='+')
    other_opportunities_title = models.CharField(max_length=300,
                                                 verbose_name='Title')
    pdf_document = models.ForeignKey('wagtaildocs.Document',
                                     null=True,
                                     on_delete=models.SET_NULL,
                                     related_name='+')
    summary_image = models.ForeignKey(
        'wagtailimages.Image',
        null=True,
        blank=True,
        on_delete=models.SET_NULL,
        related_name='+',
        help_text=(
            'Image used on the opportunity listing page for this opportunity'),
        verbose_name='Image',
    )

    content_panels = [
        MultiFieldPanel(heading='Hero',
                        children=[
                            FieldPanel('breadcrumbs_label'),
                            FieldPanel('heading'),
                            ImageChooserPanel('hero_image'),
                        ]),
        MultiFieldPanel(heading='Featured Description',
                        children=[FieldPanel('description')]),
        MultiFieldPanel(heading='Contact us',
                        children=[
                            FieldRowPanel(children=[
                                FieldPanel('contact_proposition'),
                                FieldPanel('contact_button'),
                            ])
                        ]),
        MultiFieldPanel(heading='Proposition one',
                        children=[
                            FieldRowPanel(children=[
                                FieldPanel('proposition_one'),
                                MultiFieldPanel(children=[
                                    ImageChooserPanel('proposition_one_image'),
                                    FieldPanel('proposition_one_video',
                                               widget=AdminMediaChooser),
                                ])
                            ])
                        ]),
        MultiFieldPanel(heading='Opportunity list',
                        children=[
                            FieldPanel('opportunity_list_title'),
                            FieldRowPanel(children=[
                                MultiFieldPanel(children=[
                                    FieldPanel('opportunity_list_item_one'),
                                    FieldPanel('opportunity_list_item_two'),
                                    FieldPanel('opportunity_list_item_three'),
                                ]),
                                ImageChooserPanel('opportunity_list_image'),
                            ])
                        ]),
        MultiFieldPanel(
            heading='Opportunity list',
            children=[
                FieldRowPanel(children=[
                    MultiFieldPanel(children=[
                        FieldPanel('proposition_two'),
                        FieldPanel('proposition_two_list_item_one'),
                        FieldPanel('proposition_two_list_item_two'),
                        FieldPanel('proposition_two_list_item_three'),
                    ]),
                    MultiFieldPanel(children=[
                        ImageChooserPanel('proposition_two_image'),
                        FieldPanel('proposition_two_video',
                                   widget=AdminMediaChooser),
                    ])
                ])
            ]),
        MultiFieldPanel(
            heading='Key facts',
            children=[
                FieldPanel('competitive_advantages_title'),
                FieldRowPanel(children=[
                    FieldPanel('competitive_advantages_list_item_one'),
                    FieldPanel('competitive_advantages_list_item_two'),
                    FieldPanel('competitive_advantages_list_item_three'),
                ]),
                FieldRowPanel(children=[
                    ImageChooserPanel(
                        'competitive_advantages_list_item_one_icon'),
                    ImageChooserPanel(
                        'competitive_advantages_list_item_two_icon'),
                    ImageChooserPanel(
                        'competitive_advantages_list_item_three_icon'),
                ])
            ]),
        MultiFieldPanel(heading='Testimonial',
                        children=[
                            FieldPanel('testimonial'),
                            ImageChooserPanel('testimonial_background'),
                        ]),
        MultiFieldPanel(
            heading='Company list',
            children=[
                FieldPanel('companies_list_text'),
                FieldRowPanel(children=[
                    ImageChooserPanel('companies_list_item_image_one'),
                    ImageChooserPanel('companies_list_item_image_two'),
                    ImageChooserPanel('companies_list_item_image_three'),
                    ImageChooserPanel('companies_list_item_image_four'),
                ]),
                FieldRowPanel(children=[
                    ImageChooserPanel('companies_list_item_image_five'),
                    ImageChooserPanel('companies_list_item_image_six'),
                    ImageChooserPanel('companies_list_item_image_seven'),
                    ImageChooserPanel('companies_list_item_image_eight'),
                ])
            ]),
        MultiFieldPanel(heading='Case studies',
                        children=[
                            FieldPanel('case_study_list_title'),
                            FieldRowPanel(children=[
                                FieldPanel('case_study_one_text'),
                                ImageChooserPanel('case_study_one_image'),
                            ]),
                            FieldRowPanel(children=[
                                FieldPanel('case_study_two_text'),
                                ImageChooserPanel('case_study_two_image'),
                            ]),
                            FieldRowPanel(children=[
                                FieldPanel('case_study_three_text'),
                                ImageChooserPanel('case_study_three_image'),
                            ]),
                            FieldRowPanel(children=[
                                FieldPanel('case_study_four_text'),
                                ImageChooserPanel('case_study_four_image'),
                            ])
                        ]),
        MultiFieldPanel(heading='Other opportunities',
                        children=[
                            FieldPanel('other_opportunities_title'),
                        ]),
        MultiFieldPanel(
            heading='Summary',
            children=[ImageChooserPanel('summary_image')],
        ),
        SearchEngineOptimisationPanel(),
    ]
    settings_panels = [
        FieldPanel('title_en_gb'),
        FieldPanel('slug'),
        FieldPanel('featured'),
        DocumentChooserPanel('pdf_document'),
    ]

    edit_handler = make_translated_interface(content_panels=content_panels,
                                             settings_panels=settings_panels)
class InvestHomePage(ExclusivePageMixin, ServiceHomepageMixin, BaseInvestPage):
    slug_identity = slugs.INVEST_HOME_PAGE
    view_path = ''

    breadcrumbs_label = models.CharField(max_length=50)
    heading = models.CharField(max_length=255)
    sub_heading = models.CharField(max_length=255)
    hero_call_to_action_text = models.CharField(max_length=255, blank=True)
    hero_call_to_action_url = models.CharField(max_length=255, blank=True)
    hero_image = models.ForeignKey('wagtailimages.Image',
                                   blank=True,
                                   null=True,
                                   on_delete=models.SET_NULL,
                                   related_name='+')

    benefits_section_title = models.CharField(max_length=255, blank=True)
    benefits_section_intro = models.TextField(max_length=255, blank=True)
    benefits_section_content = MarkdownField(blank=True)
    benefits_section_img = models.ForeignKey(
        'wagtailimages.Image',
        blank=True,
        null=True,
        on_delete=models.SET_NULL,
        related_name='+',
        verbose_name="Benefits section image")

    eu_exit_section_title = models.CharField(
        max_length=255, blank=True, verbose_name="EU exit section title")

    eu_exit_section_content = MarkdownField(
        blank=True, verbose_name="EU exit section content")

    eu_exit_section_call_to_action_text = models.CharField(
        max_length=255, blank=True, verbose_name="EU exit section button text")

    eu_exit_section_call_to_action_url = models.CharField(
        max_length=255, blank=True, verbose_name="EU exit section button url")

    eu_exit_section_img = models.ForeignKey(
        'wagtailimages.Image',
        blank=True,
        null=True,
        on_delete=models.SET_NULL,
        related_name='+',
        verbose_name="EU exit section image")

    sector_title = models.TextField(default="Discover UK Industries",
                                    max_length=255,
                                    blank=True)

    sector_button_text = models.TextField(default="See more industries",
                                          max_length=255,
                                          blank=True)

    sector_button_url = models.CharField(max_length=255, blank=True)

    sector_intro = models.TextField(max_length=255, blank=True)

    hpo_title = models.CharField(
        max_length=255,
        verbose_name="High potential opportunity section title",
        blank=True)
    hpo_intro = models.TextField(
        max_length=255,
        blank=True,
        verbose_name="High potential opportunity section intro")

    capital_invest_section_title = models.CharField(max_length=255, blank=True)
    capital_invest_section_content = MarkdownField(blank=True)
    capital_invest_section_image = models.ForeignKey('wagtailimages.Image',
                                                     blank=True,
                                                     null=True,
                                                     on_delete=models.SET_NULL,
                                                     related_name='+')

    setup_guide_title = models.CharField(
        default='Set up an overseas business in the UK',
        max_length=255,
        blank=True)

    setup_guide_lead_in = models.TextField(blank=True, null=True)

    setup_guide_content = MarkdownField(blank=True)
    setup_guide_img = models.ForeignKey('wagtailimages.Image',
                                        blank=True,
                                        null=True,
                                        on_delete=models.SET_NULL,
                                        related_name='+',
                                        verbose_name="Setup guide image")
    setup_guide_call_to_action_url = models.CharField(max_length=255,
                                                      blank=True)

    isd_section_image = models.ForeignKey(
        'wagtailimages.Image',
        blank=True,
        null=True,
        on_delete=models.SET_NULL,
        related_name='+',
        verbose_name='Investment Support Directory section image')
    isd_section_title = models.CharField(
        max_length=255,
        blank=True,
        verbose_name='Investment Support Directory section title')
    isd_section_text = MarkdownField(
        max_length=255,
        blank=True,
        verbose_name='Investment Support Directory section text')

    featured_card_one_image = models.ForeignKey(
        'wagtailimages.Image',
        blank=True,
        null=True,
        on_delete=models.SET_NULL,
        related_name='+',
    )
    featured_card_one_title = models.CharField(blank=True, max_length=255)
    featured_card_one_summary = MarkdownField(blank=True)
    featured_card_one_cta_link = models.CharField(max_length=255, blank=True)

    featured_card_two_image = models.ForeignKey(
        'wagtailimages.Image',
        blank=True,
        null=True,
        on_delete=models.SET_NULL,
        related_name='+',
    )
    featured_card_two_title = models.CharField(
        max_length=255,
        blank=True,
    )
    featured_card_two_summary = MarkdownField(
        max_length=255,
        blank=True,
    )
    featured_card_two_cta_link = models.CharField(max_length=255, blank=True)

    featured_card_three_image = models.ForeignKey('wagtailimages.Image',
                                                  blank=True,
                                                  null=True,
                                                  on_delete=models.SET_NULL,
                                                  related_name='+')
    featured_card_three_title = models.CharField(max_length=255, blank=True)
    featured_card_three_summary = MarkdownField(blank=True)
    featured_card_three_cta_link = models.CharField(max_length=255, blank=True)

    how_we_help_title = models.CharField(default='How we help',
                                         max_length=255,
                                         blank=True)
    how_we_help_lead_in = models.TextField(blank=True, null=True)
    # how we help
    how_we_help_text_one = models.CharField(max_length=255, blank=True)
    how_we_help_icon_one = models.ForeignKey('wagtailimages.Image',
                                             null=True,
                                             blank=True,
                                             on_delete=models.SET_NULL,
                                             related_name='+')
    how_we_help_text_two = models.CharField(max_length=255, blank=True)
    how_we_help_icon_two = models.ForeignKey('wagtailimages.Image',
                                             null=True,
                                             blank=True,
                                             on_delete=models.SET_NULL,
                                             related_name='+')
    how_we_help_text_three = models.CharField(max_length=255, blank=True)
    how_we_help_icon_three = models.ForeignKey('wagtailimages.Image',
                                               null=True,
                                               blank=True,
                                               on_delete=models.SET_NULL,
                                               related_name='+')
    how_we_help_text_four = models.CharField(max_length=255, blank=True)
    how_we_help_icon_four = models.ForeignKey('wagtailimages.Image',
                                              null=True,
                                              blank=True,
                                              on_delete=models.SET_NULL,
                                              related_name='+')
    how_we_help_text_five = models.CharField(max_length=255, blank=True)
    how_we_help_icon_five = models.ForeignKey('wagtailimages.Image',
                                              null=True,
                                              blank=True,
                                              on_delete=models.SET_NULL,
                                              related_name='+')
    how_we_help_text_six = models.CharField(max_length=255, blank=True)

    contact_section_title = models.CharField(max_length=255, blank=True)
    contact_section_content = models.TextField(max_length=255, blank=True)
    contact_section_call_to_action_text = models.CharField(max_length=255,
                                                           blank=True)
    contact_section_call_to_action_url = models.CharField(max_length=255,
                                                          blank=True)

    image_panels = [
        ImageChooserPanel('hero_image'),
    ]

    content_panels = [
        MultiFieldPanel(
            heading='Hero',
            classname='collapsible',
            children=[
                FieldPanel('breadcrumbs_label'),
                FieldPanel('heading'),
                FieldPanel('sub_heading'),
                FieldPanel('hero_call_to_action_text'),
                FieldPanel('hero_call_to_action_url'),
            ],
        ),
        MultiFieldPanel(
            heading='Benefits section',
            classname='collapsible',
            children=[
                HelpPanel('Required fields for section to show: '
                          'Benefits Section Title, Benefits Section Content'),
                FieldPanel('benefits_section_title'),
                FieldPanel('benefits_section_intro'),
                FieldPanel('benefits_section_content'),
                ImageChooserPanel('benefits_section_img'),
            ],
        ),
        MultiFieldPanel(
            heading='EU Exit section',
            classname='collapsible collapsed',
            children=[
                FieldPanel('eu_exit_section_title'),
                FieldPanel('eu_exit_section_content'),
                FieldPanel('eu_exit_section_call_to_action_text'),
                FieldPanel('eu_exit_section_call_to_action_url'),
                ImageChooserPanel('eu_exit_section_img'),
            ],
        ),
        MultiFieldPanel(
            heading='Old featured card links',
            classname='collapsible collapsed',
            children=[
                FieldRowPanel([
                    MultiFieldPanel([
                        ImageChooserPanel('setup_guide_img'),
                        FieldPanel('setup_guide_title'),
                        FieldPanel('setup_guide_content'),
                        FieldPanel('setup_guide_call_to_action_url'),
                    ], ),
                    MultiFieldPanel([
                        ImageChooserPanel('isd_section_image'),
                        FieldPanel('isd_section_title'),
                        FieldPanel('isd_section_text')
                    ], ),
                    MultiFieldPanel([
                        ImageChooserPanel('capital_invest_section_image'),
                        FieldPanel('capital_invest_section_title'),
                        FieldPanel('capital_invest_section_content'),
                    ]),
                ]),
            ],
        ),
        MultiFieldPanel(
            heading='Featured card links ',
            classname='collapsible',
            children=[
                HelpPanel('Required fields for section to show: '
                          'All images, titles and summaries'),
                FieldRowPanel([
                    MultiFieldPanel([
                        ImageChooserPanel('featured_card_one_image'),
                        FieldPanel('featured_card_one_title'),
                        FieldPanel('featured_card_one_summary'),
                        FieldPanel('featured_card_one_cta_link'),
                    ], ),
                    MultiFieldPanel([
                        ImageChooserPanel('featured_card_two_image'),
                        FieldPanel('featured_card_two_title'),
                        FieldPanel('featured_card_two_summary'),
                        FieldPanel('featured_card_two_cta_link'),
                    ], ),
                    MultiFieldPanel([
                        ImageChooserPanel('featured_card_three_image'),
                        FieldPanel('featured_card_three_title'),
                        FieldPanel('featured_card_three_summary'),
                        FieldPanel('featured_card_three_cta_link'),
                    ]),
                ]),
            ],
        ),
        MultiFieldPanel(
            heading='Industries section',
            children=[
                HelpPanel('Required fields for section to show: '
                          'Sector Title, Sector Content'),
                FieldPanel('sector_title'),
                FieldPanel('sector_intro'),
                FieldPanel('sector_button_text'),
                FieldPanel('sector_button_url'),
            ],
        ),
        MultiFieldPanel(
            heading='High Potential Opportunities',
            children=[
                HelpPanel('Required fields for section to show: '
                          'HPO title, 1 HPO in active language'),
                FieldPanel('hpo_title'),
                FieldPanel('hpo_intro')
            ],
        ),
        MultiFieldPanel(
            heading='How we help section',
            classname='collapsible',
            children=[
                HelpPanel('Required fields for section to show: '
                          'How We Help Title, How We Help Lead In'),
                FieldPanel('how_we_help_title'),
                FieldPanel('how_we_help_lead_in'),
                HelpPanel('Each icon requires the corresponding text to '
                          'show on the page'),
                FieldRowPanel([
                    MultiFieldPanel([
                        FieldPanel('how_we_help_text_one'),
                        ImageChooserPanel('how_we_help_icon_one')
                    ], ),
                    MultiFieldPanel([
                        FieldPanel('how_we_help_text_two'),
                        ImageChooserPanel('how_we_help_icon_two')
                    ], ),
                    MultiFieldPanel([
                        FieldPanel('how_we_help_text_three'),
                        ImageChooserPanel('how_we_help_icon_three')
                    ], ),
                ], ),
                FieldRowPanel([
                    MultiFieldPanel([
                        FieldPanel('how_we_help_text_four'),
                        ImageChooserPanel('how_we_help_icon_four')
                    ], ),
                    MultiFieldPanel([
                        FieldPanel('how_we_help_text_five'),
                        ImageChooserPanel('how_we_help_icon_five')
                    ], )
                ], ),
            ],
        ),
        MultiFieldPanel(
            heading='Contact Section',
            classname='collapsible',
            children=[
                HelpPanel('Required fields for section to show: '
                          'Contact Title, Contact Content'),
                FieldPanel('contact_section_title'),
                FieldPanel('contact_section_content'),
                HelpPanel('Cta\'s require both text and a link to show '
                          'on page. '),
                FieldPanel('contact_section_call_to_action_text'),
                FieldPanel('contact_section_call_to_action_url'),
            ],
        ),
        SearchEngineOptimisationPanel()
    ]

    settings_panels = [
        FieldPanel('title_en_gb'),
        FieldPanel('slug'),
    ]

    edit_handler = make_translated_interface(content_panels=content_panels,
                                             settings_panels=settings_panels,
                                             other_panels=[
                                                 ObjectList(image_panels,
                                                            heading='Images'),
                                             ])