__init__.py 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. from django.conf.urls import url
  2. from django.contrib import admin as djadmin
  3. from django.contrib.auth import get_user_model
  4. from django.utils.translation import gettext_lazy as _
  5. from .djangoadmin import UserAdminModel
  6. from .views.bans import BansList, DeleteBan, EditBan, NewBan
  7. from .views.datadownloads import DataDownloadsList, RequestDataDownloads
  8. from .views.ranks import (
  9. DefaultRank,
  10. DeleteRank,
  11. EditRank,
  12. MoveDownRank,
  13. MoveUpRank,
  14. NewRank,
  15. RanksList,
  16. RankUsers,
  17. )
  18. from .views.users import EditUser, NewUser, UsersList
  19. djadmin.site.register(model_or_iterable=get_user_model(), admin_class=UserAdminModel)
  20. class MisagoAdminExtension:
  21. def register_urlpatterns(self, urlpatterns):
  22. # Users section
  23. urlpatterns.namespace(r"^users/", "users")
  24. # Accounts
  25. urlpatterns.patterns(
  26. "users",
  27. url(r"^$", UsersList.as_view(), name="index"),
  28. url(r"^(?P<page>\d+)/$", UsersList.as_view(), name="index"),
  29. url(r"^new/$", NewUser.as_view(), name="new"),
  30. url(r"^edit/(?P<pk>\d+)/$", EditUser.as_view(), name="edit"),
  31. )
  32. # Bans
  33. urlpatterns.namespace(r"^bans/", "bans", "users")
  34. urlpatterns.patterns(
  35. "users:bans",
  36. url(r"^$", BansList.as_view(), name="index"),
  37. url(r"^(?P<page>\d+)/$", BansList.as_view(), name="index"),
  38. url(r"^new/$", NewBan.as_view(), name="new"),
  39. url(r"^edit/(?P<pk>\d+)/$", EditBan.as_view(), name="edit"),
  40. url(r"^delete/(?P<pk>\d+)/$", DeleteBan.as_view(), name="delete"),
  41. )
  42. # Data Downloads
  43. urlpatterns.namespace(r"^data-downloads/", "data-downloads", "users")
  44. urlpatterns.patterns(
  45. "users:data-downloads",
  46. url(r"^$", DataDownloadsList.as_view(), name="index"),
  47. url(r"^(?P<page>\d+)/$", DataDownloadsList.as_view(), name="index"),
  48. url(r"^request/$", RequestDataDownloads.as_view(), name="request"),
  49. )
  50. # Ranks
  51. urlpatterns.namespace(r"^ranks/", "ranks")
  52. urlpatterns.patterns(
  53. "ranks",
  54. url(r"^$", RanksList.as_view(), name="index"),
  55. url(r"^new/$", NewRank.as_view(), name="new"),
  56. url(r"^edit/(?P<pk>\d+)/$", EditRank.as_view(), name="edit"),
  57. url(r"^default/(?P<pk>\d+)/$", DefaultRank.as_view(), name="default"),
  58. url(r"^move/down/(?P<pk>\d+)/$", MoveDownRank.as_view(), name="down"),
  59. url(r"^move/up/(?P<pk>\d+)/$", MoveUpRank.as_view(), name="up"),
  60. url(r"^users/(?P<pk>\d+)/$", RankUsers.as_view(), name="users"),
  61. url(r"^delete/(?P<pk>\d+)/$", DeleteRank.as_view(), name="delete"),
  62. )
  63. def register_navigation_nodes(self, site):
  64. site.add_node(
  65. name=_("Users"), icon="fa fa-users", after="index", namespace="users"
  66. )
  67. site.add_node(name=_("Bans"), parent="users", namespace="bans")
  68. site.add_node(
  69. name=_("Data downloads"),
  70. parent="users",
  71. after="bans:index",
  72. namespace="data-downloads",
  73. )
  74. site.add_node(
  75. name=_("Ranks"),
  76. icon="fas fa-shield-alt",
  77. after="users:index",
  78. namespace="ranks",
  79. )