Add public_content to translations table and rename lang to language

This commit is contained in:
Thelonius Kort
2023-01-15 17:55:26 +01:00
parent 0b28b0acc0
commit aab04f5ecc
7 changed files with 20 additions and 9 deletions

View File

@ -9,9 +9,10 @@ defmodule Outlook.Translations.Translation do
schema "translations" do
field :content, TranslationUnitsMap
field :date, :utc_datetime
field :lang, :string, default: "DE"
field :language, :string, default: "DE"
field :public, :boolean, default: false
field :teaser, :string
field :public_content, :string
field :title, :string
field :unauthorized, :boolean, default: false
belongs_to :user, User
@ -23,10 +24,10 @@ defmodule Outlook.Translations.Translation do
@doc false
def changeset(translation, attrs) do
translation
|> cast(attrs, [:lang, :title, :teaser, :date, :public, :unauthorized, :article_id])
|> cast(attrs, [:language, :title, :teaser, :date, :public, :unauthorized, :article_id])
|> cast(attrs, [:content])
|> validate_required([:lang, :title, :content, :date, :public, :unauthorized, :article_id])
|> unique_constraint([:lang, :article_id],
|> validate_required([:language, :title, :content, :date, :public, :unauthorized, :article_id])
|> unique_constraint([:language, :article_id],
message: "translation for this language already exists",
name: :article_id_lang_unique_index)
|> foreign_key_constraint(:article_id)

View File

@ -49,7 +49,7 @@ defmodule Outlook.Translators do
end
def translate(translation, current_user) do
%{lang: target_lang,
%{language: target_lang,
article: %{content: article_tree, language: source_lang}
} = translation
article_as_html = prepare_article(article_tree)

View File

@ -17,7 +17,7 @@
</.header>
<.table id="translations" rows={@article.translations} row_click={&JS.navigate(~p"/translations/#{&1}")}>
<:col :let={translation} label="Lang"><%= translation.lang %></:col>
<:col :let={translation} label="Language"><%= translation.language %></:col>
<:col :let={translation} label="Title"><%= translation.title %></:col>
<:col :let={translation} label="Teaser"><%= translation.teaser %></:col>
<:col :let={translation} label="Date"><%= translation.date %></:col>

View File

@ -23,7 +23,7 @@ defmodule OutlookWeb.TranslationLive.FormComponent do
phx-submit="save"
>
<.input field={{f, :article_id}} type="hidden" />
<.input field={{f, :lang}} type="select" label="lang"
<.input field={{f, :language}} type="select" label="language"
options={Application.get_env(:outlook,:deepl)[:target_langs]} />
<.input field={{f, :title}} type="text" label="title" />
<.input field={{f, :teaser}} type="textarea" label="teaser" class="h-28" />

View File

@ -3,7 +3,7 @@
</.header>
<.table id="translations" rows={@translations} row_click={&JS.navigate(~p"/translations/#{&1}")}>
<:col :let={translation} label="Lang"><%= translation.lang %></:col>
<:col :let={translation} label="Language"><%= translation.language %></:col>
<:col :let={translation} label="Title"><%= translation.title %></:col>
<:col :let={translation} label="Teaser"><%= translation.teaser %></:col>
<%!-- <:col :let={translation} label="Content"><%= translation.content %></:col> --%>

View File

@ -9,7 +9,7 @@
</.header>
<.list>
<:item title="Lang"><%= @translation.lang %></:item>
<:item title="Language"><%= @translation.language %></:item>
<:item title="Title"><%= @translation.title %></:item>
<:item title="Teaser"><%= @translation.teaser %></:item>
<%!-- <:item title="Content"><%= @translation.content %></:item> --%>

View File

@ -0,0 +1,10 @@
defmodule Outlook.Repo.Migrations.AddPublicContentToTranslations do
use Ecto.Migration
def change do
alter table(:translations) do
add :public_content, :text
end
rename table(:translations), :lang, to: :language
end
end