Change stream state to replaced when an ISE, IAB, or IRTF document is replaced. Fixes #1963. Commit ready for merge.

- Legacy-Id: 15119
This commit is contained in:
Robert Sparks 2018-05-03 21:21:38 +00:00
parent f64bf957f3
commit 1295f1f1d2
3 changed files with 10136 additions and 10063 deletions

View file

@ -1566,3 +1566,21 @@ class ChangeReplacesTests(TestCase):
self.assertTrue(not self.replacea.related_that_doc("possibly-replaces"))
self.assertEqual(len(self.replacea.related_that_doc("replaces")), 1)
self.assertEquals(Document.objects.get(pk=self.basea.pk).get_state().slug, 'repl')
class MoreReplacesTests(TestCase):
def test_stream_state_changes_when_replaced(self):
self.client.login(username='secretary',password='secretary+password')
for stream in ('iab','irtf','ise'):
old_doc = DocumentFactory(stream_id=stream)
old_doc.set_state(State.objects.get(type_id='draft-stream-%s'%stream, slug='ise-rev' if stream=='ise' else 'active'))
new_doc = DocumentFactory(stream_id=stream)
url = urlreverse('ietf.doc.views_draft.replaces', kwargs=dict(name=new_doc.name))
r = self.client.post(url, dict(replaces=old_doc.name))
self.assertEqual(r.status_code,302)
old_doc = Document.objects.get(name=old_doc.name)
self.assertEqual(old_doc.get_state_slug('draft'),'repl')
self.assertEqual(old_doc.get_state_slug('draft-stream-%s'%stream),'repl')

View file

@ -593,6 +593,11 @@ def set_replaces_for_document(request, doc, new_replaces, by, email_subject, com
RelatedDocument.objects.create(source=doc, target=d, relationship=relationship)
d.document.set_state(State.objects.get(type='draft', slug='repl'))
if d.document.stream_id in ('irtf','ise','iab'):
repl_state = State.objects.get(type_id='draft-stream-%s'%d.document.stream_id, slug='repl')
d.document.set_state(repl_state)
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))
# make sure there are no lingering suggestions duplicating new replacements
RelatedDocument.objects.filter(source=doc, target__in=new_replaces, relationship="possibly-replaces").delete()

File diff suppressed because it is too large Load diff