Skip to content

Commit b2094f5

Browse files
committed
Implement feed entry revision tracking: add field_changes to FeedEntryRevision, enhance create_revision_snapshot function, and update feed entry history display
1 parent 2ec271f commit b2094f5

File tree

7 files changed

+612
-91
lines changed

7 files changed

+612
-91
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
from django.db import migrations, models
2+
3+
4+
class Migration(migrations.Migration):
5+
6+
dependencies = [
7+
("qgisfeed", "0016_qgisfeedentry_reviewers_and_more"),
8+
]
9+
10+
operations = [
11+
migrations.AddField(
12+
model_name="feedentryrevision",
13+
name="field_changes",
14+
field=models.JSONField(
15+
blank=True,
16+
default=list,
17+
help_text="Structured list of per-field old→new changes",
18+
verbose_name="Field Changes",
19+
),
20+
),
21+
]
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Generated by Django 4.2.24 on 2026-03-03 17:08
2+
3+
from django.db import migrations
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
("qgisfeed", "0017_feedentryrevision_field_changes"),
10+
]
11+
12+
operations = [
13+
migrations.AlterModelOptions(
14+
name="feedentryreview",
15+
options={
16+
"ordering": ["created_at"],
17+
"verbose_name": "Feed Entry Review",
18+
"verbose_name_plural": "Feed Entry Reviews",
19+
},
20+
),
21+
]

qgisfeedproject/qgisfeed/models.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -424,7 +424,7 @@ class FeedEntryRevision(models.Model):
424424
get_user_model(), on_delete=models.CASCADE, verbose_name=_("Modified by")
425425
)
426426

427-
# Snapshot of changed fields
427+
# Snapshot of changed fields (kept for backward-compat / full-text auditing)
428428
title = models.CharField(_("Title"), max_length=255)
429429
content = models.TextField(_("Content"))
430430
url = models.URLField(_("URL"), max_length=200, blank=True, null=True)
@@ -438,6 +438,14 @@ class FeedEntryRevision(models.Model):
438438
help_text=_("Brief description of what changed"),
439439
)
440440

441+
# Per-field diff: list of {"label": ..., "old": ..., "new": ...}
442+
field_changes = models.JSONField(
443+
_("Field Changes"),
444+
default=list,
445+
blank=True,
446+
help_text=_("Structured list of per-field old→new changes"),
447+
)
448+
441449
class Meta:
442450
ordering = ["-changed_at"]
443451
verbose_name = _("Feed Entry Revision")

0 commit comments

Comments
 (0)