Skip to content

Commit 3b84ea6

Browse files
committed
Merged in [18937] from rjsparks@nostrum.com:
Change the default behavior of a document's main page to show the full document content. Users can still control whether the full page is shown on a particular document by adding either ?include_text=0 or ?include_text=1 to the url. Users can also use the settings page at /account/settings to override the default behavior for all documents. Fixes ietf-tools#3252. - Legacy-Id: 18946 Note: SVN reference [18937] has been migrated to Git commit 7cb5fda
1 parent 404d115 commit 3b84ea6

File tree

4 files changed

+33
-12
lines changed

4 files changed

+33
-12
lines changed

ietf/cookies/tests.py

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from http.cookies import SimpleCookie
77

88
from django.urls import reverse as urlreverse
9+
from django.conf import settings
910

1011
import debug # pyflakes:ignore
1112

@@ -18,7 +19,10 @@ def test_settings_defaults(self):
1819
self.assertEqual(r.status_code, 200)
1920
self.assertListEqual([], list(r.cookies.keys()))
2021
q = PyQuery(r.content)
21-
self.assertEqual(q('div a.active[href="/accounts/settings/full_draft/off"]').contents(), ['Off'])
22+
if settings.USER_PREFERENCE_DEFAULTS['full_draft'] == 'off':
23+
self.assertEqual(q('div a.active[href="/accounts/settings/full_draft/off"]').contents(), ['Off'])
24+
else:
25+
self.assertEqual(q('div a.active[href="/accounts/settings/full_draft/on"]').contents(), ['On'])
2226
self.assertEqual(q('div a.active[href="/accounts/settings/new_enough/14"]').contents(), ['14 days'])
2327
self.assertEqual(q('div a.active[href="/accounts/settings/expires_soon/14"]').contents(), ['14 days'])
2428
self.assertEqual(q('div a.active[href="/accounts/settings/left_menu/off"]').contents(), ['Off'])
@@ -40,7 +44,10 @@ def test_settings_values_from_cookies_garbage(self):
4044
r = self.client.get(urlreverse("ietf.cookies.views.preferences"))
4145
self.assertEqual(r.status_code, 200)
4246
q = PyQuery(r.content)
43-
self.assertEqual(q('div a.active[href="/accounts/settings/full_draft/off"]').contents(), ['Off'])
47+
if settings.USER_PREFERENCE_DEFAULTS['full_draft'] == 'off':
48+
self.assertEqual(q('div a.active[href="/accounts/settings/full_draft/off"]').contents(), ['Off'])
49+
else:
50+
self.assertEqual(q('div a.active[href="/accounts/settings/full_draft/on"]').contents(), ['On'])
4451
self.assertEqual(q('div a.active[href="/accounts/settings/new_enough/14"]').contents(), ['14 days'])
4552
self.assertEqual(q('div a.active[href="/accounts/settings/expires_soon/14"]').contents(), ['14 days'])
4653
self.assertEqual(q('div a.active[href="/accounts/settings/left_menu/off"]').contents(), ['Off'])
@@ -50,7 +57,10 @@ def test_settings_values_from_cookies_random(self):
5057
r = self.client.get(urlreverse("ietf.cookies.views.preferences"))
5158
self.assertEqual(r.status_code, 200)
5259
q = PyQuery(r.content)
53-
self.assertEqual(q('div a.active[href="/accounts/settings/full_draft/off"]').contents(), ['Off'])
60+
if settings.USER_PREFERENCE_DEFAULTS['full_draft'] == 'off':
61+
self.assertEqual(q('div a.active[href="/accounts/settings/full_draft/off"]').contents(), ['Off'])
62+
else:
63+
self.assertEqual(q('div a.active[href="/accounts/settings/full_draft/on"]').contents(), ['On'])
5464
self.assertEqual(q('div a.active[href^="/accounts/settings/new_enough/"]').contents(), [])
5565
self.assertEqual(q('div a.active[href^="/accounts/settings/expires_soon/"]').contents(), [])
5666
self.assertEqual(q('div a.active[href="/accounts/settings/left_menu/off"]').contents(), ['Off'])
@@ -151,7 +161,10 @@ def test_full_draft(self):
151161
self.assertEqual(r.cookies[str('full_draft')].value, '')
152162
self.assertListEqual([str('full_draft')], list(r.cookies.keys()))
153163
q = PyQuery(r.content)
154-
self.assertEqual(q('div a.active[href="/accounts/settings/full_draft/off"]').contents(), ['Off'])
164+
if settings.USER_PREFERENCE_DEFAULTS['full_draft'] == 'off':
165+
self.assertEqual(q('div a.active[href="/accounts/settings/full_draft/off"]').contents(), ['Off'])
166+
else:
167+
self.assertEqual(q('div a.active[href="/accounts/settings/full_draft/on"]').contents(), ['On'])
155168
self.assertEqual(q('div a.active[href="/accounts/settings/new_enough/14"]').contents(), ['14 days'])
156169
self.assertEqual(q('div a.active[href="/accounts/settings/expires_soon/14"]').contents(), ['14 days'])
157170
# self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')

