urls.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. from django.conf.urls import include, url
  2. from django.views.generic import TemplateView
  3. from misago.conf import settings
  4. from misago.core.views import forum_index
  5. app_name = 'misago'
  6. # Register Misago Apps
  7. urlpatterns = [
  8. url(r'^', include('misago.legal.urls')),
  9. url(r'^', include('misago.users.urls')),
  10. url(r'^', include('misago.categories.urls')),
  11. url(r'^', include('misago.threads.urls')),
  12. url(r'^', include('misago.search.urls')),
  13. # default robots.txt
  14. url(
  15. r'^robots.txt$',
  16. TemplateView.as_view(content_type='text/plain', template_name='misago/robots.txt')
  17. ),
  18. # "misago:index" link symbolises "root" of Misago links space
  19. # any request with path that falls below this one is assumed to be directed
  20. # at Misago and will be handled by misago.views.exceptionhandler if it
  21. # results in Http404 or PermissionDenied exception
  22. url(r'^$', forum_index, name='index'),
  23. ]
  24. # Register API
  25. apipatterns = [
  26. url(r'^', include('misago.categories.urls.api')),
  27. url(r'^', include('misago.markup.urls')),
  28. url(r'^', include('misago.threads.urls.api')),
  29. url(r'^', include('misago.users.urls.api')),
  30. url(r'^', include('misago.search.urls.api')),
  31. ]
  32. urlpatterns += [
  33. url(r'^api/', include((apipatterns, 'api'), namespace='api')),
  34. ]
  35. # Register Misago ACP
  36. if settings.MISAGO_ADMIN_PATH:
  37. # Admin patterns recognised by Misago
  38. adminpatterns = [
  39. url(r'^', include('misago.admin.urls')),
  40. ]
  41. admin_prefix = r'^%s/' % settings.MISAGO_ADMIN_PATH
  42. urlpatterns += [
  43. url(admin_prefix, include((adminpatterns, 'admin'), namespace='admin')),
  44. ]
  45. # Make error pages accessible casually in DEBUG
  46. if settings.DEBUG:
  47. from misago.core import errorpages
  48. urlpatterns += [
  49. url(r'^403/$', errorpages.permission_denied),
  50. url(r'^404/$', errorpages.page_not_found),
  51. url(r'^405/$', errorpages.not_allowed),
  52. url(r'^csrf-failure/$', errorpages.csrf_failure),
  53. ]