admin.py 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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(
  32. r"^assets/(?P<pk>\d+)/delete-css/$",
  33. DeleteThemeCss.as_view(),
  34. name="delete-css",
  35. ),
  36. url(
  37. r"^assets/(?P<pk>\d+)/delete-fonts/$",
  38. DeleteThemeFonts.as_view(),
  39. name="delete-fonts",
  40. ),
  41. url(
  42. r"^assets/(?P<pk>\d+)/delete-images/$",
  43. DeleteThemeImages.as_view(),
  44. name="delete-images",
  45. ),
  46. url(
  47. r"^assets/(?P<pk>\d+)/upload-css/$",
  48. UploadThemeCss.as_view(),
  49. name="upload-css",
  50. ),
  51. url(
  52. r"^assets/(?P<pk>\d+)/upload-images/$",
  53. UploadThemeImages.as_view(),
  54. name="upload-images",
  55. ),
  56. )
  57. def register_navigation_nodes(self, site):
  58. site.add_node(
  59. name=_("Home"),
  60. icon="fa fa-home",
  61. parent="misago:admin",
  62. link="misago:admin:index",
  63. )
  64. site.add_node(
  65. name=_("Appearance"),
  66. icon="fa fa-paint-brush",
  67. parent="misago:admin",
  68. namespace="misago:admin:appearance",
  69. link="misago:admin:appearance:themes:index",
  70. )
  71. site.add_node(
  72. name=_("Themes"),
  73. icon="fa fa-tint",
  74. parent="misago:admin:appearance",
  75. namespace="misago:admin:appearance:themes",
  76. link="misago:admin:appearance:themes:index",
  77. )