admin.py 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. from django.conf.urls import url
  2. from django.contrib import admin as djadmin
  3. from django.utils.translation import ugettext_lazy as _
  4. from misago.users.djangoadmin import User, UserAdminModel
  5. from misago.users.views.admin.bans import BansList, DeleteBan, EditBan, NewBan
  6. from misago.users.views.admin.ranks import (
  7. DefaultRank,
  8. DeleteRank,
  9. EditRank,
  10. MoveDownRank,
  11. MoveUpRank,
  12. NewRank,
  13. RanksList,
  14. RankUsers
  15. )
  16. from misago.users.views.admin.users import (
  17. DeleteAccountStep,
  18. DeletePostsStep,
  19. DeleteThreadsStep,
  20. EditUser,
  21. NewUser,
  22. UsersList
  23. )
  24. from misago.users.views.admin.warnings import (
  25. DeleteWarning,
  26. EditWarning,
  27. MoveDownWarning,
  28. MoveUpWarning,
  29. NewWarning,
  30. WarningsList
  31. )
  32. # register misago user model in django admin panel
  33. djadmin.site.register(model_or_iterable=User, admin_class=UserAdminModel)
  34. class MisagoAdminExtension(object):
  35. def register_urlpatterns(self, urlpatterns):
  36. # Users section
  37. urlpatterns.namespace(r'^users/', 'users')
  38. # Accounts
  39. urlpatterns.namespace(r'^accounts/', 'accounts', 'users')
  40. urlpatterns.patterns('users:accounts',
  41. url(r'^$', UsersList.as_view(), name='index'),
  42. url(r'^(?P<page>\d+)/$', UsersList.as_view(), name='index'),
  43. url(r'^new/$', NewUser.as_view(), name='new'),
  44. url(r'^edit/(?P<pk>\d+)/$', EditUser.as_view(), name='edit'),
  45. url(r'^delete-threads/(?P<pk>\d+)/$', DeleteThreadsStep.as_view(), name='delete-threads'),
  46. url(r'^delete-posts/(?P<pk>\d+)/$', DeletePostsStep.as_view(), name='delete-posts'),
  47. url(r'^delete-account/(?P<pk>\d+)/$', DeleteAccountStep.as_view(), name='delete-account'),
  48. )
  49. # Ranks
  50. urlpatterns.namespace(r'^ranks/', 'ranks', 'users')
  51. urlpatterns.patterns('users:ranks',
  52. url(r'^$', RanksList.as_view(), name='index'),
  53. url(r'^new/$', NewRank.as_view(), name='new'),
  54. url(r'^edit/(?P<pk>\d+)/$', EditRank.as_view(), name='edit'),
  55. url(r'^default/(?P<pk>\d+)/$', DefaultRank.as_view(), name='default'),
  56. url(r'^move/down/(?P<pk>\d+)/$', MoveDownRank.as_view(), name='down'),
  57. url(r'^move/up/(?P<pk>\d+)/$', MoveUpRank.as_view(), name='up'),
  58. url(r'^users/(?P<pk>\d+)/$', RankUsers.as_view(), name='users'),
  59. url(r'^delete/(?P<pk>\d+)/$', DeleteRank.as_view(), name='delete'),
  60. )
  61. # Bans
  62. urlpatterns.namespace(r'^bans/', 'bans', 'users')
  63. urlpatterns.patterns('users:bans',
  64. url(r'^$', BansList.as_view(), name='index'),
  65. url(r'^(?P<page>\d+)/$', BansList.as_view(), name='index'),
  66. url(r'^new/$', NewBan.as_view(), name='new'),
  67. url(r'^edit/(?P<pk>\d+)/$', EditBan.as_view(), name='edit'),
  68. url(r'^delete/(?P<pk>\d+)/$', DeleteBan.as_view(), name='delete'),
  69. )
  70. # Warnings
  71. urlpatterns.namespace(r'^warnings/', 'warnings', 'users')
  72. urlpatterns.patterns('users:warnings',
  73. url(r'^$', WarningsList.as_view(), name='index'),
  74. url(r'^new/$', NewWarning.as_view(), name='new'),
  75. url(r'^edit/(?P<pk>\d+)/$', EditWarning.as_view(), name='edit'),
  76. url(r'^move/down/(?P<pk>\d+)/$', MoveDownWarning.as_view(), name='down'),
  77. url(r'^move/up/(?P<pk>\d+)/$', MoveUpWarning.as_view(), name='up'),
  78. url(r'^delete/(?P<pk>\d+)/$', DeleteWarning.as_view(), name='delete'),
  79. )
  80. def register_navigation_nodes(self, site):
  81. site.add_node(
  82. name=_("Users"),
  83. icon='fa fa-users',
  84. parent='misago:admin',
  85. after='misago:admin:index',
  86. namespace='misago:admin:users',
  87. link='misago:admin:users:accounts:index',
  88. )
  89. site.add_node(
  90. name=_("User Accounts"),
  91. icon='fa fa-users',
  92. parent='misago:admin:users',
  93. namespace='misago:admin:users:accounts',
  94. link='misago:admin:users:accounts:index',
  95. )
  96. site.add_node(
  97. name=_("Ranks"),
  98. icon='fa fa-graduation-cap',
  99. parent='misago:admin:users',
  100. after='misago:admin:users:accounts:index',
  101. namespace='misago:admin:users:ranks',
  102. link='misago:admin:users:ranks:index',
  103. )
  104. site.add_node(
  105. name=_("Bans"),
  106. icon='fa fa-lock',
  107. parent='misago:admin:users',
  108. after='misago:admin:users:ranks:index',
  109. namespace='misago:admin:users:bans',
  110. link='misago:admin:users:bans:index',
  111. )
  112. site.add_node(
  113. name=_("Warning levels"),
  114. icon='fa fa-exclamation-triangle',
  115. parent='misago:admin:users',
  116. after='misago:admin:users:bans:index',
  117. namespace='misago:admin:users:warnings',
  118. link='misago:admin:users:warnings:index',
  119. )