admin.py 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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, MoveUpRank,
  6. MoveDownRank, DefaultRank)
  7. from misago.users.views.admin.users import UsersList, NewUser, EditUser
  8. class MisagoAdminExtension(object):
  9. def register_urlpatterns(self, urlpatterns):
  10. # Users section
  11. urlpatterns.namespace(r'^users/', 'users')
  12. # Accounts
  13. urlpatterns.namespace(r'^accounts/', 'accounts', 'users')
  14. urlpatterns.patterns('users:accounts',
  15. url(r'^$', UsersList.as_view(), name='index'),
  16. url(r'^(?P<page>\d+)/$', UsersList.as_view(), name='index'),
  17. url(r'^new/$', NewUser.as_view(), name='new'),
  18. url(r'^edit/(?P<user_id>\d+)/$', EditUser.as_view(), name='edit'),
  19. )
  20. # Ranks
  21. urlpatterns.namespace(r'^ranks/', 'ranks', 'users')
  22. urlpatterns.patterns('users:ranks',
  23. url(r'^$', RanksList.as_view(), name='index'),
  24. url(r'^new/$', NewRank.as_view(), name='new'),
  25. url(r'^edit/(?P<rank_id>\d+)/$', EditRank.as_view(), name='edit'),
  26. url(r'^default/(?P<rank_id>\d+)/$', DefaultRank.as_view(), name='default'),
  27. url(r'^move/up/(?P<rank_id>\d+)/$', MoveUpRank.as_view(), name='up'),
  28. url(r'^move/down/(?P<rank_id>\d+)/$', MoveDownRank.as_view(), name='down'),
  29. url(r'^delete/(?P<rank_id>\d+)/$', DeleteRank.as_view(), name='delete'),
  30. )
  31. # Bans
  32. urlpatterns.namespace(r'^bans/', 'bans', 'users')
  33. urlpatterns.patterns('users:bans',
  34. url(r'^$', BansList.as_view(), name='index'),
  35. url(r'^(?P<page>\d+)/$', BansList.as_view(), name='index'),
  36. url(r'^new/$', NewBan.as_view(), name='new'),
  37. url(r'^edit/(?P<ban_id>\d+)/$', EditBan.as_view(), name='edit'),
  38. url(r'^delete/(?P<ban_id>\d+)/$', DeleteBan.as_view(), name='delete'),
  39. )
  40. def register_navigation_nodes(self, site):
  41. site.add_node(name=_("Users"),
  42. icon='fa fa-users',
  43. parent='misago:admin',
  44. after='misago:admin:index',
  45. namespace='misago:admin:users',
  46. link='misago:admin:users:accounts:index')
  47. site.add_node(name=_("User Accounts"),
  48. icon='fa fa-users',
  49. parent='misago:admin:users',
  50. namespace='misago:admin:users:accounts',
  51. link='misago:admin:users:accounts:index')
  52. site.add_node(name=_("Ranks"),
  53. icon='fa fa-graduation-cap',
  54. parent='misago:admin:users',
  55. after='misago:admin:users:accounts:index',
  56. namespace='misago:admin:users:ranks',
  57. link='misago:admin:users:ranks:index')
  58. site.add_node(name=_("Bans"),
  59. icon='fa fa-lock',
  60. parent='misago:admin:users',
  61. after='misago:admin:users:ranks:index',
  62. namespace='misago:admin:users:bans',
  63. link='misago:admin:users:bans:index')