admin.py 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. from django.conf.urls import url
  2. from django.utils.deprecation import MiddlewareMixin
  3. from django.utils.translation import gettext_lazy as _
  4. from .themes.views import (
  5. ActivateTheme,
  6. DeleteTheme,
  7. DeleteThemeCss,
  8. DeleteThemeMedia,
  9. EditTheme,
  10. NewTheme,
  11. ThemeAssets,
  12. ThemesList,
  13. UploadThemeCss,
  14. UploadThemeMedia,
  15. )
  16. class MisagoAdminExtension(MiddlewareMixin):
  17. def register_urlpatterns(self, urlpatterns):
  18. # Appearance section
  19. urlpatterns.namespace(r"^appearance/", "appearance")
  20. # Themes
  21. urlpatterns.namespace(r"^themes/", "themes", "appearance")
  22. urlpatterns.patterns(
  23. "appearance:themes",
  24. url(r"^$", ThemesList.as_view(), name="index"),
  25. url(r"^new/$", NewTheme.as_view(), name="new"),
  26. url(r"^edit/(?P<pk>\d+)/$", EditTheme.as_view(), name="edit"),
  27. url(r"^delete/(?P<pk>\d+)/$", DeleteTheme.as_view(), name="delete"),
  28. url(r"^activate/(?P<pk>\d+)/$", ActivateTheme.as_view(), name="activate"),
  29. url(r"^assets/(?P<pk>\d+)/$", ThemeAssets.as_view(), name="assets"),
  30. url(
  31. r"^assets/(?P<pk>\d+)/delete-css/$",
  32. DeleteThemeCss.as_view(),
  33. name="delete-css",
  34. ),
  35. url(
  36. r"^assets/(?P<pk>\d+)/delete-media/$",
  37. DeleteThemeMedia.as_view(),
  38. name="delete-media",
  39. ),
  40. url(
  41. r"^assets/(?P<pk>\d+)/upload-css/$",
  42. UploadThemeCss.as_view(),
  43. name="upload-css",
  44. ),
  45. url(
  46. r"^assets/(?P<pk>\d+)/upload-media/$",
  47. UploadThemeMedia.as_view(),
  48. name="upload-media",
  49. ),
  50. )
  51. def register_navigation_nodes(self, site):
  52. site.add_node(
  53. name=_("Home"),
  54. icon="fa fa-home",
  55. parent="misago:admin",
  56. link="misago:admin:index",
  57. )
  58. site.add_node(
  59. name=_("Appearance"),
  60. icon="fa fa-paint-brush",
  61. parent="misago:admin",
  62. namespace="misago:admin:appearance",
  63. link="misago:admin:appearance:themes:index",
  64. )
  65. site.add_node(
  66. name=_("Themes"),
  67. icon="fa fa-tint",
  68. parent="misago:admin:appearance",
  69. namespace="misago:admin:appearance:themes",
  70. link="misago:admin:appearance:themes:index",
  71. )