__init__.py 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  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 (
  19. EditUser,
  20. NewUser,
  21. UsersList,
  22. )
  23. djadmin.site.register(model_or_iterable=get_user_model(), admin_class=UserAdminModel)
  24. class MisagoAdminExtension:
  25. def register_urlpatterns(self, urlpatterns):
  26. # Users section
  27. urlpatterns.namespace(r"^users/", "users")
  28. # Accounts
  29. urlpatterns.namespace(r"^accounts/", "accounts", "users")
  30. urlpatterns.patterns(
  31. "users:accounts",
  32. url(r"^$", UsersList.as_view(), name="index"),
  33. url(r"^(?P<page>\d+)/$", UsersList.as_view(), name="index"),
  34. url(r"^new/$", NewUser.as_view(), name="new"),
  35. url(r"^edit/(?P<pk>\d+)/$", EditUser.as_view(), name="edit"),
  36. )
  37. # Ranks
  38. urlpatterns.namespace(r"^ranks/", "ranks", "users")
  39. urlpatterns.patterns(
  40. "users:ranks",
  41. url(r"^$", RanksList.as_view(), name="index"),
  42. url(r"^new/$", NewRank.as_view(), name="new"),
  43. url(r"^edit/(?P<pk>\d+)/$", EditRank.as_view(), name="edit"),
  44. url(r"^default/(?P<pk>\d+)/$", DefaultRank.as_view(), name="default"),
  45. url(r"^move/down/(?P<pk>\d+)/$", MoveDownRank.as_view(), name="down"),
  46. url(r"^move/up/(?P<pk>\d+)/$", MoveUpRank.as_view(), name="up"),
  47. url(r"^users/(?P<pk>\d+)/$", RankUsers.as_view(), name="users"),
  48. url(r"^delete/(?P<pk>\d+)/$", DeleteRank.as_view(), name="delete"),
  49. )
  50. # Bans
  51. urlpatterns.namespace(r"^bans/", "bans", "users")
  52. urlpatterns.patterns(
  53. "users:bans",
  54. url(r"^$", BansList.as_view(), name="index"),
  55. url(r"^(?P<page>\d+)/$", BansList.as_view(), name="index"),
  56. url(r"^new/$", NewBan.as_view(), name="new"),
  57. url(r"^edit/(?P<pk>\d+)/$", EditBan.as_view(), name="edit"),
  58. url(r"^delete/(?P<pk>\d+)/$", DeleteBan.as_view(), name="delete"),
  59. )
  60. # Data Downloads
  61. urlpatterns.namespace(r"^data-downloads/", "data-downloads", "users")
  62. urlpatterns.patterns(
  63. "users:data-downloads",
  64. url(r"^$", DataDownloadsList.as_view(), name="index"),
  65. url(r"^(?P<page>\d+)/$", DataDownloadsList.as_view(), name="index"),
  66. url(r"^request/$", RequestDataDownloads.as_view(), name="request"),
  67. )
  68. def register_navigation_nodes(self, site):
  69. site.add_node(
  70. name=_("Users"),
  71. icon="fa fa-users",
  72. parent="misago:admin",
  73. after="misago:admin:index",
  74. namespace="misago:admin:users",
  75. link="misago:admin:users:accounts:index",
  76. )
  77. site.add_node(
  78. name=_("Users"),
  79. parent="misago:admin:users",
  80. namespace="misago:admin:users:accounts",
  81. link="misago:admin:users:accounts:index",
  82. )
  83. site.add_node(
  84. name=_("Ranks"),
  85. parent="misago:admin:users",
  86. namespace="misago:admin:users:ranks",
  87. link="misago:admin:users:ranks:index",
  88. )
  89. site.add_node(
  90. name=_("Bans"),
  91. parent="misago:admin:users",
  92. after="misago:admin:users:ranks:index",
  93. namespace="misago:admin:users:bans",
  94. link="misago:admin:users:bans:index",
  95. )
  96. site.add_node(
  97. name=_("Data downloads"),
  98. parent="misago:admin:users",
  99. after="misago:admin:users:bans:index",
  100. namespace="misago:admin:users:data-downloads",
  101. link="misago:admin:users:data-downloads:index",
  102. )