diff --git a/ietf/doc/factories.py b/ietf/doc/factories.py index 40e0f506bf..a8b7b4656b 100644 --- a/ietf/doc/factories.py +++ b/ietf/doc/factories.py @@ -14,14 +14,16 @@ from ietf.doc.models import ( Document, DocEvent, NewRevisionDocEvent, DocAlias, State, DocumentAuthor, StateDocEvent, BallotPositionDocEvent, BallotDocEvent, BallotType, IRSGBallotDocEvent, TelechatDocEvent, - DocumentActionHolder, BofreqEditorDocEvent, BofreqResponsibleDocEvent ) + DocumentActionHolder, BofreqEditorDocEvent, BofreqResponsibleDocEvent, DocExtResource ) from ietf.group.models import Group from ietf.person.factories import PersonFactory from ietf.group.factories import RoleFactory +from ietf.name.models import ExtResourceName from ietf.utils.text import xslugify from ietf.utils.timezone import date_today + def draft_name_generator(type_id,group,n): return '%s-%s-%s-%s%d'%( type_id, @@ -520,3 +522,12 @@ def states(obj, create, extracted, **kwargs): obj.set_state(State.objects.get(type_id=state_type_id,slug=state_slug)) else: obj.set_state(State.objects.get(type_id='procmaterials', slug='active')) + +class DocExtResourceFactory(factory.django.DjangoModelFactory): + + name = factory.Iterator(ExtResourceName.objects.filter(type_id='url')) + value = factory.Faker('url') + doc = factory.SubFactory('ietf.doc.factories.BaseDocumentFactory') + class Meta: + model = DocExtResource + diff --git a/ietf/doc/tests.py b/ietf/doc/tests.py index 75cf5a7640..c60ee8b3d4 100644 --- a/ietf/doc/tests.py +++ b/ietf/doc/tests.py @@ -40,7 +40,7 @@ ConflictReviewFactory, WgDraftFactory, IndividualDraftFactory, WgRfcFactory, IndividualRfcFactory, StateDocEventFactory, BallotPositionDocEventFactory, BallotDocEventFactory, DocumentAuthorFactory, NewRevisionDocEventFactory, - StatusChangeFactory, BofreqFactory) + StatusChangeFactory, BofreqFactory, DocExtResourceFactory) from ietf.doc.forms import NotifyForm from ietf.doc.fields import SearchableDocumentsField from ietf.doc.utils import create_ballot_if_not_open, uppercase_std_abbreviated_name @@ -602,6 +602,8 @@ def test_document_draft(self): updated_by = IndividualDraftFactory() updated_by.relateddocument_set.create(relationship_id='updates',source=obsoleted_by,target=draft.docalias.first()) + external_resource = DocExtResourceFactory(doc=draft) + # these tests aren't testing all attributes yet, feel free to # expand them @@ -622,6 +624,7 @@ def test_document_draft(self): self.assertNotContains(r, updated.title) self.assertNotContains(r, updated_by.canonical_name()) self.assertNotContains(r, updated_by.title) + self.assertContains(r, external_resource.value) r = self.client.get(urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=draft.name)) + "?include_text=0") self.assertEqual(r.status_code, 200) diff --git a/ietf/templates/doc/document_info.html b/ietf/templates/doc/document_info.html index 25de5b6338..65dd5a9926 100644 --- a/ietf/templates/doc/document_info.html +++ b/ietf/templates/doc/document_info.html @@ -394,7 +394,6 @@ {% endif %} {% endif %} {% with doc.docextresource_set.all as resources %} - {% if document_html and resources or document_html and doc.group and doc.group.list_archive %} {% if resources or doc.group and doc.group.list_archive or can_edit_stream_info or can_edit_individual %}