mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-03 21:43:21 +00:00 
			
		
		
		
	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:
		@@ -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>')
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user