ietf/doc/tests.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -551,8 +551,9 @@ def test_document_draft(self):
551551
r = self.client.get(urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=draft.name)))
552552
self.assertEqual(r.status_code, 200)
553553
self.assertContains(r, "Active Internet-Draft")
554-
self.assertContains(r, "Show full document text")
555-
self.assertNotContains(r, "Deimos street")
554+
if settings.USER_PREFERENCE_DEFAULTS['full_draft'] == 'off':
555+
self.assertContains(r, "Show full document text")
556+
self.assertNotContains(r, "Deimos street")
556557
self.assertContains(r, replaced.canonical_name())
557558
self.assertContains(r, replaced.title)
558559
# obs/updates not included until draft is RFC
@@ -568,8 +569,8 @@ def test_document_draft(self):
568569
r = self.client.get(urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=draft.name)) + "?include_text=0")
569570
self.assertEqual(r.status_code, 200)
570571
self.assertContains(r, "Active Internet-Draft")
571-
self.assertNotContains(r, "Show full document text")
572-
self.assertContains(r, "Deimos street")
572+
self.assertContains(r, "Show full document text")
573+
self.assertNotContains(r, "Deimos street")
573574
self.assertContains(r, replaced.canonical_name())
574575
self.assertContains(r, replaced.title)
575576
# obs/updates not included until draft is RFC
@@ -656,8 +657,9 @@ def test_document_draft(self):
656657
r = self.client.get(urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=draft.name)))
657658
self.assertEqual(r.status_code, 200)
658659
self.assertContains(r, "Active Internet-Draft")
659-
self.assertContains(r, "Show full document text")
660-
self.assertNotContains(r, "Deimos street")
660+
if settings.USER_PREFERENCE_DEFAULTS['full_draft'] == 'off':
661+
self.assertContains(r, "Show full document text")
662+
self.assertNotContains(r, "Deimos street")
661663
self.assertContains(r, replaced.canonical_name())
662664
self.assertContains(r, replaced.title)
663665
# obs/updates not included until draft is RFC

ietf/doc/views_doc.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,13 @@ def document_main(request, name, rev=None):
169169

170170
# specific document types
171171
if doc.type_id == "draft":
172-
split_content = not ( request.GET.get('include_text') or request.COOKIES.get("full_draft", settings.USER_PREFERENCE_DEFAULTS["full_draft"]) == "on" )
172+
split_content = request.COOKIES.get("full_draft", settings.USER_PREFERENCE_DEFAULTS["full_draft"]) == "off"
173+
if request.GET.get('include_text') == "0":
174+
split_content = True
175+
elif request.GET.get('include_text') == "1":
176+
split_content = False
177+
else:
178+
pass
173179

174180
iesg_state = doc.get_state("draft-iesg")
175181
if isinstance(doc, Document):

ietf/settings.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1053,7 +1053,7 @@ def skip_unreadable_post(record):
10531053
USER_PREFERENCE_DEFAULTS = {
10541054
"expires_soon" : "14",
10551055
"new_enough" : "14",
1056-
"full_draft" : "off",
1056+
"full_draft" : "on",
10571057
"left_menu" : "off",
10581058
}
10591059

0 commit comments

Comments
 (0)