__init__.py 4.0 KB

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