admin.py 3.8 KB

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