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 #3252. - Legacy-Id: 18946 Note: SVN reference [18937] has been migrated to Git commit 7cb5fdafbf149eb67161fc8297f70ba208f05fe9
This commit is contained in:
parent
404d115934
commit
3b84ea6648
|
@ -6,6 +6,7 @@ from pyquery import PyQuery
|
|||
from http.cookies import SimpleCookie
|
||||
|
||||
from django.urls import reverse as urlreverse
|
||||
from django.conf import settings
|
||||
|
||||
import debug # pyflakes:ignore
|
||||
|
||||
|
@ -18,7 +19,10 @@ class CookieTests(TestCase):
|
|||
self.assertEqual(r.status_code, 200)
|
||||
self.assertListEqual([], list(r.cookies.keys()))
|
||||
q = PyQuery(r.content)
|
||||
self.assertEqual(q('div a.active[href="/accounts/settings/full_draft/off"]').contents(), ['Off'])
|
||||
if settings.USER_PREFERENCE_DEFAULTS['full_draft'] == 'off':
|
||||
self.assertEqual(q('div a.active[href="/accounts/settings/full_draft/off"]').contents(), ['Off'])
|
||||
else:
|
||||
self.assertEqual(q('div a.active[href="/accounts/settings/full_draft/on"]').contents(), ['On'])
|
||||
self.assertEqual(q('div a.active[href="/accounts/settings/new_enough/14"]').contents(), ['14 days'])
|
||||
self.assertEqual(q('div a.active[href="/accounts/settings/expires_soon/14"]').contents(), ['14 days'])
|
||||
self.assertEqual(q('div a.active[href="/accounts/settings/left_menu/off"]').contents(), ['Off'])
|
||||
|
@ -40,7 +44,10 @@ class CookieTests(TestCase):
|
|||
r = self.client.get(urlreverse("ietf.cookies.views.preferences"))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
q = PyQuery(r.content)
|
||||
self.assertEqual(q('div a.active[href="/accounts/settings/full_draft/off"]').contents(), ['Off'])
|
||||
if settings.USER_PREFERENCE_DEFAULTS['full_draft'] == 'off':
|
||||
self.assertEqual(q('div a.active[href="/accounts/settings/full_draft/off"]').contents(), ['Off'])
|
||||
else:
|
||||
self.assertEqual(q('div a.active[href="/accounts/settings/full_draft/on"]').contents(), ['On'])
|
||||
self.assertEqual(q('div a.active[href="/accounts/settings/new_enough/14"]').contents(), ['14 days'])
|
||||
self.assertEqual(q('div a.active[href="/accounts/settings/expires_soon/14"]').contents(), ['14 days'])
|
||||
self.assertEqual(q('div a.active[href="/accounts/settings/left_menu/off"]').contents(), ['Off'])
|
||||
|
@ -50,7 +57,10 @@ class CookieTests(TestCase):
|
|||
r = self.client.get(urlreverse("ietf.cookies.views.preferences"))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
q = PyQuery(r.content)
|
||||
self.assertEqual(q('div a.active[href="/accounts/settings/full_draft/off"]').contents(), ['Off'])
|
||||
if settings.USER_PREFERENCE_DEFAULTS['full_draft'] == 'off':
|
||||
self.assertEqual(q('div a.active[href="/accounts/settings/full_draft/off"]').contents(), ['Off'])
|
||||
else:
|
||||
self.assertEqual(q('div a.active[href="/accounts/settings/full_draft/on"]').contents(), ['On'])
|
||||
self.assertEqual(q('div a.active[href^="/accounts/settings/new_enough/"]').contents(), [])
|
||||
self.assertEqual(q('div a.active[href^="/accounts/settings/expires_soon/"]').contents(), [])
|
||||
self.assertEqual(q('div a.active[href="/accounts/settings/left_menu/off"]').contents(), ['Off'])
|
||||
|
@ -151,7 +161,10 @@ class CookieTests(TestCase):
|
|||
self.assertEqual(r.cookies[str('full_draft')].value, '')
|
||||
self.assertListEqual([str('full_draft')], list(r.cookies.keys()))
|
||||
q = PyQuery(r.content)
|
||||
self.assertEqual(q('div a.active[href="/accounts/settings/full_draft/off"]').contents(), ['Off'])
|
||||
if settings.USER_PREFERENCE_DEFAULTS['full_draft'] == 'off':
|
||||
self.assertEqual(q('div a.active[href="/accounts/settings/full_draft/off"]').contents(), ['Off'])
|
||||
else:
|
||||
self.assertEqual(q('div a.active[href="/accounts/settings/full_draft/on"]').contents(), ['On'])
|
||||
self.assertEqual(q('div a.active[href="/accounts/settings/new_enough/14"]').contents(), ['14 days'])
|
||||
self.assertEqual(q('div a.active[href="/accounts/settings/expires_soon/14"]').contents(), ['14 days'])
|
||||
# self.assertRegexpMatches(r.content, r'ietf-highlight-y.*full_draft.*off')
|
||||
|
|
|
@ -551,8 +551,9 @@ Man Expires September 22, 2015 [Page 3]
|
|||
r = self.client.get(urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=draft.name)))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertContains(r, "Active Internet-Draft")
|
||||
self.assertContains(r, "Show full document text")
|
||||
self.assertNotContains(r, "Deimos street")
|
||||
if settings.USER_PREFERENCE_DEFAULTS['full_draft'] == 'off':
|
||||
self.assertContains(r, "Show full document text")
|
||||
self.assertNotContains(r, "Deimos street")
|
||||
self.assertContains(r, replaced.canonical_name())
|
||||
self.assertContains(r, replaced.title)
|
||||
# obs/updates not included until draft is RFC
|
||||
|
@ -568,8 +569,8 @@ Man Expires September 22, 2015 [Page 3]
|
|||
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)
|
||||
self.assertContains(r, "Active Internet-Draft")
|
||||
self.assertNotContains(r, "Show full document text")
|
||||
self.assertContains(r, "Deimos street")
|
||||
self.assertContains(r, "Show full document text")
|
||||
self.assertNotContains(r, "Deimos street")
|
||||
self.assertContains(r, replaced.canonical_name())
|
||||
self.assertContains(r, replaced.title)
|
||||
# obs/updates not included until draft is RFC
|
||||
|
@ -656,8 +657,9 @@ Man Expires September 22, 2015 [Page 3]
|
|||
r = self.client.get(urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=draft.name)))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertContains(r, "Active Internet-Draft")
|
||||
self.assertContains(r, "Show full document text")
|
||||
self.assertNotContains(r, "Deimos street")
|
||||
if settings.USER_PREFERENCE_DEFAULTS['full_draft'] == 'off':
|
||||
self.assertContains(r, "Show full document text")
|
||||
self.assertNotContains(r, "Deimos street")
|
||||
self.assertContains(r, replaced.canonical_name())
|
||||
self.assertContains(r, replaced.title)
|
||||
# obs/updates not included until draft is RFC
|
||||
|
|
|
@ -169,7 +169,13 @@ def document_main(request, name, rev=None):
|
|||
|
||||
# specific document types
|
||||
if doc.type_id == "draft":
|
||||
split_content = not ( request.GET.get('include_text') or request.COOKIES.get("full_draft", settings.USER_PREFERENCE_DEFAULTS["full_draft"]) == "on" )
|
||||
split_content = request.COOKIES.get("full_draft", settings.USER_PREFERENCE_DEFAULTS["full_draft"]) == "off"
|
||||
if request.GET.get('include_text') == "0":
|
||||
split_content = True
|
||||
elif request.GET.get('include_text') == "1":
|
||||
split_content = False
|
||||
else:
|
||||
pass
|
||||
|
||||
iesg_state = doc.get_state("draft-iesg")
|
||||
if isinstance(doc, Document):
|
||||
|
|
|
@ -1053,7 +1053,7 @@ POSTCONFIRM_PATH = "/a/postconfirm/wrapper"
|
|||
USER_PREFERENCE_DEFAULTS = {
|
||||
"expires_soon" : "14",
|
||||
"new_enough" : "14",
|
||||
"full_draft" : "off",
|
||||
"full_draft" : "on",
|
||||
"left_menu" : "off",
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue