admin.py 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  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:
  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-list",
  61. parent="misago:admin",
  62. before="misago:admin:permissions:users:index",
  63. link="misago:admin:categories:nodes:index",
  64. )
  65. site.add_node(
  66. name=_("Category roles"),
  67. parent="misago:admin:permissions",
  68. after="misago:admin:permissions:users:index",
  69. namespace="misago:admin:permissions:categories",
  70. link="misago:admin:permissions:categories:index",
  71. )