Skip to content

Commit 1295f1f

Browse files
committed
Change stream state to replaced when an ISE, IAB, or IRTF document is replaced. Fixes ietf-tools#1963. Commit ready for merge.
- Legacy-Id: 15119
1 parent f64bf95 commit 1295f1f

3 files changed

Lines changed: 10136 additions & 10063 deletions

File tree

ietf/doc/tests_draft.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1566,3 +1566,21 @@ def test_review_possibly_replaces(self):
15661566
self.assertTrue(not self.replacea.related_that_doc("possibly-replaces"))
15671567
self.assertEqual(len(self.replacea.related_that_doc("replaces")), 1)
15681568
self.assertEquals(Document.objects.get(pk=self.basea.pk).get_state().slug, 'repl')
1569+
1570+
class MoreReplacesTests(TestCase):
1571+
1572+
def test_stream_state_changes_when_replaced(self):
1573+
self.client.login(username='secretary',password='secretary+password')
1574+
for stream in ('iab','irtf','ise'):
1575+
old_doc = DocumentFactory(stream_id=stream)
1576+
old_doc.set_state(State.objects.get(type_id='draft-stream-%s'%stream, slug='ise-rev' if stream=='ise' else 'active'))
1577+
new_doc = DocumentFactory(stream_id=stream)
1578+
1579+
url = urlreverse('ietf.doc.views_draft.replaces', kwargs=dict(name=new_doc.name))
1580+
r = self.client.post(url, dict(replaces=old_doc.name))
1581+
self.assertEqual(r.status_code,302)
1582+
old_doc = Document.objects.get(name=old_doc.name)
1583+
self.assertEqual(old_doc.get_state_slug('draft'),'repl')
1584+
self.assertEqual(old_doc.get_state_slug('draft-stream-%s'%stream),'repl')
1585+
1586+

ietf/doc/utils.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -592,6 +592,11 @@ def set_replaces_for_document(request, doc, new_replaces, by, email_subject, com
592592
cc.update(other_addrs.cc)
593593
RelatedDocument.objects.create(source=doc, target=d, relationship=relationship)
594594
d.document.set_state(State.objects.get(type='draft', slug='repl'))
595+
596+
if d.document.stream_id in ('irtf','ise','iab'):
597+
repl_state = State.objects.get(type_id='draft-stream-%s'%d.document.stream_id, slug='repl')
598+
d.document.set_state(repl_state)
599+
events.append(StateDocEvent.objects.create(doc=d.document, rev=d.document.rev, by=by, type='changed_state', desc="Set stream state to Replaced",state_type=repl_state.type, state=repl_state))
595600

596601
# make sure there are no lingering suggestions duplicating new replacements
597602
RelatedDocument.objects.filter(source=doc, target__in=new_replaces, relationship="possibly-replaces").delete()

0 commit comments

Comments
 (0)