fix: issue #2 auto-translate only on manual save now

This commit is contained in:
2026-07-05 19:22:44 +02:00
parent d85654d4b2
commit c735c1afa7
6 changed files with 125 additions and 44 deletions

View File

@@ -503,7 +503,9 @@ defmodule BDS.Desktop.ShellLive.PostEditor do
active_language = socket.assigns.active_language
draft = component_current_draft(socket, post, metadata, active_language)
case persist(post, draft, active_language, metadata, :save) do
action = if keep_draft?, do: :auto_save, else: :save
case persist(post, draft, active_language, metadata, action) do
{:ok, record} ->
refreshed_post = Posts.get_post!(post.id)
_refreshed_form = persisted_form(refreshed_post, metadata, active_language)

View File

@@ -17,7 +17,7 @@ defmodule BDS.Desktop.ShellLive.PostEditor.Persistence do
canonical_language
) do
post
|> save_canonical_draft(draft)
|> save_canonical_draft(draft, action)
|> maybe_publish_post(post.id, action)
else
post.id
@@ -65,18 +65,22 @@ defmodule BDS.Desktop.ShellLive.PostEditor.Persistence do
else: dgettext("ui", "Delete this unpublished draft")
end
defp save_canonical_draft(%Post{id: post_id}, draft) do
Posts.update_post(post_id, %{
title: blank_to_nil(Map.get(draft, "title")),
excerpt: blank_to_nil(Map.get(draft, "excerpt")),
content: blank_to_nil(Map.get(draft, "content")),
tags: csv_to_list(Map.get(draft, "tags")),
categories: csv_to_list(Map.get(draft, "categories")),
author: blank_to_nil(Map.get(draft, "author")),
language: blank_to_nil(Map.get(draft, "language")),
do_not_translate: Map.get(draft, "do_not_translate", false),
template_slug: blank_to_nil(Map.get(draft, "template_slug"))
})
defp save_canonical_draft(%Post{id: post_id}, draft, action) do
Posts.update_post(
post_id,
%{
title: blank_to_nil(Map.get(draft, "title")),
excerpt: blank_to_nil(Map.get(draft, "excerpt")),
content: blank_to_nil(Map.get(draft, "content")),
tags: csv_to_list(Map.get(draft, "tags")),
categories: csv_to_list(Map.get(draft, "categories")),
author: blank_to_nil(Map.get(draft, "author")),
language: blank_to_nil(Map.get(draft, "language")),
do_not_translate: Map.get(draft, "do_not_translate", false),
template_slug: blank_to_nil(Map.get(draft, "template_slug"))
},
auto_translate: action != :auto_save
)
end
defp save_translation_draft(post_id, language, draft) do