2020-06-11 00:54:34 +02:00
|
|
|
import os
|
2020-04-04 01:47:18 +02:00
|
|
|
from urllib.parse import urlsplit
|
2020-06-11 00:54:34 +02:00
|
|
|
|
2016-06-25 03:44:32 +02:00
|
|
|
from django.conf import settings
|
2020-06-11 00:54:34 +02:00
|
|
|
from django.conf.urls import url
|
2020-04-04 01:47:18 +02:00
|
|
|
from django.conf.urls.static import static
|
|
|
|
from django.contrib.staticfiles.views import serve as staticfiles_serve
|
|
|
|
from django.http import HttpRequest, HttpResponse
|
2017-06-14 02:01:01 +02:00
|
|
|
from django.views.generic import TemplateView
|
2016-10-27 13:29:44 +02:00
|
|
|
from django.views.static import serve
|
2020-06-11 00:54:34 +02:00
|
|
|
|
2017-03-18 01:58:45 +01:00
|
|
|
import zerver.views.auth
|
2019-01-11 20:11:31 +01:00
|
|
|
import zerver.views.development.email_log
|
2019-04-14 15:28:19 +02:00
|
|
|
import zerver.views.development.integrations
|
2020-06-11 00:54:34 +02:00
|
|
|
import zerver.views.development.registration
|
2016-06-25 03:44:32 +02:00
|
|
|
|
|
|
|
# These URLs are available only in the development environment
|
|
|
|
|
2019-07-18 11:36:56 +02:00
|
|
|
use_prod_static = not settings.DEBUG
|
2016-06-25 03:44:32 +02:00
|
|
|
|
2017-03-18 01:58:45 +01:00
|
|
|
urls = [
|
2017-06-02 21:44:09 +02:00
|
|
|
# Serve useful development environment resources (docs, coverage reports, etc.)
|
2017-03-23 19:59:24 +01:00
|
|
|
url(r'^coverage/(?P<path>.*)$',
|
|
|
|
serve, {'document_root':
|
|
|
|
os.path.join(settings.DEPLOY_ROOT, 'var/coverage'),
|
|
|
|
'show_indexes': True}),
|
2017-06-09 07:17:00 +02:00
|
|
|
url(r'^node-coverage/(?P<path>.*)$',
|
|
|
|
serve, {'document_root':
|
|
|
|
os.path.join(settings.DEPLOY_ROOT, 'var/node-coverage/lcov-report'),
|
|
|
|
'show_indexes': True}),
|
2018-06-03 14:03:03 +02:00
|
|
|
url(r'^casper/(?P<path>.*)$',
|
|
|
|
serve, {'document_root':
|
|
|
|
os.path.join(settings.DEPLOY_ROOT, 'var/casper'),
|
|
|
|
'show_indexes': True}),
|
2017-03-23 19:59:24 +01:00
|
|
|
url(r'^docs/(?P<path>.*)$',
|
|
|
|
serve, {'document_root':
|
|
|
|
os.path.join(settings.DEPLOY_ROOT, 'docs/_build/html')}),
|
2017-06-02 21:44:09 +02:00
|
|
|
|
|
|
|
# The special no-password login endpoint for development
|
2017-03-18 01:58:45 +01:00
|
|
|
url(r'^devlogin/$', zerver.views.auth.login_page,
|
|
|
|
{'template_name': 'zerver/dev_login.html'}, name='zerver.views.auth.login_page'),
|
2017-06-08 02:47:44 +02:00
|
|
|
|
|
|
|
# Page for testing email templates
|
2019-01-11 20:11:31 +01:00
|
|
|
url(r'^emails/$', zerver.views.development.email_log.email_page),
|
|
|
|
url(r'^emails/generate/$', zerver.views.development.email_log.generate_all_emails),
|
|
|
|
url(r'^emails/clear/$', zerver.views.development.email_log.clear_emails),
|
2017-06-14 02:01:01 +02:00
|
|
|
|
|
|
|
# Listing of useful URLs and various tools for development
|
|
|
|
url(r'^devtools/$', TemplateView.as_view(template_name='zerver/dev_tools.html')),
|
2019-03-13 18:26:01 +01:00
|
|
|
# Register New User and Realm
|
|
|
|
url(r'^devtools/register_user/$',
|
|
|
|
zerver.views.development.registration.register_development_user,
|
|
|
|
name='zerver.views.development.registration.register_development_user'),
|
|
|
|
url(r'^devtools/register_realm/$',
|
|
|
|
zerver.views.development.registration.register_development_realm,
|
|
|
|
name='zerver.views.development.registration.register_development_realm'),
|
2017-06-15 05:42:27 +02:00
|
|
|
|
|
|
|
# Have easy access for error pages
|
|
|
|
url(r'^errors/404/$', TemplateView.as_view(template_name='404.html')),
|
|
|
|
url(r'^errors/5xx/$', TemplateView.as_view(template_name='500.html')),
|
2019-04-14 15:28:19 +02:00
|
|
|
|
2020-03-28 01:25:56 +01:00
|
|
|
# Add a convenient way to generate webhook messages from fixtures.
|
2019-04-14 15:28:19 +02:00
|
|
|
url(r'^devtools/integrations/$', zerver.views.development.integrations.dev_panel),
|
|
|
|
url(r'^devtools/integrations/check_send_webhook_fixture_message$',
|
|
|
|
zerver.views.development.integrations.check_send_webhook_fixture_message),
|
2019-05-16 20:29:18 +02:00
|
|
|
url(r'^devtools/integrations/send_all_webhook_fixture_messages$',
|
|
|
|
zerver.views.development.integrations.send_all_webhook_fixture_messages),
|
2019-04-14 15:28:19 +02:00
|
|
|
url(r'^devtools/integrations/(?P<integration_name>.+)/fixtures$',
|
|
|
|
zerver.views.development.integrations.get_fixtures),
|
2017-03-18 01:58:45 +01:00
|
|
|
]
|
2017-03-23 19:59:24 +01:00
|
|
|
|
2019-07-18 11:27:16 +02:00
|
|
|
# Serve static assets via the Django server
|
|
|
|
if use_prod_static:
|
|
|
|
urls += [
|
|
|
|
url(r'^static/(?P<path>.*)$', serve, {'document_root': settings.STATIC_ROOT}),
|
|
|
|
]
|
|
|
|
else:
|
2020-04-04 01:47:18 +02:00
|
|
|
def serve_static(request: HttpRequest, path: str) -> HttpResponse:
|
|
|
|
response = staticfiles_serve(request, path)
|
|
|
|
response["Access-Control-Allow-Origin"] = "*"
|
|
|
|
return response
|
|
|
|
|
|
|
|
urls += static(urlsplit(settings.STATIC_URL).path, view=serve_static)
|
2019-07-18 11:27:16 +02:00
|
|
|
|
2017-03-18 01:58:45 +01:00
|
|
|
i18n_urls = [
|
2019-01-11 20:56:22 +01:00
|
|
|
url(r'^confirmation_key/$', zerver.views.development.registration.confirmation_key),
|
2017-03-18 01:58:45 +01:00
|
|
|
]
|
2016-06-25 03:44:32 +02:00
|
|
|
|
2020-01-30 21:23:36 +01:00
|
|
|
# On a production instance, these files would be served by nginx.
|
2016-06-25 03:44:32 +02:00
|
|
|
if settings.LOCAL_UPLOADS_DIR is not None:
|
|
|
|
urls += [
|
2016-10-27 13:29:44 +02:00
|
|
|
url(r'^user_avatars/(?P<path>.*)$', serve,
|
2016-06-25 03:44:32 +02:00
|
|
|
{'document_root': os.path.join(settings.LOCAL_UPLOADS_DIR, "avatars")}),
|
|
|
|
]
|