Skip to content

Commit

Permalink
Merge pull request #8729 from cfpb/cct/landing-page
Browse files Browse the repository at this point in the history
Update cct snapshot management command to update landing page
  • Loading branch information
wpears authored Jan 30, 2025
2 parents 01e269a + ce7311f commit 90de492
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 0 deletions.
28 changes: 28 additions & 0 deletions cfgov/v1/management/commands/update_data_snapshot_values.py
Original file line number Diff line number Diff line change
@@ -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


Expand Down Expand Up @@ -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": (
"<h2 id='market-dashboards'>Market dashboards</h2>"
"<p>These dashboards were last updated on "
f"{processed_date}.<br/></p>"
),
}
],
}
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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,27 @@

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


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(
Expand All @@ -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"""
Expand All @@ -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(
Expand Down

0 comments on commit 90de492

Please sign in to comment.