from django.urls import include, path, register_converter from django.utils.translation import gettext_lazy as _ from rest_framework.routers import DefaultRouter from . import models, views, viewsets from .converters import DateConverter, PagePathConverter, WeekConverter __all__ = ["api", "urls"] register_converter(PagePathConverter, "page_path") register_converter(DateConverter, "date") register_converter(WeekConverter, "week") # urls = [ # path('on_air', views.on_air, name='aircox.on_air'), # path('monitor', views.Monitor.as_view(), name='aircox.monitor'), # path('stats', views.StatisticsView.as_view(), name='aircox.stats'), # ] router = DefaultRouter() router.register("user", viewsets.UserViewSet, basename="user") router.register("group", viewsets.GroupViewSet, basename="group") router.register("usergroup", viewsets.UserGroupViewSet, basename="usergroup") router.register("images", viewsets.ImageViewSet, basename="image") router.register("sound", viewsets.SoundViewSet, basename="sound") router.register("track", viewsets.TrackROViewSet, basename="track") router.register("comment", viewsets.CommentViewSet, basename="comment") api = [ path("logs/", views.log.LogListAPIView.as_view(), name="live"), path( "user/settings/", viewsets.UserSettingsViewSet.as_view({"get": "retrieve", "post": "update", "put": "update"}), name="user-settings", ), ] + router.urls urls = [ path("", views.home.HomeView.as_view(), name="home"), path("api/", include((api, "aircox"), namespace="api")), # ---- ---- objects views # ---- articles path( _("articles//"), views.article.ArticleDetailView.as_view(), name="article-detail", ), path( _("articles/"), views.article.ArticleListView.as_view(model=models.article.Article), name="article-list", ), path( _("articles/c//"), views.article.ArticleListView.as_view(model=models.article.Article), name="article-list", ), # ---- timetable path(_("timetable/"), views.diffusion.TimeTableView.as_view(), name="timetable-list"), path( _("timetable//"), views.diffusion.TimeTableView.as_view(), name="timetable-list", ), # ---- pages path( _("publications/"), views.PageListView.as_view(model=models.Page, attach_to_value=models.StaticPage.Target.PAGES), name="page-list", ), path( _("publications/c//"), views.PageListView.as_view(model=models.Page, attach_to_value=models.StaticPage.Target.PAGES), name="page-list", ), path( _("pages//"), views.BasePageDetailView.as_view( model=models.StaticPage, queryset=models.StaticPage.objects.filter(attach_to__isnull=True), ), name="static-page-detail", ), path( _("pages/"), views.BasePageListView.as_view( model=models.StaticPage, queryset=models.StaticPage.objects.filter(attach_to__isnull=True), ), name="static-page-list", ), # ---- programs path(_("programs/"), views.program.ProgramListView.as_view(), name="program-list"), path(_("programs/c//"), views.program.ProgramListView.as_view(), name="program-list"), path( _("programs//"), views.program.ProgramDetailView.as_view(), name="program-detail", ), path(_("programs//articles/"), views.article.ArticleListView.as_view(), name="article-list"), path(_("programs//podcasts/"), views.episode.PodcastListView.as_view(), name="podcast-list"), path(_("programs//episodes/"), views.episode.EpisodeListView.as_view(), name="episode-list"), path( _("programs//diffusions/"), views.diffusion.DiffusionListView.as_view(), name="diffusion-list" ), path( _("programs//publications/"), views.PageListView.as_view(model=models.Page, attach_to_value=models.StaticPage.Target.PAGES), name="page-list", ), # ---- episodes path(_("programs/episodes/"), views.episode.EpisodeListView.as_view(), name="episode-list"), path(_("programs/episodes/c//"), views.episode.EpisodeListView.as_view(), name="episode-list"), path( _("programs/episodes//"), views.episode.EpisodeDetailView.as_view(), name="episode-detail", ), path(_("podcasts/"), views.episode.PodcastListView.as_view(), name="podcast-list"), path(_("podcasts/c//"), views.episode.PodcastListView.as_view(), name="podcast-list"), # ---- dashboard path(_("dashboard/"), views.dashboard.DashboardView.as_view(), name="dashboard"), path(_("dashboard/program//"), views.program.ProgramUpdateView.as_view(), name="program-edit"), path(_("dashboard/episodes//"), views.episode.EpisodeUpdateView.as_view(), name="episode-edit"), path(_("dashboard/statistics/"), views.dashboard.StatisticsView.as_view(), name="dashboard-statistics"), path(_("dashboard/statistics//"), views.dashboard.StatisticsView.as_view(), name="dashboard-statistics"), path(_("dashboard/users/"), views.auth.UserListView.as_view(), name="user-list"), # ---- others path(_("errors/no-station/"), views.errors.NoStationErrorView.as_view(), name="errors-no-station"), ]