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:
parent
f64bf957f3
commit
1295f1f1d2
|
@ -1566,3 +1566,21 @@ class ChangeReplacesTests(TestCase):
|
||||||
self.assertTrue(not self.replacea.related_that_doc("possibly-replaces"))
|
self.assertTrue(not self.replacea.related_that_doc("possibly-replaces"))
|
||||||
self.assertEqual(len(self.replacea.related_that_doc("replaces")), 1)
|
self.assertEqual(len(self.replacea.related_that_doc("replaces")), 1)
|
||||||
self.assertEquals(Document.objects.get(pk=self.basea.pk).get_state().slug, 'repl')
|
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')
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -592,6 +592,11 @@ def set_replaces_for_document(request, doc, new_replaces, by, email_subject, com
|
||||||
cc.update(other_addrs.cc)
|
cc.update(other_addrs.cc)
|
||||||
RelatedDocument.objects.create(source=doc, target=d, relationship=relationship)
|
RelatedDocument.objects.create(source=doc, target=d, relationship=relationship)
|
||||||
d.document.set_state(State.objects.get(type='draft', slug='repl'))
|
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
|
# make sure there are no lingering suggestions duplicating new replacements
|
||||||
RelatedDocument.objects.filter(source=doc, target__in=new_replaces, relationship="possibly-replaces").delete()
|
RelatedDocument.objects.filter(source=doc, target__in=new_replaces, relationship="possibly-replaces").delete()
|
||||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue