Skip to content

Commit cfe9d7f

Browse files
committed
Repair document_main when there are status change relationships. Commit ready for merge.
- Legacy-Id: 19654
1 parent d6a2627 commit cfe9d7f

3 files changed

Lines changed: 38 additions & 3 deletions

File tree

ietf/doc/factories.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,33 @@ def set_group_charter_document(obj, create, extracted, **kwargs):
231231
obj.group.charter = extracted or obj
232232
obj.group.save()
233233

234+
class StatusChangeFactory(BaseDocumentFactory):
235+
type_id='statchg'
236+
237+
group = factory.SubFactory('ietf.group.factories.GroupFactory',acronym='iesg',type_id='ietf')
238+
name = factory.Sequence(lambda n: f'status-change-{n}-factoried')
239+
240+
@factory.post_generation
241+
def changes_status_of(obj, create, extracted, **kwargs):
242+
if not create:
243+
return
244+
if extracted:
245+
for (rel, target) in extracted:
246+
obj.relateddocument_set.create(relationship_id=rel,target=extracted)
247+
else:
248+
obj.relateddocument_set.create(relationship_id='tobcp', target=WgRfcFactory().docalias.first())
249+
250+
@factory.post_generation
251+
def states(obj, create, extracted, **kwargs):
252+
if not create:
253+
return
254+
if extracted:
255+
for state in extracted:
256+
obj.set_state(state)
257+
else:
258+
obj.set_state(State.objects.get(type_id='statchg',slug='appr-sent'))
259+
260+
234261
class ConflictReviewFactory(BaseDocumentFactory):
235262
type_id='conflrev'
236263

ietf/doc/tests.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@
3434
from ietf.doc.factories import ( DocumentFactory, DocEventFactory, CharterFactory,
3535
ConflictReviewFactory, WgDraftFactory, IndividualDraftFactory, WgRfcFactory,
3636
IndividualRfcFactory, StateDocEventFactory, BallotPositionDocEventFactory,
37-
BallotDocEventFactory, DocumentAuthorFactory, NewRevisionDocEventFactory)
37+
BallotDocEventFactory, DocumentAuthorFactory, NewRevisionDocEventFactory,
38+
StatusChangeFactory)
3839
from ietf.doc.fields import SearchableDocumentsField
3940
from ietf.doc.utils import create_ballot_if_not_open, uppercase_std_abbreviated_name
4041
from ietf.group.models import Group
@@ -1440,6 +1441,13 @@ def _change_state(doc, state):
14401441

14411442

14421443
class DocTestCase(TestCase):
1444+
def test_status_change(self):
1445+
statchg = StatusChangeFactory()
1446+
r = self.client.get(urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=statchg.name)))
1447+
self.assertEqual(r.status_code, 200)
1448+
r = self.client.get(urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=statchg.relateddocument_set.first().target.document.canonical_name())))
1449+
self.assertEqual(r.status_code, 200)
1450+
14431451
def test_document_charter(self):
14441452
CharterFactory(name='charter-ietf-mars')
14451453
r = self.client.get(urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name="charter-ietf-mars")))

ietf/templates/doc/document_draft.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@
6161
{% if updated_by %}<div>Updated by {{ updated_by|urlize_related_source_list|join:", " }}</div>{% endif %}
6262
{% if obsoletes %}<div>Obsoletes {{ obsoletes|urlize_related_target_list|join:", " }}</div>{% endif %}
6363
{% if updates %}<div> Updates {{ updates|urlize_related_target_list|join:", " }}</div>{% endif %}
64-
{% if status_changes %}<div>Status changed by {{ status_changes|join:", "|urlize_related_source_list }}</div>{% endif %}
65-
{% if proposed_status_changes %}<div>Proposed status changed by {{ proposed_status_changes|join:", "|urlize_related_source_list }}</div>{% endif %}
64+
{% if status_changes %}<div>Status changed by {{ status_changes|join:", "|urlize_ietf_docs }}</div>{% endif %}
65+
{% if proposed_status_changes %}<div>Proposed status changed by {{ proposed_status_changes|join:", "|urlize_ietf_docs }}</div>{% endif %}
6666
{% if rfc_aliases %}<div>Also known as {{ rfc_aliases|join:", "|urlize_ietf_docs }}</div>{% endif %}
6767
{% if draft_name %}<div>Was <a href="/doc/{{ draft_name}}/">{{ draft_name }}</a> {% if submission %}({{ submission|safe }}){% endif %}</div>{% endif %}
6868
{% else %}

0 commit comments

Comments
 (0)