def test_chart_block_inquiry_activity(self): """ Management command correctly updates chart block dates for inquiry index charts""" browse_page = BrowsePage( title='Browse Page', slug='browse', ) # Adds a Chart Block to a browse page browse_page.content = StreamValue( browse_page.content.stream_block, [atomic.chart_block_inquiry_activity], True ) publish_page(child=browse_page) # Call management command to update values filename = os.path.join( settings.PROJECT_ROOT, 'v1/tests/fixtures/data_snapshot.json' ) call_command( 'update_chart_block_dates', '--snapshot_file={}'.format(filename) ) response = self.client.get('/browse/') # Tests last_updated_projected_data is correct self.assertContains( response, 'The most recent data available in this visualization are for June 2018' ) # Tests date_published is correct self.assertContains(response, 'October 2018')
def test_data_snapshot(self): """ Management command correctly updates data snapshot values""" browse_page = BrowsePage( title='Browse Page', slug='browse', ) # Adds a STU market to a browse page browse_page.content = StreamValue(browse_page.content.stream_block, [atomic.data_snapshot], True) publish_page(child=browse_page) # Call management command to update values filename = os.path.join(settings.PROJECT_ROOT, 'v1/tests/fixtures/data_snapshot.json') call_command('update_data_snapshot_values', '--snapshot_file={}'.format(filename)) response = self.client.get('/browse/') # July 2018 data: self.assertContains(response, '917,007') # Student loans originated self.assertContains(response, '$16.6 billion') # Dollar volume of new loans self.assertContains(response, '48.0% increase') # In year-over-year originations self.assertContains(response, 'July 2018') self.assertContains(response, 'Loans originated') self.assertContains(response, 'Dollar value of new loans') self.assertContains(response, 'In year-over-year originations') # Should not contain inquiry and tightness values self.assertNotContains(response, 'In year-over-year inquiries') self.assertNotContains(response, 'In year-over-year credit tightness')
def test_chart_block_inquiry_activity(self): """ Management command correctly updates chart block dates for inquiry index charts""" browse_page = BrowsePage( title='Browse Page', slug='browse', ) # Adds a Chart Block to a browse page browse_page.content = StreamValue( browse_page.content.stream_block, [atomic.chart_block_inquiry_activity], True) publish_page(child=browse_page) # Call management command to update values filename = os.path.join(settings.PROJECT_ROOT, 'v1/tests/fixtures/data_snapshot.json') call_command('update_chart_block_dates', '--snapshot_file={}'.format(filename)) response = self.client.get('/browse/') # Tests last_updated_projected_data is correct self.assertContains( response, 'The most recent data available in this visualization are for June 2018' ) # Tests date_published is correct self.assertContains(response, 'October 2018')
def test_data_snapshot_with_optional_fields(self): """ Data Snapshot with inquiry and tightness information correctly renders fields on a Browse Page""" browse_page = BrowsePage( title='Browse Page', slug='browse', ) # Adds a AUT market to a browse page browse_page.content = StreamValue( browse_page.content.stream_block, [atomic.data_snapshot_with_optional_fields], True ) publish_page(child=browse_page) response = self.client.get('/browse/') self.assertContains(response, '5 million') self.assertContains(response, '$64 billion') self.assertContains(response, '5% increase') self.assertContains(response, 'January 2015') self.assertContains(response, 'Loans originated') self.assertContains(response, 'Dollar value of new loans') self.assertContains(response, 'In year-over-year originations') # Should include inquiry or tightness information self.assertContains(response, '7.4% decrease') self.assertContains(response, 'In year-over-year inquiries') self.assertContains(response, '2.8% increase') self.assertContains(response, 'In year-over-year credit tightness')
def test_data_snapshot_with_inquiry_and_tightness(self): """ Management command correctly updates data snapshot values for market that contains inquiry and tightness data""" browse_page = BrowsePage( title='Browse Page', slug='browse', ) # Adds a AUT market to a browse page browse_page.content = StreamValue( browse_page.content.stream_block, [atomic.data_snapshot_with_optional_fields], True) publish_page(child=browse_page) # Call management command to update values filename = os.path.join(settings.PROJECT_ROOT, 'v1/tests/fixtures/data_snapshot.json') call_command('update_data_snapshot_values', '--snapshot_file={}'.format(filename)) # July 2018 response = self.client.get('/browse/') self.assertContains(response, '2.5 million') # Auto loans originated self.assertContains(response, '$54.6 billion') # Dollar volume of new loans self.assertContains(response, '7.3% increase') # In year-over-year originations self.assertContains(response, 'July 2018') self.assertContains(response, 'Loans originated') self.assertContains(response, 'Dollar value of new loans') self.assertContains(response, 'In year-over-year originations') # Inquiry and tightness values self.assertContains(response, '7.9% increase') self.assertContains(response, '2.8% increase') self.assertContains(response, 'In year-over-year inquiries') self.assertContains(response, 'In year-over-year credit tightness')
def test_data_snapshot(self): """ Management command correctly updates data snapshot values""" browse_page = BrowsePage( title='Browse Page', slug='browse', ) # Adds a AUT market to a browse page browse_page.content = StreamValue( browse_page.content.stream_block, [atomic.data_snapshot], True ) publish_page(child=browse_page) # Call management command to update values filename = os.path.join( settings.PROJECT_ROOT, 'v1/tests/fixtures/data_snapshots.json' ) call_command( 'update_data_snapshot_values', '--snapshot_file={}'.format(filename) ) response = self.client.get('/browse/') self.assertContains(response, '2.1 million') self.assertContains(response, '$46.4 billion') self.assertContains(response, '5.8% increase') self.assertContains(response, 'March 2017') self.assertContains(response, 'Auto loans originated') self.assertContains(response, 'Dollar value of new loans') self.assertContains(response, 'In year-over-year originations')
def test_data_snapshot_with_optional_fields(self): """ Data Snapshot with inquiry and tightness information correctly renders fields on a Browse Page""" browse_page = BrowsePage( title='Browse Page', slug='browse', ) # Adds a AUT market to a browse page browse_page.content = StreamValue( browse_page.content.stream_block, [atomic.data_snapshot_with_optional_fields], True) publish_page(child=browse_page) response = self.client.get('/browse/') self.assertContains(response, '5 million') self.assertContains(response, '$64 billion') self.assertContains(response, '5% increase') self.assertContains(response, 'January 2015') self.assertContains(response, 'Loans originated') self.assertContains(response, 'Dollar value of new loans') self.assertContains(response, 'In year-over-year originations') # Should include inquiry or tightness information self.assertContains(response, '7.4% decrease') self.assertContains(response, 'In year-over-year inquiries') self.assertContains(response, '2.8% increase') self.assertContains(response, 'In year-over-year credit tightness')
def test_html_block(self): """ HTML Block correctly renders HTML on a Browse Page""" browse_page = BrowsePage( title='Browse Page', slug='browse', ) browse_page.content = StreamValue(browse_page.content.stream_block, [atomic.html_block], True) publish_page(child=browse_page) response = self.client.get('/browse/') self.assertContains(response, 'Age 30 to 44')
def test_expandable_group(self): """Expandable group correctly displays on a Browse Page""" browse_page = BrowsePage( title='Browse Page', slug='browse', ) browse_page.content = StreamValue(browse_page.content.stream_block, [atomic.expandable_group], True) publish_page(child=browse_page) response = django_client.get('/browse/') self.assertContains(response, 'Expandable Group') self.assertContains(response, 'Expandable group body')
def test_featured_content(self): """Featured content value correctly displays on a Browse Page""" bp = BrowsePage( title='Browse Page', slug='browse-page', ) bp.header = StreamValue(bp.header.stream_block, [atomic.featured_content], True) bp.content = StreamValue(bp.content.stream_block, [atomic.expandable, atomic.expandable_group], True) publish_page(child=bp) response = django_client.get('/browse-page/') self.assertContains(response, 'this is a featured content body')
def test_expandable(self): """Expandable label value correctly displays on a Browse Page""" browse_page = BrowsePage( title='Browse Page', slug='browse', ) browse_page.content = StreamValue( browse_page.content.stream_block, [atomic.expandable], True, ) publish_page(child=browse_page) response = django_client.get('/browse/') self.assertContains(response, 'this is an expandable')
def test_html_block(self): """ HTML Block correctly renders HTML on a Browse Page""" browse_page = BrowsePage( title='Browse Page', slug='browse', ) browse_page.content = StreamValue( browse_page.content.stream_block, [atomic.html_block], True ) publish_page(child=browse_page) response = self.client.get('/browse/') self.assertContains(response, 'Age 30 to 44')
def test_expandable_group(self): """Expandable group correctly displays on a Browse Page""" browse_page = BrowsePage( title='Browse Page', slug='browse', ) browse_page.content = StreamValue( browse_page.content.stream_block, [atomic.expandable_group], True ) publish_page(child=browse_page) response = django_client.get('/browse/') self.assertContains(response, 'Expandable Group') self.assertContains(response, 'Expandable group body')
def test_snippet_list_show_thumbnails_false(self): """ Snippet List doesn't show thumbs when show_thumbnails is False""" no_thumbnails_page = BrowsePage( title='No Thumbnails Page', slug='no-thumbnails', ) no_thumbnails_page.content = StreamValue( no_thumbnails_page.content.stream_block, [atomic.snippet_list_show_thumbnails_false], True) publish_page(child=no_thumbnails_page) self.create_resource() response = self.client.get('/no-thumbnails/') self.assertNotContains(response, 'o-snippet-list_list-thumbnail')
def test_snippet_list_show_thumbnails_true(self): """ Snippet List shows thumbnails when show_thumbnails is True""" thumbnails_page = BrowsePage( title='Thumbnails Page', slug='thumbnails', ) thumbnails_page.content = StreamValue( thumbnails_page.content.stream_block, [atomic.snippet_list_show_thumbnails_true], True) publish_page(child=thumbnails_page) self.create_resource() response = self.client.get('/thumbnails/') self.assertContains(response, 'o-snippet-list_list-thumbnail')
def test_snippet_list_set_col_width(self): """ Snippet List Assets column width is fixed when set""" assets_width_page = BrowsePage( title='Assets Width Test Page', slug='assets-width', ) assets_width_page.content = StreamValue( assets_width_page.content.stream_block, [atomic.snippet_list_actions_column_width_40], True) publish_page(child=assets_width_page) self.create_resource() response = self.client.get('/assets-width/') self.assertContains(response, 'u-w40pct"')
def test_snippet_list(self): """ Snippet List renders thumbnails when show_thumbnails is True""" browse_page = BrowsePage( title='Browse Page', slug='browse', ) browse_page.content = StreamValue( browse_page.content.stream_block, [atomic.snippet_list_show_thumbnails_false], True) publish_page(child=browse_page) self.create_resource() response = self.client.get('/browse/') self.assertContains(response, 'Test Snippet List') self.assertContains(response, 'Test Resource')
def test_resource_list_show_thumbnails_false(self): """ Resource List doesn't show thumbs when show_thumbnails is False""" no_thumbnails_page = BrowsePage( title='No Thumbnails Page', slug='no-thumbnails', ) no_thumbnails_page.content = StreamValue( no_thumbnails_page.content.stream_block, [atomic.snippet_list_show_thumbnails_false], True ) publish_page(child=no_thumbnails_page) self.create_resource() response = self.client.get('/no-thumbnails/') self.assertNotContains(response, 'o-resource-list_list-thumbnail')
def test_resource_list_show_thumbnails_true(self): """ Resource List shows thumbnails when show_thumbnails is True""" thumbnails_page = BrowsePage( title='Thumbnails Page', slug='thumbnails', ) thumbnails_page.content = StreamValue( thumbnails_page.content.stream_block, [atomic.snippet_list_show_thumbnails_true], True ) publish_page(child=thumbnails_page) self.create_resource() response = self.client.get('/thumbnails/') self.assertContains(response, 'o-resource-list_list-thumbnail')
def test_resource_list_set_col_width(self): """ Resource List Assets column width is fixed when set""" assets_width_page = BrowsePage( title='Assets Width Test Page', slug='assets-width', ) assets_width_page.content = StreamValue( assets_width_page.content.stream_block, [atomic.snippet_list_actions_column_width_40], True ) publish_page(child=assets_width_page) self.create_resource() response = self.client.get('/assets-width/') self.assertContains(response, 'u-w40pct"')
def test_resource_list(self): """ Resource List renders thumbnails when show_thumbnails is True""" browse_page = BrowsePage( title='Browse Page', slug='browse', ) browse_page.content = StreamValue( browse_page.content.stream_block, [atomic.snippet_list_show_thumbnails_false], True ) publish_page(child=browse_page) self.create_resource() response = self.client.get('/browse/') self.assertContains(response, 'Test Resource List') self.assertContains(response, 'Test Resource')
def test_featured_content(self): """Featured content value correctly displays on a Browse Page""" bp = BrowsePage( title='Browse Page', slug='browse-page', ) bp.header = StreamValue(bp.header.stream_block, [ atomic.featured_content ], True) bp.content = StreamValue(bp.content.stream_block, [ atomic.expandable, atomic.expandable_group ], True) publish_page(child=bp) response = django_client.get('/browse-page/') self.assertContains(response, 'this is a featured content body')
def test_data_snapshot_with_inquiry_and_tightness(self): """ Management command correctly updates data snapshot values for market that contains inquiry and tightness data""" browse_page = BrowsePage( title='Browse Page', slug='browse', ) # Adds a AUT market to a browse page browse_page.content = StreamValue( browse_page.content.stream_block, [atomic.data_snapshot_with_optional_fields], True ) publish_page(child=browse_page) # Call management command to update values filename = os.path.join( settings.PROJECT_ROOT, 'v1/tests/fixtures/data_snapshot.json' ) call_command( 'update_data_snapshot_values', '--snapshot_file={}'.format(filename) ) # July 2018 response = self.client.get('/browse/') self.assertContains(response, '2.5 million') # Auto loans originated self.assertContains(response, '$54.6 billion') # Dollar volume of new loans self.assertContains(response, '7.3% increase') # In year-over-year originations self.assertContains(response, 'July 2018') self.assertContains(response, 'Loans originated') self.assertContains(response, 'Dollar value of new loans') self.assertContains(response, 'In year-over-year originations') # Inquiry and tightness values self.assertContains(response, '7.9% increase') self.assertContains(response, '2.8% increase') self.assertContains(response, 'In year-over-year inquiries') self.assertContains( response, 'In year-over-year credit tightness' )
def test_data_snapshot(self): """ Data Snapshot correctly renders fields on a Browse Page""" browse_page = BrowsePage( title='Browse Page', slug='browse', ) # Adds a AUT market to a browse page browse_page.content = StreamValue(browse_page.content.stream_block, [atomic.data_snapshot], True) publish_page(child=browse_page) response = self.client.get('/browse/') self.assertContains(response, '5 million') self.assertContains(response, '$64 billion') self.assertContains(response, '5% increase') self.assertContains(response, 'January 2015') self.assertContains(response, 'Auto loans originated') self.assertContains(response, 'Dollar value of new loans') self.assertContains(response, 'In year-over-year originations')
def test_chart_block(self): """ Chart Block correctly renders fields on a Browse Page""" browse_page = BrowsePage( title='Browse Page', slug='browse', ) # Adds a AUT market to a browse page browse_page.content = StreamValue(browse_page.content.stream_block, [atomic.chart_block], True) publish_page(child=browse_page) response = self.client.get('/browse/') self.assertContains(response, 'Volume of credit cards originated') self.assertContains(response, 'foo/bar.csv') self.assertContains(response, 'Data not final') self.assertContains( response, 'The most recent data available in each visualization is for April 2016' ) self.assertContains(response, 'January 2018')
def test_data_snapshot(self): """ Management command correctly updates data snapshot values""" browse_page = BrowsePage( title='Browse Page', slug='browse', ) # Adds a STU market to a browse page browse_page.content = StreamValue( browse_page.content.stream_block, [atomic.data_snapshot], True ) publish_page(child=browse_page) # Call management command to update values filename = os.path.join( settings.PROJECT_ROOT, 'v1/tests/fixtures/data_snapshot.json' ) call_command( 'update_data_snapshot_values', '--snapshot_file={}'.format(filename) ) response = self.client.get('/browse/') # July 2018 data: self.assertContains(response, '917,007') # Student loans originated self.assertContains(response, '$16.6 billion') # Dollar volume of new loans self.assertContains(response, '48.0% increase') # In year-over-year originations self.assertContains(response, 'July 2018') self.assertContains(response, 'Loans originated') self.assertContains(response, 'Dollar value of new loans') self.assertContains(response, 'In year-over-year originations') # Should not contain inquiry and tightness values self.assertNotContains(response, 'In year-over-year inquiries') self.assertNotContains( response, 'In year-over-year credit tightness' )
def test_data_snapshot(self): """ Data Snapshot correctly renders fields on a Browse Page""" browse_page = BrowsePage( title='Browse Page', slug='browse', ) # Adds a AUT market to a browse page browse_page.content = StreamValue( browse_page.content.stream_block, [atomic.data_snapshot], True ) publish_page(child=browse_page) response = self.client.get('/browse/') self.assertContains(response, '5 million') self.assertContains(response, '$64 billion') self.assertContains(response, '5% increase') self.assertContains(response, 'January 2015') self.assertContains(response, 'Auto loans originated') self.assertContains(response, 'Dollar value of new loans') self.assertContains(response, 'In year-over-year originations')
def test_chart_block(self): """ Chart Block correctly renders fields on a Browse Page""" browse_page = BrowsePage( title='Browse Page', slug='browse', ) # Adds a AUT market to a browse page browse_page.content = StreamValue( browse_page.content.stream_block, [atomic.chart_block], True ) publish_page(child=browse_page) response = self.client.get('/browse/') self.assertContains(response, 'Volume of credit cards originated') self.assertContains(response, 'foo/bar.csv') self.assertContains(response, 'Data not final') self.assertContains( response, 'The most recent data available in each visualization is for April 2016' ) self.assertContains(response, 'January 2018')
def run(): print 'Running script \'scripts.initial_test_data\' ...' admin_user = User.objects.filter(username='******') if not admin_user: admin_user = User(username='******', password=make_password( os.environ.get('WAGTAIL_ADMIN_PW')), is_superuser=True, is_active=True, is_staff=True) admin_user.save() else: admin_user = admin_user[0] # # Creates a new site root `CFGov` site_root = HomePage.objects.filter(title='CFGOV') if not site_root: root = Page.objects.first() site_root = HomePage(title='CFGOV', slug='home', depth=2, owner=admin_user) site_root.live = True root.add_child(instance=site_root) latest = site_root.save_revision(user=admin_user, submitted_for_moderation=False) latest.save() else: site_root = site_root[0] # Setting new site root site = Site.objects.first() if site.root_page_id != site_root.id: site.port = 8000 site.root_page_id = site_root.id site.save() content_site = Site(hostname='content.localhost', port=8000, root_page_id=site_root.id) content_site.save() def publish_page(child=None, root=site_root): try: root.add_child(instance=child) except NodeAlreadySaved: pass revision = child.save_revision( user=admin_user, submitted_for_moderation=False, ) revision.publish() # Create each Page Type contact = Contact.objects.filter(heading='Test User') if not contact: contact = Contact(heading='Test User') else: contact = contact[0] contact.contact_info = StreamValue( contact.contact_info.stream_block, [{ "type": "email", "value": { "emails": [{ "url": "/", "text": "*****@*****.**" }] } }, { "type": "phone", "value": { "phones": [{ "tty": "", "number": "1234567890", "vanity": "" }], "fax": True } }, { "type": "address", "value": { "city": "Washington", "title": "", "label": "Address", "state": "DC", "street": "123 abc street", "zip_code": "20012" } }], True) contact.save() lap = LandingPage.objects.filter(title='Landing Page') if not lap: lap = LandingPage(title='Landing Page', slug='landing-page', owner=admin_user) else: lap = lap[0] lap.content = StreamValue(lap.content.stream_block, [{ "type": "image_text_25_75_group", "value": { "heading": "Image 25 75 Group", "image_texts": [{ "body": "", "has_rule": False, "image": { "alt": "", "upload": 84 }, "heading": "", "links": [{ "url": "/", "text": "test" }] }] } }, { "type": "image_text_50_50_group", "value": { "heading": "Image 50 50 Group", "image_texts": [{ "body": "", "links": [{ "url": "/", "text": "test" }], "image": { "alt": "", "upload": 84 }, "is_widescreen": False, "is_button": False, "heading": "" }] } }, { "type": "half_width_link_blob_group", "value": { "link_blobs": [{ "body": "", "heading": "", "links": [{ "url": "/", "text": "test" }] }], "heading": "Half Width Link Blob Group" } }], True) publish_page(lap) sp = SublandingPage.objects.filter(title='Sublanding Page') if not sp: sp = SublandingPage(title='Sublanding Page', slug='sublanding-page', owner=admin_user) else: sp = sp[0] sp.content = StreamValue(sp.content.stream_block, [{ "type": "contact", "value": { "body": "", "header": "Contact", "contact": contact.id } }], True) sp.sidefoot = StreamValue(sp.sidefoot.stream_block, [{ "type": "email_signup", "value": { "text": "", "gd_code": "", "heading": "Email Sign Up", "form_field": [{ "info": "", "type": "", "required": False, "label": "Email Sign up", "btn_text": "", "placeholder": "" }] } }, { "type": "rss_feed", "value": "blog_feed" }], True) publish_page(sp) bp = BrowsePage.objects.filter(title='Browse Page') if not bp: bp = BrowsePage(title='Browse Page', slug='browse-page', owner=admin_user) else: bp = bp[0] bp.header = StreamValue(bp.header.stream_block, [{ 'type': 'featured_content', 'value': { 'body': "<p>this is a featured content body</p>" } }], True) bp.content = StreamValue(bp.content.stream_block, [{ 'type': 'expandable', 'value': { 'label': 'this is an expandable' } }], True) publish_page(bp) # Filterable Pages bfp = BrowseFilterablePage.objects.filter(title='Browse Filterable Page') if not bfp: bfp = BrowseFilterablePage(title='Browse Filterable Page', slug='browse-filterable-page', owner=admin_user) else: bfp = bfp[0] bfp.header = StreamValue(bfp.header.stream_block, [{ 'type': 'text_introduction', 'value': { 'intro': 'this is an intro' } }], True) publish_page(bfp) sfp = SublandingFilterablePage.objects.filter( title='Sublanding Filterable Page') if not sfp: sfp = SublandingFilterablePage(title='Sublanding Filterable Page', slug='sublanding-filterable-page', owner=admin_user) else: sfp = sfp[0] sfp.header = StreamValue(sfp.header.stream_block, [{ 'type': 'hero', 'value': { 'heading': "this is a hero heading" } }], True) publish_page(sfp) eap = EventArchivePage.objects.filter(title='Event Archive Page') if not eap: eap = EventArchivePage(title='Event Archive Page', slug='event-archive-page', owner=admin_user) else: eap = eap[0] publish_page(eap) nlp = NewsroomLandingPage.objects.filter(title='Newsroom Landing Page') if not nlp: nlp = NewsroomLandingPage(title='Newsroom Landing Page', slug='newsroom-landing-page', owner=admin_user) else: nlp = nlp[0] publish_page(nlp) # Filter Pages if not EventPage.objects.filter(title='Event Page'): ep = EventPage(title='Event Page', slug='event-page', owner=admin_user) publish_page(ep, bfp) ddp = DocumentDetailPage.objects.filter(title='Document Detail Page') if not ddp: ddp = DocumentDetailPage(title='Document Detail Page', slug='document-detail-page', owner=admin_user) else: ddp = ddp[0] ddp.sidefoot = StreamValue(ddp.sidefoot.stream_block, [{ 'type': 'related_metadata', 'value': { 'content': [{ 'type': 'text', 'value': { 'heading': 'this is a related metadata heading' } }] } }], True) publish_page(ddp, bfp) lp = LearnPage.objects.filter(title='Learn Page') if not lp: lp = LearnPage(title='Learn Page', slug='learn-page', owner=admin_user) else: lp = lp[0] lp.content = StreamValue(lp.content.stream_block, [{ 'type': 'full_width_text', 'value': [{ 'type': 'quote', 'value': { 'body': 'this is a quote', 'citation': 'a citation' } }] }, { 'type': 'call_to_action', 'value': { 'paragraph_text': 'this is a call to action' } }], True) publish_page(lp, bfp) if not ActivityLogPage.objects.filter(title='Activity Log Page'): alp = ActivityLogPage(title='Activity Log Page', slug='activity-log-page', owner=admin_user) publish_page(alp) if not NewsroomPage.objects.filter(title='Newsroom Page'): np = NewsroomPage(title='Newsroom Page', slug='newsroom-page', owner=admin_user) publish_page(np, nlp) if not LegacyNewsroomPage.objects.filter(title='Legacy Newsroom Page'): lnp = LegacyNewsroomPage(title='Legacy Newsroom Page', slug='legacy-newsroom-page', owner=admin_user) publish_page(lnp, nlp) if not BlogPage.objects.filter(title='Blog Page'): bp = BlogPage(title='Blog Page', slug='blog-page', owner=admin_user) publish_page(bp, sfp) if not LegacyBlogPage.objects.filter(title='Legacy Blog Page'): lbp = LegacyBlogPage(title='Legacy Blog Page', slug='legacy-blog-page', owner=admin_user) publish_page(lbp, sfp) # Demo Page dp = DemoPage.objects.filter(title='Demo Page') if not dp: dp = DemoPage(title='Demo Page', slug='demo-page', owner=admin_user) else: dp = dp[0] dp.sidefoot = StreamValue(dp.sidefoot.stream_block, [{ 'type': 'related_links', 'value': { 'links': [{ 'url': '/url', 'text': 'this is a related link' }] } }], True) publish_page(dp) # Create and configure pages for testing page states draft = DemoPage.objects.filter(slug='draft-page') if not draft: draft = DemoPage(title='Draft Page', slug='draft-page', owner=admin_user, live=False, shared=False) site_root.add_child(instance=draft) else: draft = draft[0] draft.save_revision(user=admin_user) shared = DemoPage.objects.filter(slug='shared-page') if not shared: shared = DemoPage(title='Shared Page', slug='shared-page', owner=admin_user, live=False, shared=True) site_root.add_child(instance=shared) else: shared = shared[0] shared.save_revision(user=admin_user) shared_draft = DemoPage.objects.filter(slug='shared-draft-page') if not shared_draft: shared_draft = DemoPage(title='Shared Page', slug='shared-draft-page', owner=admin_user, live=False, shared=True) site_root.add_child(instance=shared_draft) else: shared_draft = shared_draft[0] shared_draft.save_revision(user=admin_user) shared_draft.title = 'Shared Draft Page' shared_draft.save() shared_draft.save_revision(user=admin_user) live = DemoPage.objects.filter(slug='live-page') if not live: live = DemoPage(title='Live Page', slug='live-page', owner=admin_user, live=True, shared=True) else: live = live[0] publish_page(live) livedraft = DemoPage.objects.filter(slug='live-draft-page') if not livedraft: livedraft = DemoPage(title='Live Draft Page', slug='live-draft-page', owner=admin_user, live=True, shared=True) else: livedraft = livedraft[0] publish_page(livedraft) livedraft.live = False livedraft.shared = False livedraft.title = 'Live Page' livedraft.save_revision(user=admin_user)
def run(): print 'Running script \'scripts.initial_test_data\' ...' admin_user = User.objects.filter(username='******') if not admin_user: admin_user = User(username='******', password=make_password(os.environ.get('WAGTAIL_ADMIN_PW')), is_superuser=True, is_active=True, is_staff=True) admin_user.save() else: admin_user = admin_user[0] # # Creates a new site root `CFGov` site_root = HomePage.objects.filter(title='CFGOV') if not site_root: root = Page.objects.first() site_root = HomePage(title='CFGOV', slug='home', depth=2, owner=admin_user) site_root.live = True root.add_child(instance=site_root) latest = site_root.save_revision(user=admin_user, submitted_for_moderation=False) latest.save() else: site_root = site_root[0] # Setting new site root site = Site.objects.first() if site.root_page_id != site_root.id: site.port = 8000 site.root_page_id = site_root.id site.save() content_site = Site(hostname='content.localhost', port=8000, root_page_id=site_root.id) content_site.save() def publish_page(child=None, root=site_root): try: root.add_child(instance=child) except NodeAlreadySaved: pass revision = child.save_revision( user=admin_user, submitted_for_moderation=False, ) revision.publish() # Create snippets contact = Contact.objects.filter(heading='Test User') if not contact: contact = Contact(heading='Test User') else: contact = contact[0] contact.contact_info = StreamValue(contact.contact_info.stream_block, [ atomic.contact_email, atomic.contact_phone, atomic.contact_address ], True) contact.save() # Create each Page Type lap = LandingPage.objects.filter(title='Landing Page') if not lap: lap = LandingPage(title='Landing Page', slug='landing-page', owner=admin_user) else: lap = lap[0] lap.content = StreamValue(lap.content.stream_block, [ atomic.image_text_25_75_group, atomic.image_text_50_50_group, atomic.half_width_link_blob_group, atomic.well ], True) lap.sidefoot = StreamValue(lap.sidefoot.stream_block, [ atomic.related_links, atomic.sidebar_contact(contact.id) ], True) publish_page(lap) sp = SublandingPage.objects.filter(title='Sublanding Page') if not sp: sp = SublandingPage(title='Sublanding Page', slug='sublanding-page', owner=admin_user) else: sp = sp[0] sp.content = StreamValue(sp.content.stream_block, [ atomic.main_contact_info(contact.id), atomic.reg_comment ], True) sp.sidefoot = StreamValue(sp.sidefoot.stream_block, [ atomic.email_signup, atomic.rss_feed ], True) publish_page(sp) bp = BrowsePage.objects.filter(title='Browse Page') if not bp: bp = BrowsePage(title='Browse Page', slug='browse-page', owner=admin_user) else: bp = bp[0] bp.header = StreamValue(bp.header.stream_block, [ atomic.featured_content ], True) bp.content = StreamValue(bp.content.stream_block, [ atomic.expandable, atomic.expandable_group ], True) publish_page(bp) # Filterable Pages bfp = BrowseFilterablePage.objects.filter(title='Browse Filterable Page') if not bfp: bfp = BrowseFilterablePage(title='Browse Filterable Page', slug='browse-filterable-page', owner=admin_user) else: bfp = bfp[0] bfp.header = StreamValue(bfp.header.stream_block, [atomic.text_introduction], True) publish_page(bfp) sfp = SublandingFilterablePage.objects.filter(title='Sublanding Filterable Page') if not sfp: sfp = SublandingFilterablePage(title='Sublanding Filterable Page', slug='sublanding-filterable-page', owner=admin_user) else: sfp = sfp[0] sfp.header = StreamValue(sfp.header.stream_block, [atomic.hero], True) publish_page(sfp) eap = EventArchivePage.objects.filter(title='Event Archive Page') if not eap: eap = EventArchivePage(title='Event Archive Page', slug='event-archive-page', owner=admin_user) else: eap = eap[0] publish_page(eap) nlp = NewsroomLandingPage.objects.filter(title='Newsroom Landing Page') if not nlp: nlp = NewsroomLandingPage(title='Newsroom Landing Page', slug='newsroom-landing-page', owner=admin_user) else: nlp = nlp[0] publish_page(nlp) alp = ActivityLogPage.objects.filter(title='Activity Log Page') if not alp: alp = ActivityLogPage(title='Activity Log Page', slug='activity-log-page', owner=admin_user) else: alp = alp[0] publish_page(alp) # Filter Pages if not EventPage.objects.filter(title='Event Page'): ep = EventPage(title='Event Page', slug='event-page', owner=admin_user) publish_page(ep, bfp) ddp = DocumentDetailPage.objects.filter(title='Document Detail Page') if not ddp: ddp = DocumentDetailPage(title='Document Detail Page', slug='document-detail-page', owner=admin_user) else: ddp = ddp[0] ddp.sidefoot = StreamValue(ddp.sidefoot.stream_block, [atomic.related_metadata], True) publish_page(ddp, bfp) lp = LearnPage.objects.filter(title='Learn Page') if not lp: lp = LearnPage(title='Learn Page', slug='learn-page', owner=admin_user) else: lp = lp[0] lp.header = StreamValue(lp.header.stream_block, [atomic.item_introduction], True) lp.content = StreamValue(lp.content.stream_block, [ atomic.full_width_text, atomic.call_to_action, atomic.table ], True) publish_page(lp, bfp) if not NewsroomPage.objects.filter(title='Newsroom Page'): np = NewsroomPage(title='Newsroom Page', slug='newsroom-page', owner=admin_user) publish_page(np, nlp) if not LegacyNewsroomPage.objects.filter(title='Legacy Newsroom Page'): lnp = LegacyNewsroomPage(title='Legacy Newsroom Page', slug='legacy-newsroom-page', owner=admin_user) publish_page(lnp, nlp) if not BlogPage.objects.filter(title='Blog Page'): bp = BlogPage(title='Blog Page', slug='blog-page', owner=admin_user) publish_page(bp, sfp) if not LegacyBlogPage.objects.filter(title='Legacy Blog Page'): lbp = LegacyBlogPage(title='Legacy Blog Page', slug='legacy-blog-page', owner=admin_user) publish_page(lbp, sfp) # Create and configure pages for testing page states draft = LandingPage.objects.filter(slug='draft-page') if not draft: draft = LandingPage(title='Draft Page', slug='draft-page', owner=admin_user, live=False, shared=False) site_root.add_child(instance=draft) else: draft = draft[0] draft.save_revision(user=admin_user) shared = LandingPage.objects.filter(slug='shared-page') if not shared: shared = LandingPage(title='Shared Page', slug='shared-page', owner=admin_user, live=False, shared=True) site_root.add_child(instance=shared) else: shared = shared[0] shared.save_revision(user=admin_user) shared_draft = LandingPage.objects.filter(slug='shared-draft-page') if not shared_draft: shared_draft = LandingPage(title='Shared Page', slug='shared-draft-page', owner=admin_user, live=False, shared=True) site_root.add_child(instance=shared_draft) else: shared_draft = shared_draft[0] shared_draft.save_revision(user=admin_user) shared_draft.title = 'Shared Draft Page' shared_draft.shared = False shared_draft.save() shared_draft.save_revision(user=admin_user) live = LandingPage.objects.filter(slug='live-page') if not live: live = LandingPage(title='Live Page', slug='live-page', owner=admin_user, live=True, shared=True) else: live = live[0] publish_page(live) livedraft = LandingPage.objects.filter(slug='live-draft-page') if not livedraft: livedraft = LandingPage(title='Live Draft Page', slug='live-draft-page', owner=admin_user, live=True, shared=True) else: livedraft = livedraft[0] publish_page(livedraft) livedraft.live = False livedraft.shared = False livedraft.title = 'Live Page' livedraft.save_revision(user=admin_user)