Skip to content

Commit 2cb9045

Browse files
committed
fix(2397): reset approval state when updating what's new
1 parent 5f2783d commit 2cb9045

3 files changed

Lines changed: 9 additions & 4 deletions

File tree

versions/management/commands/generate_whats_new.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ def command(
8181
click.secho(f"queueing whats_new for {version.name}", fg="green")
8282
if force:
8383
Version.objects.filter(pk=version.pk).update(
84-
whats_new="", whats_new_html=""
84+
whats_new="", whats_new_html="", whats_new_approved=False
8585
)
8686
dispatch_whats_new(version.pk)
8787

versions/tasks.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -727,7 +727,11 @@ def generate_whats_new(self, version_pk: int) -> str | None:
727727

728728
@app.task
729729
def save_whats_new(markdown_text: str | None, version_pk: int):
730-
"""Persist a generated summary on the Version. Approval is left untouched."""
730+
"""Persist a generated summary on the Version.
731+
732+
Resets ``whats_new_approved`` to False so regenerated content goes back
733+
through admin moderation before it becomes visible on the public site.
734+
"""
731735
from core.htmlhelper import render_whats_new_markdown
732736

733737
if not markdown_text:
@@ -738,6 +742,7 @@ def save_whats_new(markdown_text: str | None, version_pk: int):
738742
whats_new=markdown_text,
739743
whats_new_html=render_whats_new_markdown(markdown_text),
740744
whats_new_generated_at=timezone.now(),
745+
whats_new_approved=False,
741746
)
742747
logger.info("save_whats_new_saved", version_pk=version_pk)
743748

versions/tests/test_ai_tasks.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,12 +96,12 @@ def test_save_whats_new_sanitizes_html(version):
9696

9797

9898
@pytest.mark.django_db
99-
def test_save_whats_new_does_not_change_approval(version):
99+
def test_save_whats_new_resets_approval(version):
100100
Version.objects.filter(pk=version.pk).update(whats_new_approved=True)
101101
save_whats_new.run(SAMPLE_OUTPUT, version.pk)
102102

103103
version.refresh_from_db()
104-
assert version.whats_new_approved is True
104+
assert version.whats_new_approved is False
105105

106106

107107
@pytest.mark.django_db

0 commit comments

Comments
 (0)