admin.py 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. from django.conf.urls import url
  2. from django.utils.translation import gettext_lazy as _
  3. from .views.categoriesadmin import (
  4. CategoriesList,
  5. DeleteCategory,
  6. EditCategory,
  7. MoveDownCategory,
  8. MoveUpCategory,
  9. NewCategory,
  10. )
  11. from .views.permsadmin import (
  12. CategoryPermissions,
  13. CategoryRolesList,
  14. DeleteCategoryRole,
  15. EditCategoryRole,
  16. NewCategoryRole,
  17. RoleCategoriesACL,
  18. )
  19. class MisagoAdminExtension(object):
  20. def register_urlpatterns(self, urlpatterns):
  21. # Categories section
  22. urlpatterns.namespace(r"^categories/", "categories")
  23. # Nodes
  24. urlpatterns.namespace(r"^nodes/", "nodes", "categories")
  25. urlpatterns.patterns(
  26. "categories:nodes",
  27. url(r"^$", CategoriesList.as_view(), name="index"),
  28. url(r"^new/$", NewCategory.as_view(), name="new"),
  29. url(r"^edit/(?P<pk>\d+)/$", EditCategory.as_view(), name="edit"),
  30. url(
  31. r"^permissions/(?P<pk>\d+)/$",
  32. CategoryPermissions.as_view(),
  33. name="permissions",
  34. ),
  35. url(r"^move/down/(?P<pk>\d+)/$", MoveDownCategory.as_view(), name="down"),
  36. url(r"^move/up/(?P<pk>\d+)/$", MoveUpCategory.as_view(), name="up"),
  37. url(r"^delete/(?P<pk>\d+)/$", DeleteCategory.as_view(), name="delete"),
  38. )
  39. # Category Roles
  40. urlpatterns.namespace(r"^categories/", "categories", "permissions")
  41. urlpatterns.patterns(
  42. "permissions:categories",
  43. url(r"^$", CategoryRolesList.as_view(), name="index"),
  44. url(r"^new/$", NewCategoryRole.as_view(), name="new"),
  45. url(r"^edit/(?P<pk>\d+)/$", EditCategoryRole.as_view(), name="edit"),
  46. url(r"^delete/(?P<pk>\d+)/$", DeleteCategoryRole.as_view(), name="delete"),
  47. )
  48. # Change Role Category Permissions
  49. urlpatterns.patterns(
  50. "permissions:users",
  51. url(
  52. r"^categories/(?P<pk>\d+)/$",
  53. RoleCategoriesACL.as_view(),
  54. name="categories",
  55. ),
  56. )
  57. def register_navigation_nodes(self, site):
  58. site.add_node(
  59. name=_("Categories"),
  60. icon="fa fa-comments",
  61. parent="misago:admin",
  62. before="misago:admin:permissions:users:index",
  63. namespace="misago:admin:categories",
  64. link="misago:admin:categories:nodes:index",
  65. )
  66. site.add_node(
  67. name=_("Categories hierarchy"),
  68. icon="fa fa-sitemap",
  69. parent="misago:admin:categories",
  70. namespace="misago:admin:categories:nodes",
  71. link="misago:admin:categories:nodes:index",
  72. )
  73. site.add_node(
  74. name=_("Category roles"),
  75. icon="fa fa-comments-o",
  76. parent="misago:admin:permissions",
  77. after="misago:admin:permissions:users:index",
  78. namespace="misago:admin:permissions:categories",
  79. link="misago:admin:permissions:categories:index",
  80. )