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()
예제 #2
0
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)
예제 #8
0
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)
예제 #9
0
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)
        ]
예제 #10
0
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()
예제 #12
0
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)
예제 #13
0
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()
예제 #15
0
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')
예제 #16
0
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()
예제 #19
0
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)
예제 #20
0
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)