From e9dd08e09f92860e87c8d65b353cc22f58af9969 Mon Sep 17 00:00:00 2001 From: Andrew Kuklewicz Date: Wed, 10 Apr 2024 20:12:22 -0400 Subject: [PATCH] Add Apple publish status --- app/helpers/episodes_helper.rb | 18 ++++++++++++++++++ app/models/concerns/apple_delivery.rb | 4 ++++ app/views/episodes/_form_status.html.erb | 13 +++++++++++++ config/locales/en.yml | 5 +++++ 4 files changed, 40 insertions(+) diff --git a/app/helpers/episodes_helper.rb b/app/helpers/episodes_helper.rb index 157c3cd5d..83bf9386b 100644 --- a/app/helpers/episodes_helper.rb +++ b/app/helpers/episodes_helper.rb @@ -15,6 +15,24 @@ def episode_explicit_options end end + def episode_apple_status(episode) + if episode.apple_status.nil? + "not_found" + elsif episode.apple_status.delivered? + "complete" + else + "incomplete" + end + end + + def episode_apple_updated_at(episode) + if episode.apple_status.nil? + Time.now + else + episode.apple_status.created_at + end + end + def episode_status_class(episode) case episode.publishing_status_was when "draft" diff --git a/app/models/concerns/apple_delivery.rb b/app/models/concerns/apple_delivery.rb index 3fd4a2b78..25a76c282 100644 --- a/app/models/concerns/apple_delivery.rb +++ b/app/models/concerns/apple_delivery.rb @@ -17,6 +17,10 @@ module AppleDelivery alias_method :apple_status, :apple_episode_delivery_status end + def publish_to_apple? + podcast.apple_config&.publish_to_apple? + end + def apple_update_delivery_status(attrs) new_status = (apple_episode_delivery_status&.dup || apple_episode_delivery_statuses.build) new_status.assign_attributes(**attrs) diff --git a/app/views/episodes/_form_status.html.erb b/app/views/episodes/_form_status.html.erb index e8de1f421..7c6e34805 100644 --- a/app/views/episodes/_form_status.html.erb +++ b/app/views/episodes/_form_status.html.erb @@ -30,6 +30,19 @@
<%= render "form_dropdate", form: form, episode: episode %>
+ + <% if episode.persisted? && episode.publish_to_apple? %> +
+

+ <%= t(".apple_status") %>: + + <%= t("helpers.label.episode.media_statuses.#{episode_apple_status(episode)}") %> + +
+ <%= local_time_ago(episode_apple_updated_at(episode)) %> +

+
+ <% end %>