diff --git a/cfgov/v1/management/commands/update_data_snapshot_values.py b/cfgov/v1/management/commands/update_data_snapshot_values.py index 83ebfb3bc68..99aea5fb68d 100644 --- a/cfgov/v1/management/commands/update_data_snapshot_values.py +++ b/cfgov/v1/management/commands/update_data_snapshot_values.py @@ -1,10 +1,12 @@ import json import logging import os +from datetime import datetime from django.core.management.base import BaseCommand from v1.models.browse_page import BrowsePage +from v1.models.sublanding_page import SublandingPage from v1.tests.wagtail_pages.helpers import publish_changes @@ -52,12 +54,38 @@ def find_data_snapshot(self, market_key, snapshots): if snapshot[0]["value"]["market_key"] == market_key: return snapshot + def update_landing_page(self, date): + landing_page = SublandingPage.objects.get( + title="Consumer Credit Trends" + ) + dt = datetime.strptime(date, "%Y-%m-%d") + processed_date = dt.strftime("%B %d, %Y") + + new_note = { + "type": "full_width_text", + "value": [ + { + "type": "content", + "value": ( + "

Market dashboards

" + "

These dashboards were last updated on " + f"{processed_date}.

" + ), + } + ], + } + landing_page.content.raw_data[0] = new_note + landing_page.save_revision().publish() + def handle(self, *args, **options): """Read markets from file into update dicts.""" with open(self.expand_path(options["snapshot_file"])) as json_data: data = json.load(json_data) markets = data["markets"] snapshots = self.get_data_snapshots() + + self.update_landing_page(data["date_published"]) + for market in markets: key = market["market_key"] snapshot_data = self.find_data_snapshot(key, snapshots) diff --git a/cfgov/v1/tests/management/commands/test_update_data_snapshot_values.py b/cfgov/v1/tests/management/commands/test_update_data_snapshot_values.py index 95fccfe1866..1a259cfeac2 100644 --- a/cfgov/v1/tests/management/commands/test_update_data_snapshot_values.py +++ b/cfgov/v1/tests/management/commands/test_update_data_snapshot_values.py @@ -8,6 +8,7 @@ from scripts import _atomic_helpers as atomic from v1.models.browse_page import BrowsePage +from v1.models.sublanding_page import SublandingPage from v1.tests.wagtail_pages.helpers import publish_page @@ -15,12 +16,19 @@ class UpdateDataSnapshotValuesTestCase(TestCase): def test_data_snapshot(self): """Management command correctly updates data snapshot values""" browse_page = BrowsePage(title="Browse Page", slug="browse") + sl = SublandingPage(title="Consumer Credit Trends", slug="cct") # Adds a STU market to a browse page browse_page.content = StreamValue( browse_page.content.stream_block, [atomic.data_snapshot], True ) + + sl.content = StreamValue( + sl.content.stream_block, [atomic.full_width_text], True + ) + publish_page(child=browse_page) + publish_page(child=sl) # Call management command to update values filename = os.path.join( @@ -47,6 +55,9 @@ def test_data_snapshot(self): self.assertNotContains(response, "In year-over-year inquiries") self.assertNotContains(response, "In year-over-year credit tightness") + landing_response = self.client.get("/cct/") + self.assertContains(landing_response, "October 02, 2018") + def test_data_snapshot_with_inquiry_and_tightness(self): """Management command correctly updates data snapshot values for market that contains inquiry and tightness data""" @@ -55,13 +66,21 @@ def test_data_snapshot_with_inquiry_and_tightness(self): slug="browse", ) + sl = SublandingPage(title="Consumer Credit Trends", slug="cct") + # Adds a AUT market to a browse page browse_page.content = StreamValue( browse_page.content.stream_block, [atomic.data_snapshot_with_optional_fields], True, ) + + sl.content = StreamValue( + sl.content.stream_block, [atomic.full_width_text], True + ) + publish_page(child=browse_page) + publish_page(child=sl) # Call management command to update values filename = os.path.join(