admin.py 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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 .djangoadmin import UserAdmin, UserModel
  5. from .views.admin.bans import BansList, DeleteBan, EditBan, NewBan
  6. from .views.admin.ranks import (
  7. DefaultRank, DeleteRank, EditRank, MoveDownRank, MoveUpRank, NewRank, RanksList, RankUsers)
  8. from .views.admin.users import (
  9. DeleteAccountStep, DeletePostsStep, DeleteThreadsStep, EditUser, NewUser, UsersList)
  10. # register misago user model in django admin panel
  11. djadmin.site.register(model_or_iterable=UserModel, admin_class=UserAdmin)
  12. class MisagoAdminExtension(object):
  13. def register_urlpatterns(self, urlpatterns):
  14. # Users section
  15. urlpatterns.namespace(r'^users/', 'users')
  16. # Accounts
  17. urlpatterns.namespace(r'^accounts/', 'accounts', 'users')
  18. urlpatterns.patterns('users:accounts',
  19. url(r'^$', UsersList.as_view(), name='index'),
  20. url(r'^(?P<page>\d+)/$', UsersList.as_view(), name='index'),
  21. url(r'^new/$', NewUser.as_view(), name='new'),
  22. url(r'^edit/(?P<pk>\d+)/$', EditUser.as_view(), name='edit'),
  23. url(r'^delete-threads/(?P<pk>\d+)/$', DeleteThreadsStep.as_view(), name='delete-threads'),
  24. url(r'^delete-posts/(?P<pk>\d+)/$', DeletePostsStep.as_view(), name='delete-posts'),
  25. url(r'^delete-account/(?P<pk>\d+)/$', DeleteAccountStep.as_view(), name='delete-account'),
  26. )
  27. # Ranks
  28. urlpatterns.namespace(r'^ranks/', 'ranks', 'users')
  29. urlpatterns.patterns('users:ranks',
  30. url(r'^$', RanksList.as_view(), name='index'),
  31. url(r'^new/$', NewRank.as_view(), name='new'),
  32. url(r'^edit/(?P<pk>\d+)/$', EditRank.as_view(), name='edit'),
  33. url(r'^default/(?P<pk>\d+)/$', DefaultRank.as_view(), name='default'),
  34. url(r'^move/down/(?P<pk>\d+)/$', MoveDownRank.as_view(), name='down'),
  35. url(r'^move/up/(?P<pk>\d+)/$', MoveUpRank.as_view(), name='up'),
  36. url(r'^users/(?P<pk>\d+)/$', RankUsers.as_view(), name='users'),
  37. url(r'^delete/(?P<pk>\d+)/$', DeleteRank.as_view(), name='delete'),
  38. )
  39. # Bans
  40. urlpatterns.namespace(r'^bans/', 'bans', 'users')
  41. urlpatterns.patterns('users:bans',
  42. url(r'^$', BansList.as_view(), name='index'),
  43. url(r'^(?P<page>\d+)/$', BansList.as_view(), name='index'),
  44. url(r'^new/$', NewBan.as_view(), name='new'),
  45. url(r'^edit/(?P<pk>\d+)/$', EditBan.as_view(), name='edit'),
  46. url(r'^delete/(?P<pk>\d+)/$', DeleteBan.as_view(), name='delete'),
  47. )
  48. def register_navigation_nodes(self, site):
  49. site.add_node(
  50. name=_("Users"),
  51. icon='fa fa-users',
  52. parent='misago:admin',
  53. after='misago:admin:index',
  54. namespace='misago:admin:users',
  55. link='misago:admin:users:accounts:index',
  56. )
  57. site.add_node(
  58. name=_("User Accounts"),
  59. icon='fa fa-users',
  60. parent='misago:admin:users',
  61. namespace='misago:admin:users:accounts',
  62. link='misago:admin:users:accounts:index',
  63. )
  64. site.add_node(
  65. name=_("Ranks"),
  66. icon='fa fa-graduation-cap',
  67. parent='misago:admin:users',
  68. after='misago:admin:users:accounts:index',
  69. namespace='misago:admin:users:ranks',
  70. link='misago:admin:users:ranks:index',
  71. )
  72. site.add_node(
  73. name=_("Bans"),
  74. icon='fa fa-lock',
  75. parent='misago:admin:users',
  76. after='misago:admin:users:ranks:index',
  77. namespace='misago:admin:users:bans',
  78. link='misago:admin:users:bans:index',
  79. )