From 1686f840d16f2bd3d71d7f222a59b8e6a838fd6e Mon Sep 17 00:00:00 2001
From: Yassine Doghri <yassine@doghri.fr>
Date: Tue, 18 Oct 2022 17:25:49 +0000
Subject: [PATCH] fix: sort episodes by published_at with unpublished episodes
 at the begining

set the right permissions for episode's publication date edit

fixes #249
---
 modules/Admin/Config/Routes.php                 | 4 ++--
 modules/Admin/Controllers/EpisodeController.php | 2 ++
 modules/Admin/Controllers/PodcastController.php | 1 +
 3 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/modules/Admin/Config/Routes.php b/modules/Admin/Config/Routes.php
index 586272ead6..ce09a16f99 100644
--- a/modules/Admin/Config/Routes.php
+++ b/modules/Admin/Config/Routes.php
@@ -333,7 +333,7 @@ $routes->group(
                             [
                                 'as' => 'episode-publish_date_edit',
                                 'filter' =>
-                                    'permission:podcast-manage_publications',
+                                    'permission:podcast#.episodes.manage-publications',
                             ],
                         );
                         $routes->post(
@@ -341,7 +341,7 @@ $routes->group(
                             'EpisodeController::attemptPublishDateEdit/$1/$2',
                             [
                                 'filter' =>
-                                    'permission:podcast-manage_publications',
+                                    'permission:podcast#.episodes.manage-publications',
                             ],
                         );
                         $routes->get(
diff --git a/modules/Admin/Controllers/EpisodeController.php b/modules/Admin/Controllers/EpisodeController.php
index 821c7bd751..23a90cc693 100644
--- a/modules/Admin/Controllers/EpisodeController.php
+++ b/modules/Admin/Controllers/EpisodeController.php
@@ -74,6 +74,7 @@ class EpisodeController extends BaseController
                     ->where('podcast_id', $this->podcast->id)
                     ->like('title', $query)
                     ->orLike('description_markdown', $query)
+                    ->orderBy('-`published_at`', '', false)
                     ->orderBy('created_at', 'desc');
             } else {
                 $episodes = (new EpisodeModel())
@@ -83,6 +84,7 @@ class EpisodeController extends BaseController
         } else {
             $episodes = (new EpisodeModel())
                 ->where('podcast_id', $this->podcast->id)
+                ->orderBy('-`published_at`', '', false)
                 ->orderBy('created_at', 'desc');
         }
 
diff --git a/modules/Admin/Controllers/PodcastController.php b/modules/Admin/Controllers/PodcastController.php
index 4acc02fabe..488fe464c2 100644
--- a/modules/Admin/Controllers/PodcastController.php
+++ b/modules/Admin/Controllers/PodcastController.php
@@ -422,6 +422,7 @@ class PodcastController extends BaseController
     {
         $episodes = (new EpisodeModel())
             ->where('podcast_id', $podcastId)
+            ->orderBy('-`published_at`', '', false)
             ->orderBy('created_at', 'desc')
             ->findAll($limit);
 
-- 
GitLab