fix: follow replaces when building list for diff control (#8234)
This commit is contained in:
parent
fd816c4f41
commit
952bc90ee0
|
@ -5,6 +5,7 @@
|
||||||
import os
|
import os
|
||||||
import datetime
|
import datetime
|
||||||
import io
|
import io
|
||||||
|
from django.http import HttpRequest
|
||||||
import lxml
|
import lxml
|
||||||
import bibtexparser
|
import bibtexparser
|
||||||
import mock
|
import mock
|
||||||
|
@ -52,6 +53,7 @@ from ietf.doc.utils import (
|
||||||
generate_idnits2_rfcs_obsoleted,
|
generate_idnits2_rfcs_obsoleted,
|
||||||
get_doc_email_aliases,
|
get_doc_email_aliases,
|
||||||
)
|
)
|
||||||
|
from ietf.doc.views_doc import get_diff_revisions
|
||||||
from ietf.group.models import Group, Role
|
from ietf.group.models import Group, Role
|
||||||
from ietf.group.factories import GroupFactory, RoleFactory
|
from ietf.group.factories import GroupFactory, RoleFactory
|
||||||
from ietf.ipr.factories import HolderIprDisclosureFactory
|
from ietf.ipr.factories import HolderIprDisclosureFactory
|
||||||
|
@ -1954,6 +1956,18 @@ class DocTestCase(TestCase):
|
||||||
self.assertContains(r, notes.text)
|
self.assertContains(r, notes.text)
|
||||||
self.assertContains(r, rfced_note.text)
|
self.assertContains(r, rfced_note.text)
|
||||||
|
|
||||||
|
def test_diff_revisions(self):
|
||||||
|
ind_doc = IndividualDraftFactory(create_revisions=range(2))
|
||||||
|
wg_doc = WgDraftFactory(
|
||||||
|
relations=[("replaces", ind_doc)], create_revisions=range(2)
|
||||||
|
)
|
||||||
|
diff_revisions = get_diff_revisions(HttpRequest(), wg_doc.name, wg_doc)
|
||||||
|
self.assertEqual(len(diff_revisions), 4)
|
||||||
|
self.assertEqual(
|
||||||
|
[t[3] for t in diff_revisions],
|
||||||
|
[f"{n}-{v:02d}" for n in [wg_doc.name, ind_doc.name] for v in [1, 0]],
|
||||||
|
)
|
||||||
|
|
||||||
def test_history(self):
|
def test_history(self):
|
||||||
doc = IndividualDraftFactory()
|
doc = IndividualDraftFactory()
|
||||||
|
|
||||||
|
|
|
@ -1133,10 +1133,10 @@ def get_diff_revisions(request, name, doc):
|
||||||
|
|
||||||
diff_documents = [doc]
|
diff_documents = [doc]
|
||||||
diff_documents.extend(
|
diff_documents.extend(
|
||||||
Document.objects.filter(
|
[
|
||||||
relateddocument__source=doc,
|
r.target
|
||||||
relateddocument__relationship="replaces",
|
for r in RelatedDocument.objects.filter(source=doc, relationship="replaces")
|
||||||
)
|
]
|
||||||
)
|
)
|
||||||
if doc.came_from_draft():
|
if doc.came_from_draft():
|
||||||
diff_documents.append(doc.came_from_draft())
|
diff_documents.append(doc.came_from_draft())
|
||||||
|
|
Loading…
Reference in a new issue