mirror of
https://github.com/zulip/zulip.git
synced 2025-11-11 09:27:43 +00:00
urls: Migrate analytics urls to use modern django patterns.
This commit is contained in:
@@ -373,7 +373,7 @@ class TestGetChartData(ZulipTestCase):
|
|||||||
user = self.example_user('hamlet')
|
user = self.example_user('hamlet')
|
||||||
self.login_user(user)
|
self.login_user(user)
|
||||||
|
|
||||||
result = self.client_get('/json/analytics/chart_data/realm/zulip/',
|
result = self.client_get('/json/analytics/chart_data/realm/zulip',
|
||||||
{'chart_name': 'number_of_humans'})
|
{'chart_name': 'number_of_humans'})
|
||||||
self.assert_json_error(result, "Must be an server administrator", 400)
|
self.assert_json_error(result, "Must be an server administrator", 400)
|
||||||
|
|
||||||
|
|||||||
@@ -1,32 +1,33 @@
|
|||||||
from django.conf.urls import include, url
|
from django.conf.urls import include
|
||||||
|
from django.urls import path
|
||||||
|
|
||||||
import analytics.views
|
import analytics.views
|
||||||
from zerver.lib.rest import rest_dispatch
|
from zerver.lib.rest import rest_dispatch
|
||||||
|
|
||||||
i18n_urlpatterns = [
|
i18n_urlpatterns = [
|
||||||
# Server admin (user_profile.is_staff) visible stats pages
|
# Server admin (user_profile.is_staff) visible stats pages
|
||||||
url(r'^activity$', analytics.views.get_activity,
|
path('activity', analytics.views.get_activity,
|
||||||
name='analytics.views.get_activity'),
|
name='analytics.views.get_activity'),
|
||||||
url(r'^activity/support$', analytics.views.support,
|
path('activity/support', analytics.views.support,
|
||||||
name='analytics.views.support'),
|
name='analytics.views.support'),
|
||||||
url(r'^realm_activity/(?P<realm_str>[\S]+)/$', analytics.views.get_realm_activity,
|
path('realm_activity/<str:realm_str>/', analytics.views.get_realm_activity,
|
||||||
name='analytics.views.get_realm_activity'),
|
name='analytics.views.get_realm_activity'),
|
||||||
url(r'^user_activity/(?P<email>[\S]+)/$', analytics.views.get_user_activity,
|
path('user_activity/<str:email>/', analytics.views.get_user_activity,
|
||||||
name='analytics.views.get_user_activity'),
|
name='analytics.views.get_user_activity'),
|
||||||
|
|
||||||
url(r'^stats/realm/(?P<realm_str>[\S]+)/$', analytics.views.stats_for_realm,
|
path('stats/realm/<str:realm_str>/', analytics.views.stats_for_realm,
|
||||||
name='analytics.views.stats_for_realm'),
|
name='analytics.views.stats_for_realm'),
|
||||||
url(r'^stats/installation$', analytics.views.stats_for_installation,
|
path('stats/installation', analytics.views.stats_for_installation,
|
||||||
name='analytics.views.stats_for_installation'),
|
name='analytics.views.stats_for_installation'),
|
||||||
url(r'^stats/remote/(?P<remote_server_id>[\S]+)/installation$',
|
path('stats/remote/<int:remote_server_id>/installation',
|
||||||
analytics.views.stats_for_remote_installation,
|
analytics.views.stats_for_remote_installation,
|
||||||
name='analytics.views.stats_for_remote_installation'),
|
name='analytics.views.stats_for_remote_installation'),
|
||||||
url(r'^stats/remote/(?P<remote_server_id>[\S]+)/realm/(?P<remote_realm_id>[\S]+)/$',
|
path('stats/remote/<int:remote_server_id>/realm/<int:remote_realm_id>/',
|
||||||
analytics.views.stats_for_remote_realm,
|
analytics.views.stats_for_remote_realm,
|
||||||
name='analytics.views.stats_for_remote_realm'),
|
name='analytics.views.stats_for_remote_realm'),
|
||||||
|
|
||||||
# User-visible stats page
|
# User-visible stats page
|
||||||
url(r'^stats$', analytics.views.stats,
|
path('stats', analytics.views.stats,
|
||||||
name='analytics.views.stats'),
|
name='analytics.views.stats'),
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -40,22 +41,22 @@ i18n_urlpatterns = [
|
|||||||
# All of these paths are accessed by either a /json or /api prefix
|
# All of these paths are accessed by either a /json or /api prefix
|
||||||
v1_api_and_json_patterns = [
|
v1_api_and_json_patterns = [
|
||||||
# get data for the graphs at /stats
|
# get data for the graphs at /stats
|
||||||
url(r'^analytics/chart_data$', rest_dispatch,
|
path('analytics/chart_data', rest_dispatch,
|
||||||
{'GET': 'analytics.views.get_chart_data'}),
|
{'GET': 'analytics.views.get_chart_data'}),
|
||||||
url(r'^analytics/chart_data/realm/(?P<realm_str>[\S]+)$', rest_dispatch,
|
path('analytics/chart_data/realm/<str:realm_str>', rest_dispatch,
|
||||||
{'GET': 'analytics.views.get_chart_data_for_realm'}),
|
{'GET': 'analytics.views.get_chart_data_for_realm'}),
|
||||||
url(r'^analytics/chart_data/installation$', rest_dispatch,
|
path('analytics/chart_data/installation', rest_dispatch,
|
||||||
{'GET': 'analytics.views.get_chart_data_for_installation'}),
|
{'GET': 'analytics.views.get_chart_data_for_installation'}),
|
||||||
url(r'^analytics/chart_data/remote/(?P<remote_server_id>[\S]+)/installation$', rest_dispatch,
|
path('analytics/chart_data/remote/<int:remote_server_id>/installation', rest_dispatch,
|
||||||
{'GET': 'analytics.views.get_chart_data_for_remote_installation'}),
|
{'GET': 'analytics.views.get_chart_data_for_remote_installation'}),
|
||||||
url(r'^analytics/chart_data/remote/(?P<remote_server_id>[\S]+)/realm/(?P<remote_realm_id>[\S]+)$',
|
path('analytics/chart_data/remote/<int:remote_server_id>/realm/<int:remote_realm_id>',
|
||||||
rest_dispatch,
|
rest_dispatch,
|
||||||
{'GET': 'analytics.views.get_chart_data_for_remote_realm'}),
|
{'GET': 'analytics.views.get_chart_data_for_remote_realm'}),
|
||||||
]
|
]
|
||||||
|
|
||||||
i18n_urlpatterns += [
|
i18n_urlpatterns += [
|
||||||
url(r'^api/v1/', include(v1_api_and_json_patterns)),
|
path('api/v1/', include(v1_api_and_json_patterns)),
|
||||||
url(r'^json/', include(v1_api_and_json_patterns)),
|
path('json/', include(v1_api_and_json_patterns)),
|
||||||
]
|
]
|
||||||
|
|
||||||
urlpatterns = i18n_urlpatterns
|
urlpatterns = i18n_urlpatterns
|
||||||
|
|||||||
@@ -123,8 +123,8 @@ def stats_for_realm(request: HttpRequest, realm_str: str) -> HttpResponse:
|
|||||||
|
|
||||||
@require_server_admin
|
@require_server_admin
|
||||||
@has_request_variables
|
@has_request_variables
|
||||||
def stats_for_remote_realm(request: HttpRequest, remote_server_id: str,
|
def stats_for_remote_realm(request: HttpRequest, remote_server_id: int,
|
||||||
remote_realm_id: str) -> HttpResponse:
|
remote_realm_id: int) -> HttpResponse:
|
||||||
server = RemoteZulipServer.objects.get(id=remote_server_id)
|
server = RemoteZulipServer.objects.get(id=remote_server_id)
|
||||||
return render_stats(request, f'/remote/{server.id}/realm/{remote_realm_id}',
|
return render_stats(request, f'/remote/{server.id}/realm/{remote_realm_id}',
|
||||||
f"Realm {remote_realm_id} on server {server.hostname}")
|
f"Realm {remote_realm_id} on server {server.hostname}")
|
||||||
@@ -143,8 +143,8 @@ def get_chart_data_for_realm(request: HttpRequest, user_profile: UserProfile,
|
|||||||
@require_server_admin_api
|
@require_server_admin_api
|
||||||
@has_request_variables
|
@has_request_variables
|
||||||
def get_chart_data_for_remote_realm(
|
def get_chart_data_for_remote_realm(
|
||||||
request: HttpRequest, user_profile: UserProfile, remote_server_id: str,
|
request: HttpRequest, user_profile: UserProfile, remote_server_id: int,
|
||||||
remote_realm_id: str, **kwargs: Any) -> HttpResponse:
|
remote_realm_id: int, **kwargs: Any) -> HttpResponse:
|
||||||
server = RemoteZulipServer.objects.get(id=remote_server_id)
|
server = RemoteZulipServer.objects.get(id=remote_server_id)
|
||||||
return get_chart_data(request=request, user_profile=user_profile, server=server,
|
return get_chart_data(request=request, user_profile=user_profile, server=server,
|
||||||
remote=True, remote_realm_id=int(remote_realm_id), **kwargs)
|
remote=True, remote_realm_id=int(remote_realm_id), **kwargs)
|
||||||
@@ -154,7 +154,7 @@ def stats_for_installation(request: HttpRequest) -> HttpResponse:
|
|||||||
return render_stats(request, '/installation', 'Installation', True)
|
return render_stats(request, '/installation', 'Installation', True)
|
||||||
|
|
||||||
@require_server_admin
|
@require_server_admin
|
||||||
def stats_for_remote_installation(request: HttpRequest, remote_server_id: str) -> HttpResponse:
|
def stats_for_remote_installation(request: HttpRequest, remote_server_id: int) -> HttpResponse:
|
||||||
server = RemoteZulipServer.objects.get(id=remote_server_id)
|
server = RemoteZulipServer.objects.get(id=remote_server_id)
|
||||||
return render_stats(request, f'/remote/{server.id}/installation',
|
return render_stats(request, f'/remote/{server.id}/installation',
|
||||||
f'remote Installation {server.hostname}', True, True)
|
f'remote Installation {server.hostname}', True, True)
|
||||||
@@ -170,7 +170,7 @@ def get_chart_data_for_installation(request: HttpRequest, user_profile: UserProf
|
|||||||
def get_chart_data_for_remote_installation(
|
def get_chart_data_for_remote_installation(
|
||||||
request: HttpRequest,
|
request: HttpRequest,
|
||||||
user_profile: UserProfile,
|
user_profile: UserProfile,
|
||||||
remote_server_id: str,
|
remote_server_id: int,
|
||||||
chart_name: str=REQ(),
|
chart_name: str=REQ(),
|
||||||
**kwargs: Any) -> HttpResponse:
|
**kwargs: Any) -> HttpResponse:
|
||||||
server = RemoteZulipServer.objects.get(id=remote_server_id)
|
server = RemoteZulipServer.objects.get(id=remote_server_id)
|
||||||
|
|||||||
Reference in New Issue
Block a user