def generate(seed): print('Generating Homepage Focus Areas and Spotlights') home_page = get_homepage() reseed(seed) # These are "guaranteed" to exist as they are created as # part of the wagtailpages migrations: HomepageFocusAreas.objects.create( page=home_page, area=FocusArea.objects.get(name='Empower Action')) HomepageFocusAreas.objects.create( page=home_page, area=FocusArea.objects.get(name='Connect Leaders')) HomepageFocusAreas.objects.create( page=home_page, area=FocusArea.objects.get(name='Investigate & Research')) NUM_SPOTLIGHT_POSTS = 3 all_blogs = list(BlogPage.objects.all()) home_page.spotlight_posts = [ HomepageSpotlightPosts.objects.create(page=home_page, blog=choice(all_blogs)) for i in range(NUM_SPOTLIGHT_POSTS) ] home_page.save()
def generate(seed): """ Makes a batch of 3 publication pages. """ reseed(seed) home_page = get_homepage() """ Create a couple scenarios that will be best for testing: * A PublicationPage with several child ArticlePages * A PublicationPage with child PublicationPages, each of which has their own ArticlePages * future: perhaps nested at random levels of depth? """ pub_page_with_child_articles = PublicationPageFactory.create( parent=home_page, title='Publication Page with child Article Pages') pub_page_with_chapters = PublicationPageFactory.create( parent=home_page, title='Publication Page with chapter pages') ArticlePageFactory.create_batch(parent=pub_page_with_child_articles, size=8) PublicationPageFactory.create_batch(parent=pub_page_with_chapters, size=3) for chapter in pub_page_with_chapters.get_children(): ArticlePageFactory.create_batch(parent=chapter, size=8) article_pages = ArticlePage.objects.all() for post in article_pages: add_authors(post)
def generate(seed): home_page = get_homepage() reseed(seed) try: campaign_index_page = WagtailPage.objects.get(title='campaigns') print('campaign index page exists') except WagtailPage.DoesNotExist: print('Generating a campaign index page') campaign_index_page = CampaignIndexPageFactory.create( parent=home_page, title='campaigns', live=True) reseed(seed) title = 'YouTube Regrets' try: YoutubeRegretsPage.objects.get(title=title) print('YouTube Regrets page exists') except YoutubeRegretsPage.DoesNotExist: print('Generating YouTube Regrets Page under campaigns namespace') YoutubeRegretsPageFactory.create(parent=campaign_index_page, title=title) reseed(seed)
def generate(seed): reseed(seed) print('Generating blank Homepage') try: home_page = get_homepage() print('Homepage already exists') except Homepage.DoesNotExist: print('Generating a Homepage') site_root = WagtailPage.objects.get(id=1) home_page = WagtailHomepageFactory.create(parent=site_root, title='Homepage', slug=None, hero_image__file__width=1080, hero_image__file__height=720) reseed(seed) try: default_site = WagtailSite.objects.get(is_default_site=True) default_site.root_page = home_page if settings.HEROKU_APP_NAME: hostname = REVIEW_APP_HOSTNAME port = 80 else: hostname = 'localhost' port = 8000 default_site.hostname = hostname default_site.port = port default_site.save() print('Updated the default Site') except WagtailSite.DoesNotExist: print('Generating a default Site') if settings.HEROKU_APP_NAME: hostname = REVIEW_APP_HOSTNAME port = 80 else: hostname = 'localhost' port = 8000 WagtailSite.objects.create(hostname=hostname, port=port, root_page=home_page, site_name='Foundation Home Page', is_default_site=True) reseed(seed) try: about_page = WagtailPage.objects.get(title='Who we are') print('about page exists') except WagtailPage.DoesNotExist: print('Generating an about Page (PrimaryPage)') about_page = PrimaryPageFactory.create(parent=home_page, title='Who we are') reseed(seed) print('Generating child pages for about page') [PrimaryPageFactory.create(parent=about_page) for i in range(5)]
def generate(seed): home_page = get_homepage() reseed(seed) try: WagtailPage.objects.get(title='participate') print('participate page exists') except WagtailPage.DoesNotExist: print('Generating an empty Participate Page') ParticipatePage2Factory.create(parent=home_page)
def generate(seed): home_page = get_homepage() reseed(seed) try: WagtailPage.objects.get(title='news') print('news page exists') except WagtailPage.DoesNotExist: print('Generating an empty News Page') NewsPageFactory.create(parent=home_page, show_in_menus=False)
def generate(seed): home_page = get_homepage() reseed(seed) try: WagtailPage.objects.get(title='initiatives') print('initiatives page exists') except WagtailPage.DoesNotExist: print('Generating an empty Initiatives Page') InitiativesPageFactory.create(parent=home_page)
def generate(seed): home_page = get_homepage() reseed(seed) try: WagtailPage.objects.get(title='style-guide') print('styleguide page exists') except WagtailPage.DoesNotExist: print('Generating a Styleguide Page') StyleguideFactory.create(parent=home_page)
def generate(seed): reseed(seed) home_page = get_homepage() try: opportunity_namespace = WagtailPage.objects.get(title='opportunity') print('opportunity namespace exists') except WagtailPage.DoesNotExist: print('Generating an opportunity namespace') opportunity_namespace = MiniSiteNamespaceFactory.create( parent=home_page, title='opportunity', live=False) reseed(seed) print('Generating Opportunity Pages under namespace') [ OpportunityPageFactory.create(parent=opportunity_namespace) for i in range(5) ] reseed(seed) try: OpportunityPage.objects.get(title='Global Sprint') print('Global Sprint OpportunityPage exists') except OpportunityPage.DoesNotExist: print('Generating Global Sprint OpportunityPage') OpportunityPageFactory.create(parent=opportunity_namespace, title='Global Sprint') reseed(seed) try: OpportunityPage.objects.get(title='single-page') print('single-page OpportunityPage exists') except OpportunityPage.DoesNotExist: print('Generating single-page OpportunityPage') OpportunityPageFactory.create(parent=opportunity_namespace, title='single-page') reseed(seed) try: OpportunityPage.objects.get(title='multi-page') print('multi-page OpportunityPage exists') except OpportunityPage.DoesNotExist: print('Generating multi-page OpportunityPage') multi_page_opportunity = OpportunityPageFactory( parent=opportunity_namespace, title='multi-page') [ OpportunityPageFactory(parent=multi_page_opportunity) for k in range(3) ]
def generate(seed): print('Generating Homepage Blogs and Highlights') home_page = get_homepage() reseed(seed) home_page.news_you_can_use = [ HomepageNewsYouCanUseFactory.build(blog=BlogPage.objects.all()[i]) for i in range(4) ] home_page.save()
def generate(seed): print('Generating Homepage Cause Statement Link') home_page = get_homepage() reseed(seed) home_page.cause_statement_link_text = faker.text(max_nb_chars=80) all_children = list(home_page.get_descendants()) home_page.cause_statement_link_page = choice(all_children) home_page.save()
def generate(seed): home_page = get_homepage() reseed(seed) try: campaign_namespace = WagtailPage.objects.get(title='campaigns') print('campaigns namespace exists') except WagtailPage.DoesNotExist: print('Generating a campaigns namespace') campaign_namespace = MiniSiteNamespaceFactory.create(parent=home_page, title='campaigns', live=False) reseed(seed) print('Generating Campaign Pages under namespace') campaigns = [ CampaignPageFactory.create(parent=campaign_namespace) for i in range(5) ] reseed(seed) print('Generating Donation Modals for Campaign Pages') [DonationModalsFactory.create(page=campaign) for campaign in campaigns] reseed(seed) try: CampaignPage.objects.get(title='single-page') print('single-page CampaignPage already exists') except CampaignPage.DoesNotExist: print('Generating single-page CampaignPage') CampaignPageFactory.create(parent=campaign_namespace, title='single-page') reseed(seed) try: CampaignPage.objects.get(title='multi-page') print('multi-page CampaignPage already exists.') except CampaignPage.DoesNotExist: print('Generating multi-page CampaignPage') multi_page_campaign = CampaignPageFactory(parent=campaign_namespace, title='multi-page') [CampaignPageFactory(parent=multi_page_campaign) for k in range(3)] reseed(seed)
def generate(seed): reseed(seed) home_page = get_homepage() try: blog_namespace = WagtailPage.objects.get(title='Blog') print('blog namespace exists') except WagtailPage.DoesNotExist: print('Generating a blog namespace') blog_namespace = BlogIndexPageFactory.create(parent=home_page, title='Blog', header='Blog', show_in_menus=True, live=True) print('Generating blog posts under namespace') title = 'Initial test blog post with fixed title' post = None try: post = BlogPage.objects.get(title=title) except BlogPage.DoesNotExist: post = BlogPageFactory.create(parent=blog_namespace, title=title) add_tags(post) add_category(post) add_authors(post) for i in range(6): title = Faker('sentence', nb_words=6, variable_nb_words=False) post = None try: post = BlogPage.objects.get(title=title) except BlogPage.DoesNotExist: post = BlogPageFactory.create(parent=blog_namespace, title=title) add_tags(post) add_category(post) add_authors(post) for post in BlogPage.objects.all(): post.ensure_related_posts() post.save()
def generate(seed): print('Generating Partner Logos') home_page = get_homepage() reseed(seed) all_images = list(Image.objects.all()) for i in range(3): partner_logo_orderable = PartnerLogos.objects.create( page=home_page, logo=choice(all_images), link=Faker('url').generate(), name=Faker('text', max_nb_chars=30).generate(), ) home_page.partner_logos.add(partner_logo_orderable) home_page.save()
def generate(seed): reseed(seed) home_page = get_homepage() try: blog_namespace = WagtailPage.objects.get(title='blog') print('blog namespace exists') except WagtailPage.DoesNotExist: print('Generating a blog namespace') blog_namespace = MiniSiteNamespaceFactory.create(parent=home_page, title='blog', live=False) try: BlogPage.objects.get(title='post') print('a post page (BlogPage) exists') except BlogPage.DoesNotExist: print('Generating a post page (BlogPage) under namespace') BlogPageFactory.create(parent=blog_namespace, title='post')
def generate(seed): reseed(seed) home_page = get_homepage() try: blog_namespace = WagtailPage.objects.get(title='Blog') print('blog namespace exists') except WagtailPage.DoesNotExist: print('Generating a blog namespace') blog_namespace = BlogIndexPageFactory.create(parent=home_page, title='Blog', header='Blog', live=True) print('Generating Blog Authors') generate_fake_data(BlogAuthorFactory, NUM_BLOG_AUTHORS) print('Generating blog posts under namespace') title = 'Initial test blog post with fixed title' post = None try: post = BlogPage.objects.get(title=title) except BlogPage.DoesNotExist: post = BlogPageFactory.create(parent=blog_namespace, title=title) add_tags(post) add_category(post) add_authors(post) for i in range(6): title = Faker('sentence', nb_words=6, variable_nb_words=False) post = None try: post = BlogPage.objects.get(title=title) except BlogPage.DoesNotExist: post = BlogPageFactory.create(parent=blog_namespace, title=title) add_tags(post) add_category(post) add_authors(post)
def generate(seed): print('Generating Homepage Highlights and News') home_page = get_homepage() reseed(seed) featured_highlights = [HighlightFactory.create() for i in range(6)] featured_news = [NewsFactory.create() for i in range(6)] home_page.featured_highlights = [ HomepageFeaturedHighlightsFactory.build( highlight=featured_highlights[i]) for i in range(6) ] home_page.featured_news = [ HomepageFeaturedNewsFactory.build(news=featured_news[i]) for i in range(6) ] home_page.save()
def generate(seed): print('Generating Homepage Take Actions') home_page = get_homepage() reseed(seed) all_images = list(Image.objects.all()) all_pages = list(Page.objects.all()) for i in range(4): take_action_orderable = HomepageTakeActionCards.objects.create( page=home_page, image=choice(all_images), text=faker.text(max_nb_chars=255), internal_link=choice(all_pages), ) home_page.take_action_cards.add(take_action_orderable) home_page.save()
def generate(seed): home_page = get_homepage() reseed(seed) try: bannered_campaign_namespace = WagtailPage.objects.get( title='campaigns') print('Campaigns namespace exists') except WagtailPage.DoesNotExist: print('Generating campaigns namespace') bannered_campaign_namespace = MiniSiteNamespaceFactory.create( parent=home_page, title='campaigns', live=False) reseed(seed) print('Generating Bannered Campaign Pages under namespace') BanneredCampaignPageFactory.create(parent=bannered_campaign_namespace, title="Test Bannered Campaign") reseed(seed)
def generate(seed): home_page = get_homepage() reseed(seed) try: campaign_index_page = WagtailPage.objects.get(title='campaigns') print('campaign index page exists') except WagtailPage.DoesNotExist: print('Generating a campaign index page') campaign_index_page = CampaignIndexPageFactory.create( parent=home_page, title='campaigns', live=True ) reseed(seed) print('Generating Bannered Campaign Pages under namespace') title = 'Initial test Bannered Campaign with fixed title' post = None try: post = BanneredCampaignPage.objects.get(title=title) except BanneredCampaignPage.DoesNotExist: post = BanneredCampaignPageFactory.create(parent=campaign_index_page, title=title) add_tags(post) for i in range(6): title = Faker('sentence', nb_words=6, variable_nb_words=False) post = None try: post = BanneredCampaignPage.objects.get(title=title) except BanneredCampaignPage.DoesNotExist: post = BanneredCampaignPageFactory.create(parent=campaign_index_page, title=title) add_tags(post) for post in BanneredCampaignPage.objects.all(): post.save()
def generate(seed): print('Generating Homepage Blogs and Highlights') home_page = get_homepage() reseed(seed) NUM_BLOGS = 4 NUM_HIGHLIGHTS = 5 home_page.featured_blogs = [ HomepageFeaturedBlogsFactory.build(blog=BlogPage.objects.all()[i]) for i in range(NUM_BLOGS) ] home_page.featured_highlights = [ HomepageFeaturedHighlightsFactory.build( highlight=HighlightFactory.create()) for i in range(NUM_HIGHLIGHTS) ] home_page.save()
def generate(seed): home_page = get_homepage() reseed(seed) try: initiatives_page = WagtailPage.objects.get(title='initiatives') print('initiatives page exists') except WagtailPage.DoesNotExist: print('Generating an empty Initiatives Page') initiatives_page = InitiativesPageFactory.create(parent=home_page) reseed(seed) print('Generating Opportunity Pages as child pages of an Initiative Page') [OpportunityPageFactory.create(parent=initiatives_page) for i in range(3)] reseed(seed) try: OpportunityPage.objects.get(title='single-page-opportunity') print('single-page OpportunityPage exists') except OpportunityPage.DoesNotExist: print('Generating single-page OpportunityPage') OpportunityPageFactory.create(parent=initiatives_page, title='single-page-opportunity') reseed(seed) try: OpportunityPage.objects.get(title='multi-page-opportunity') print('multi-page OpportunityPage exists') except OpportunityPage.DoesNotExist: print('Generating multi-page OpportunityPage') multi_page_opportunity = OpportunityPageFactory( parent=initiatives_page, title='multi-page-opportunity') [ OpportunityPageFactory(parent=multi_page_opportunity) for k in range(3) ]
def generate(seed): home_page = get_homepage() reseed(seed) try: bannered_campaign_namespace = WagtailPage.objects.get( title='campaigns') print('Campaigns namespace exists') except WagtailPage.DoesNotExist: print('Generating campaigns namespace') bannered_campaign_namespace = MiniSiteNamespaceFactory.create( parent=home_page, title='campaigns', live=False) reseed(seed) print('Generating Bannered Campaign Pages under namespace') title = 'Initial test Bannered Campaign with fixed title' post = None try: post = BanneredCampaignPage.objects.get(title=title) except BanneredCampaignPage.DoesNotExist: post = BanneredCampaignPageFactory.create( parent=bannered_campaign_namespace, title=title) add_tags(post) for i in range(6): title = Faker('sentence', nb_words=6, variable_nb_words=False) post = None try: post = BanneredCampaignPage.objects.get(title=title) except BanneredCampaignPage.DoesNotExist: post = BanneredCampaignPageFactory.create( parent=bannered_campaign_namespace, title=title) add_tags(post)