feat: implementation of step 5 of the plan - still not fully done

This commit is contained in:
2026-04-26 21:05:15 +02:00
parent 92e5c2ccfd
commit fa0a2fb2e1
22 changed files with 3992 additions and 27 deletions

View File

@@ -8,6 +8,7 @@ defmodule BDS.Desktop.ShellLive.OverlayComponents do
alias BDS.Desktop.ShellData
alias BDS.{I18n, Metadata, Repo}
alias BDS.Media.Media
alias BDS.Media.Translation, as: MediaTranslation
alias BDS.Posts.{Post, Translation}
alias BDS.Tags.Tag
@@ -132,6 +133,17 @@ defmodule BDS.Desktop.ShellLive.OverlayComponents do
_error -> %{}
end
defp existing_translations(%{type: :media, id: media_id}) do
Repo.all(
from translation in MediaTranslation,
where: translation.translation_for == ^media_id,
select: {translation.language, "draft"}
)
|> Map.new(fn {language, status} -> {language, status} end)
rescue
_error -> %{}
end
defp existing_translations(_tab), do: %{}
defp blog_languages(metadata) do
@@ -149,6 +161,15 @@ defmodule BDS.Desktop.ShellLive.OverlayComponents do
_error -> metadata.main_language || "en"
end
defp source_language(%{type: :media, id: media_id}, metadata) do
case Repo.get(Media, media_id) do
%Media{language: language} when is_binary(language) and language != "" -> language
_other -> metadata.main_language || "en"
end
rescue
_error -> metadata.main_language || "en"
end
defp source_language(_tab, metadata), do: metadata.main_language || "en"
defp language_names do