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