admin.py 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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. DeleteThemeFonts,
  9. DeleteThemeImages,
  10. EditTheme,
  11. NewTheme,
  12. ThemeAssets,
  13. ThemesList,
  14. UploadThemeCss,
  15. UploadThemeImages,
  16. )
  17. class MisagoAdminExtension(MiddlewareMixin):
  18. def register_urlpatterns(self, urlpatterns):
  19. # Appearance section
  20. urlpatterns.namespace(r"^appearance/", "appearance")
  21. # Themes
  22. urlpatterns.namespace(r"^themes/", "themes", "appearance")
  23. urlpatterns.patterns(
  24. "appearance:themes",
  25. url(r"^$", ThemesList.as_view(), name="index"),
  26. url(r"^new/$", NewTheme.as_view(), name="new"),
  27. url(r"^edit/(?P<pk>\d+)/$", EditTheme.as_view(), name="edit"),
  28. url(r"^delete/(?P<pk>\d+)/$", DeleteTheme.as_view(), name="delete"),
  29. url(r"^activate/(?P<pk>\d+)/$", ActivateTheme.as_view(), name="activate"),
  30. url(r"^assets/(?P<pk>\d+)/$", ThemeAssets.as_view(), name="assets"),
  31. url(r"^assets/(?P<pk>\d+)/delete-css/$", DeleteThemeCss.as_view(), name="delete-css"),
  32. url(r"^assets/(?P<pk>\d+)/delete-fonts/$", DeleteThemeFonts.as_view(), name="delete-fonts"),
  33. url(r"^assets/(?P<pk>\d+)/delete-images/$", DeleteThemeImages.as_view(), name="delete-images"),
  34. url(r"^assets/(?P<pk>\d+)/upload-css/$", UploadThemeCss.as_view(), name="upload-css"),
  35. url(r"^assets/(?P<pk>\d+)/upload-images/$", UploadThemeImages.as_view(), name="upload-images"),
  36. )
  37. def register_navigation_nodes(self, site):
  38. site.add_node(
  39. name=_("Home"),
  40. icon="fa fa-home",
  41. parent="misago:admin",
  42. link="misago:admin:index",
  43. )
  44. site.add_node(
  45. name=_("Appearance"),
  46. icon="fa fa-paint-brush",
  47. parent="misago:admin",
  48. namespace="misago:admin:appearance",
  49. link="misago:admin:appearance:themes:index",
  50. )
  51. site.add_node(
  52. name=_("Themes"),
  53. icon="fa fa-tint",
  54. parent="misago:admin:appearance",
  55. namespace="misago:admin:appearance:themes",
  56. link="misago:admin:appearance:themes:index",
  57. )