admin.py 4.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. from django.conf.urls import url
  2. from django.utils.translation import ugettext_lazy as _
  3. from misago.users.views.admin.bans import BansList, NewBan, EditBan, DeleteBan
  4. from misago.users.views.admin.ranks import (RanksList, NewRank, EditRank,
  5. DeleteRank, MoveDownRank,
  6. MoveUpRank, DefaultRank)
  7. from misago.users.views.admin.users import UsersList, NewUser, EditUser
  8. from misago.users.views.admin.warnings import (WarningsList, NewWarning,
  9. EditWarning, MoveDownWarning,
  10. MoveUpWarning, DeleteWarning)
  11. class MisagoAdminExtension(object):
  12. def register_urlpatterns(self, urlpatterns):
  13. # Users section
  14. urlpatterns.namespace(r'^users/', 'users')
  15. # Accounts
  16. urlpatterns.namespace(r'^accounts/', 'accounts', 'users')
  17. urlpatterns.patterns('users:accounts',
  18. url(r'^$', UsersList.as_view(), name='index'),
  19. url(r'^(?P<page>\d+)/$', UsersList.as_view(), name='index'),
  20. url(r'^new/$', NewUser.as_view(), name='new'),
  21. url(r'^edit/(?P<user_id>\d+)/$', EditUser.as_view(), name='edit'),
  22. )
  23. # Ranks
  24. urlpatterns.namespace(r'^ranks/', 'ranks', 'users')
  25. urlpatterns.patterns('users:ranks',
  26. url(r'^$', RanksList.as_view(), name='index'),
  27. url(r'^new/$', NewRank.as_view(), name='new'),
  28. url(r'^edit/(?P<rank_id>\d+)/$', EditRank.as_view(), name='edit'),
  29. url(r'^default/(?P<rank_id>\d+)/$', DefaultRank.as_view(), name='default'),
  30. url(r'^move/down/(?P<rank_id>\d+)/$', MoveDownRank.as_view(), name='down'),
  31. url(r'^move/up/(?P<rank_id>\d+)/$', MoveUpRank.as_view(), name='up'),
  32. url(r'^delete/(?P<rank_id>\d+)/$', DeleteRank.as_view(), name='delete'),
  33. )
  34. # Bans
  35. urlpatterns.namespace(r'^bans/', 'bans', 'users')
  36. urlpatterns.patterns('users:bans',
  37. url(r'^$', BansList.as_view(), name='index'),
  38. url(r'^(?P<page>\d+)/$', BansList.as_view(), name='index'),
  39. url(r'^new/$', NewBan.as_view(), name='new'),
  40. url(r'^edit/(?P<ban_id>\d+)/$', EditBan.as_view(), name='edit'),
  41. url(r'^delete/(?P<ban_id>\d+)/$', DeleteBan.as_view(), name='delete'),
  42. )
  43. # Warnings
  44. urlpatterns.namespace(r'^warnings/', 'warnings', 'users')
  45. urlpatterns.patterns('users:warnings',
  46. url(r'^$', WarningsList.as_view(), name='index'),
  47. url(r'^new/$', NewWarning.as_view(), name='new'),
  48. url(r'^edit/(?P<warning_id>\d+)/$', EditWarning.as_view(), name='edit'),
  49. url(r'^move/down/(?P<warning_id>\d+)/$', MoveDownWarning.as_view(), name='down'),
  50. url(r'^move/up/(?P<warning_id>\d+)/$', MoveUpWarning.as_view(), name='up'),
  51. url(r'^delete/(?P<warning_id>\d+)/$', DeleteWarning.as_view(), name='delete'),
  52. )
  53. def register_navigation_nodes(self, site):
  54. site.add_node(name=_("Users"),
  55. icon='fa fa-users',
  56. parent='misago:admin',
  57. after='misago:admin:index',
  58. namespace='misago:admin:users',
  59. link='misago:admin:users:accounts:index')
  60. site.add_node(name=_("User Accounts"),
  61. icon='fa fa-users',
  62. parent='misago:admin:users',
  63. namespace='misago:admin:users:accounts',
  64. link='misago:admin:users:accounts:index')
  65. site.add_node(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. site.add_node(name=_("Bans"),
  72. icon='fa fa-lock',
  73. parent='misago:admin:users',
  74. after='misago:admin:users:ranks:index',
  75. namespace='misago:admin:users:bans',
  76. link='misago:admin:users:bans:index')
  77. site.add_node(name=_("Warning levels"),
  78. icon='fa fa-exclamation-triangle',
  79. parent='misago:admin:users',
  80. after='misago:admin:users:bans:index',
  81. namespace='misago:admin:users:warnings',
  82. link='misago:admin:users:warnings:index')