help: Fix structure of markdown context logic.

Refactoring in this file had resulted in the logic for
html_settings_link being duplicated and extra logic being needed to
ensure these variables were set where they were needed.

This fixes subscriptions_html not being rendered properly in the /help
and /api pages, in addition to removing duplicate code.
This commit is contained in:
Tim Abbott
2018-04-05 11:31:43 -07:00
parent f1ece37455
commit 98889608a2
2 changed files with 25 additions and 31 deletions

View File

@@ -153,10 +153,10 @@ class IntegrationTest(TestCase):
self.assertEqual(context["api_url"], "http://mysubdomain.testserver/api")
self.assertTrue(context["html_settings_links"])
def test_integration_view_html_settings_links(self) -> None:
context = dict()
context['html_settings_links'] = False
add_integrations_context(context)
def test_html_settings_links(self) -> None:
context = dict() # type: Dict[str, Any]
with self.settings(ROOT_DOMAIN_LANDING_PAGE=True):
add_api_uri_context(context, HostRequestMock())
self.assertEqual(
context['settings_html'],
'Zulip settings page')
@@ -165,8 +165,17 @@ class IntegrationTest(TestCase):
'streams page')
context = dict()
context['html_settings_links'] = True
add_integrations_context(context)
with self.settings(ROOT_DOMAIN_LANDING_PAGE=True):
add_api_uri_context(context, HostRequestMock(host="mysubdomain.testserver"))
self.assertEqual(
context['settings_html'],
'<a href="../../#settings">Zulip settings page</a>')
self.assertEqual(
context['subscriptions_html'],
'<a target="_blank" href="../../#streams">streams page</a>')
context = dict()
add_api_uri_context(context, HostRequestMock())
self.assertEqual(
context['settings_html'],
'<a href="../../#settings">Zulip settings page</a>')

View File

@@ -34,7 +34,16 @@ def add_api_uri_context(context: Dict[str, Any], request: HttpRequest) -> None:
context['external_uri_scheme'] = settings.EXTERNAL_URI_SCHEME
context['api_url'] = api_url
context['api_url_scheme_relative'] = api_url_scheme_relative
context["html_settings_links"] = html_settings_links
if html_settings_links:
settings_html = '<a href="../../#settings">Zulip settings page</a>'
subscriptions_html = '<a target="_blank" href="../../#streams">streams page</a>'
else:
settings_html = 'Zulip settings page'
subscriptions_html = 'streams page'
context['settings_html'] = settings_html
context['subscriptions_html'] = subscriptions_html
class ApiURLView(TemplateView):
def get_context_data(self, **kwargs: Any) -> Dict[str, str]:
@@ -102,30 +111,6 @@ def add_integrations_context(context: Dict[str, Any]) -> None:
context['integrations_dict'] = alphabetical_sorted_integration
context['integrations_count_display'] = integrations_count_display
if "html_settings_links" in context and context["html_settings_links"]:
settings_html = '<a href="../../#settings">Zulip settings page</a>'
subscriptions_html = '<a target="_blank" href="../../#streams">streams page</a>'
else:
settings_html = 'Zulip settings page'
subscriptions_html = 'streams page'
context['settings_html'] = settings_html
context['subscriptions_html'] = subscriptions_html
def add_context_for_single_integration(context: Dict[str, Any], name: str, request: HttpRequest) -> None:
add_api_uri_context(context, request)
if "html_settings_links" in context and context["html_settings_links"]:
settings_html = '<a href="../../#settings">Zulip settings page</a>'
subscriptions_html = '<a target="_blank" href="../../#streams">streams page</a>'
else:
settings_html = 'Zulip settings page'
subscriptions_html = 'streams page'
context['settings_html'] = settings_html
context['subscriptions_html'] = subscriptions_html
class IntegrationView(ApiURLView):
template_name = 'zerver/integrations/index.html'
@@ -144,7 +129,7 @@ def integration_doc(request: HttpRequest, integration_name: str=REQ(default=None
return HttpResponseNotFound()
context = {} # type: Dict[str, Any]
add_context_for_single_integration(context, integration_name, request)
add_api_uri_context(context, request)
context['integration_name'] = integration.name
context['integration_display_name'] = integration.display_name