From ba3279e95934704e4600b6790c0d396cc24fbdd0 Mon Sep 17 00:00:00 2001 From: Lauryn Menard Date: Tue, 5 Dec 2023 16:10:15 +0100 Subject: [PATCH] support: Add remote realm stub to remote server information. Adds a small section for any remote realms attached to the remote server in the support view. --- analytics/views/support.py | 11 +++++++++-- templates/analytics/remote_realm_details.html | 7 +++++++ templates/analytics/remote_server_support.html | 8 ++++++++ web/styles/portico/activity.css | 3 ++- 4 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 templates/analytics/remote_realm_details.html diff --git a/analytics/views/support.py b/analytics/views/support.py index be8f4e0f67..3d428e538f 100644 --- a/analytics/views/support.py +++ b/analytics/views/support.py @@ -49,7 +49,7 @@ from zerver.views.invite import get_invitee_emails_set if settings.ZILENCER_ENABLED: from zilencer.lib.remote_counts import MissingDataError, compute_max_monthly_messages - from zilencer.models import RemoteZulipServer + from zilencer.models import RemoteRealm, RemoteZulipServer if settings.BILLING_ENABLED: from corporate.lib.stripe import ( @@ -375,7 +375,9 @@ def get_remote_servers_for_support( if not email_to_search and not hostname_to_search: return [] - remote_servers_query = RemoteZulipServer.objects.order_by("id") + remote_servers_query = RemoteZulipServer.objects.order_by("id").prefetch_related( + "remoterealm_set" + ) if email_to_search: remote_servers_query = remote_servers_query.filter(contact_email__iexact=email_to_search) elif hostname_to_search: @@ -464,7 +466,10 @@ def remote_servers_support( ) remote_server_to_max_monthly_messages: Dict[int, Union[int, str]] = dict() plan_data: Dict[int, PlanData] = {} + remote_realms: Dict[int, List[RemoteRealm]] = {} for remote_server in remote_servers: + remote_realms_for_server = list(remote_server.remoterealm_set.all()) + remote_realms[remote_server.id] = remote_realms_for_server billing_session = RemoteServerBillingSession(remote_server=remote_server) remote_server_plan_data = get_current_plan_data_for_support_view(billing_session) plan_data[remote_server.id] = remote_server_plan_data @@ -476,10 +481,12 @@ def remote_servers_support( remote_server_to_max_monthly_messages[remote_server.id] = "Recent data missing" context["remote_servers"] = remote_servers + context["remote_realms"] = remote_realms context["remote_server_to_max_monthly_messages"] = remote_server_to_max_monthly_messages context["plan_data"] = plan_data context["get_discount"] = get_customer_discount_for_support_view context["get_plan_type_name"] = get_plan_type_string + context["get_org_type_display_name"] = get_org_type_display_name return render( request, diff --git a/templates/analytics/remote_realm_details.html b/templates/analytics/remote_realm_details.html new file mode 100644 index 0000000000..371f16e460 --- /dev/null +++ b/templates/analytics/remote_realm_details.html @@ -0,0 +1,7 @@ +
+ remote realm +

{{ remote_realm.name }}

+ Remote server hostname: {{ remote_realm.host }}
+ Date created: {{ remote_realm.realm_date_created.strftime('%d %B %Y') }}
+ Org type: {{ get_org_type_display_name(remote_realm.org_type) }}
+
diff --git a/templates/analytics/remote_server_support.html b/templates/analytics/remote_server_support.html index 1b79940d82..1d95be10cf 100644 --- a/templates/analytics/remote_server_support.html +++ b/templates/analytics/remote_server_support.html @@ -46,6 +46,7 @@ Last updated: {{ remote_server.last_updated|timesince }} ago
Max monthly messages: {{ remote_server_to_max_monthly_messages[remote_server.id] }}
Plan type: {{ get_plan_type_name(remote_server.plan_type) }}
+ Has remote realm(s): {{ remote_realms[remote_server.id] != [] }} {% if remote_server.plan_type == 100 %}

On 100% sponsored Zulip Community plan.

{% endif %} @@ -133,6 +134,13 @@ {% endif %} + + {% for remote_realm in remote_realms[remote_server.id] %} +
+
+ {% include "analytics/remote_realm_details.html" %} +
+ {% endfor %} {% endfor %} diff --git a/web/styles/portico/activity.css b/web/styles/portico/activity.css index e90eebb11b..9d8d9eb4bf 100644 --- a/web/styles/portico/activity.css +++ b/web/styles/portico/activity.css @@ -152,7 +152,8 @@ tr.admin td:first-child { } } -.remote-server-information { +.remote-server-information, +.remote-realm-information { padding-bottom: 15px; }