Multiple editable paragraphs to performances page.

This commit is contained in:
codevictory
2021-07-03 14:44:39 +03:00
parent 937501b32f
commit c65fa6b336
9 changed files with 254 additions and 22 deletions

View File

@@ -4,7 +4,15 @@ defmodule Runosaari.Schedule.Performance do
schema "performances" do
field :name, :string
field :desc, :string
field :paragraph1, :string
field :paragraph2, :string
field :paragraph3, :string
field :paragraph4, :string
field :paragraph5, :string
field :paragraph6, :string
field :paragraph7, :string
field :paragraph8, :string
field :paragraph9, :string
field :seqnum, :integer, default: 999
timestamps()
@@ -13,7 +21,19 @@ defmodule Runosaari.Schedule.Performance do
@doc false
def changeset(performance, attrs) do
performance
|> cast(attrs, [:name, :desc, :seqnum])
|> validate_required([:name, :desc, :seqnum])
|> cast(attrs, [
:name,
:paragraph1,
:paragraph2,
:paragraph3,
:paragraph4,
:paragraph5,
:paragraph6,
:paragraph7,
:paragraph8,
:paragraph9,
:seqnum
])
|> validate_required([:name, :seqnum])
end
end

View File

@@ -5,7 +5,6 @@
<thead>
<tr>
<th>Nimi</th>
<th>Seloste</th>
<th>Prioriteetti</th>
<th></th>
@@ -15,7 +14,6 @@
<%= for performance <- @performances do %>
<tr>
<td><%= performance.name %></td>
<td><%= performance.desc %></td>
<td><%= performance.seqnum %></td>
<td class="actions">

View File

@@ -9,9 +9,41 @@
<%= text_input form, :name %>
<%= error_tag form, :name %>
<%= label form, :desc, "Seloste" %>
<%= textarea form, :desc %>
<%= error_tag form, :desc %>
<%= label form, :paragraph1, "Kappale 1" %>
<%= textarea form, :paragraph1 %>
<%= error_tag form, :paragraph1 %>
<%= label form, :paragraph2, "Kappale 2" %>
<%= textarea form, :paragraph2 %>
<%= error_tag form, :paragraph2 %>
<%= label form, :paragraph3, "Kappale 3" %>
<%= textarea form, :paragraph3 %>
<%= error_tag form, :paragraph3 %>
<%= label form, :paragraph4, "Kappale 4" %>
<%= textarea form, :paragraph4 %>
<%= error_tag form, :paragraph4 %>
<%= label form, :paragraph5, "Kappale 5" %>
<%= textarea form, :paragraph5 %>
<%= error_tag form, :paragraph5 %>
<%= label form, :paragraph6, "Kappale 6" %>
<%= textarea form, :paragraph6 %>
<%= error_tag form, :paragraph6 %>
<%= label form, :paragraph7, "Kappale 7" %>
<%= textarea form, :paragraph7 %>
<%= error_tag form, :paragraph7 %>
<%= label form, :paragraph8, "Kappale 8" %>
<%= textarea form, :paragraph8 %>
<%= error_tag form, :paragraph8 %>
<%= label form, :paragraph9, "Kappale 9" %>
<%= textarea form, :paragraph9 %>
<%= error_tag form, :paragraph9 %>
<%= label form, :seqnum, "Prioriteetti (1 on korkein)" %>
<%= textarea form, :seqnum %>

View File

@@ -3,7 +3,33 @@
<i>[Tietoja päivitetään]</i>
<%= for performance <- @performances do %>
<h2><%= performance.name %></h2>
<p><%= performance.desc %></p>
<%= if performance.paragraph1 != nil do %>
<p class="performance-paragraph"><%= performance.paragraph1 %></p>
<% end %>
<%= if performance.paragraph2 != nil do %>
<p class="performance-paragraph"><%= performance.paragraph2 %></p>
<% end %>
<%= if performance.paragraph3 != nil do %>
<p class="performance-paragraph"><%= performance.paragraph3 %></p>
<% end %>
<%= if performance.paragraph4 != nil do %>
<p class="performance-paragraph"><%= performance.paragraph4 %></p>
<% end %>
<%= if performance.paragraph5 != nil do %>
<p class="performance-paragraph"><%= performance.paragraph5 %></p>
<% end %>
<%= if performance.paragraph6 != nil do %>
<p class="performance-paragraph"><%= performance.paragraph1 %></p>
<% end %>
<%= if performance.paragraph7 != nil do %>
<p class="performance-paragraph"><%= performance.paragraph2 %></p>
<% end %>
<%= if performance.paragraph8 != nil do %>
<p class="performance-paragraph"><%= performance.paragraph3 %></p>
<% end %>
<%= if performance.paragraph9 != nil do %>
<p class="performance-paragraph"><%= performance.paragraph4 %></p>
<% end %>
<% end %>
<h2>Työpajat</h2>
<p id="workshops">

View File

@@ -9,8 +9,48 @@
</li>
<li>
<strong>Seloste:</strong>
<%= @performance.desc %>
<strong>Kappale 1:</strong>
<%= @performance.paragraph1 %>
</li>
<li>
<strong>Kappale 2:</strong>
<%= @performance.paragraph2 %>
</li>
<li>
<strong>Kappale 3:</strong>
<%= @performance.paragraph3 %>
</li>
<li>
<strong>Kappale 4:</strong>
<%= @performance.paragraph4 %>
</li>
<li>
<strong>Kappale 5:</strong>
<%= @performance.paragraph5 %>
</li>
<li>
<strong>Kappale 6:</strong>
<%= @performance.paragraph6 %>
</li>
<li>
<strong>Kappale 7:</strong>
<%= @performance.paragraph7 %>
</li>
<li>
<strong>Kappale 8:</strong>
<%= @performance.paragraph8 %>
</li>
<li>
<strong>Kappale 9:</strong>
<%= @performance.paragraph9 %>
</li>
</ul>

View File

@@ -4,7 +4,7 @@ defmodule Runosaari.MixProject do
def project do
[
app: :runosaari,
version: "1.0.0",
version: "1.1.0",
elixir: "~> 1.7",
elixirc_paths: elixirc_paths(Mix.env()),
compilers: [:phoenix, :gettext] ++ Mix.compilers(),

View File

@@ -0,0 +1,32 @@
defmodule Runosaari.Repo.Migrations.MultiplePerformanceParagraphs do
use Ecto.Migration
def down do
alter table("performances") do
add :desc, :string, size: 2000, null: true
remove :paragraph1
remove :paragraph2
remove :paragraph3
remove :paragraph4
remove :paragraph5
remove :paragraph6
remove :paragraph7
remove :paragraph8
remove :paragraph9
end
end
def up do
alter table("performances") do
remove :desc
add :paragraph1, :string, size: 2000, null: true
add :paragraph2, :string, size: 2000, null: true
add :paragraph3, :string, size: 2000, null: true
add :paragraph4, :string, size: 2000, null: true
add :paragraph5, :string, size: 2000, null: true
add :paragraph6, :string, size: 2000, null: true
add :paragraph7, :string, size: 2000, null: true
add :paragraph8, :string, size: 2000, null: true
add :paragraph9, :string, size: 2000, null: true
end
end
end

View File

@@ -8,19 +8,59 @@ defmodule Runosaari.ScheduleTest do
@create_attrs %{
name: "some name",
desc: "some description",
paragraph1: "some paragraph1",
paragraph2: "some paragraph2",
paragraph3: "some paragraph3",
paragraph4: "some paragraph4",
paragraph5: "some paragraph5",
paragraph6: "some paragraph6",
paragraph7: "some paragraph7",
paragraph8: "some paragraph8",
paragraph9: "some paragraph9",
seqnum: 1
}
@update_attrs %{
name: "some updated name",
desc: "some updated description",
paragraph1: "some updated paragraph1",
paragraph2: "some updated paragraph2",
paragraph3: "some updated paragraph3",
paragraph4: "some updated paragraph4",
paragraph5: "some updated paragraph5",
paragraph6: "some updated paragraph6",
paragraph7: "some updated paragraph7",
paragraph8: "some updated paragraph8",
paragraph9: "some updated paragraph9",
seqnum: 2
}
@valid_attrs %{name: "some name", desc: "some description", seqnum: 1}
@valid_attrs %{
name: "some name",
paragraph1: "some paragraph1",
paragraph2: "some paragraph2",
paragraph3: "some paragraph3",
paragraph4: "some paragraph4",
paragraph5: "some paragraph5",
paragraph6: "some paragraph6",
paragraph7: "some paragraph7",
paragraph8: "some paragraph8",
paragraph9: "some paragraph9",
seqnum: 1
}
@invalid_attrs %{name: nil, desc: nil, seqnum: nil}
@invalid_attrs %{
name: nil,
paragraph1: nil,
paragraph2: nil,
paragraph3: nil,
paragraph4: nil,
paragraph5: nil,
paragraph6: nil,
paragraph7: nil,
paragraph8: nil,
paragraph9: nil,
seqnum: nil
}
def performance_fixture(attrs \\ %{}) do
{:ok, performance} =
@@ -44,7 +84,15 @@ defmodule Runosaari.ScheduleTest do
test "create_performance/1 with valid data creates a performance" do
assert {:ok, %Performance{} = performance} = Schedule.create_performance(@valid_attrs)
assert performance.name == "some name"
assert performance.desc == "some description"
assert performance.paragraph1 == "some paragraph1"
assert performance.paragraph2 == "some paragraph2"
assert performance.paragraph3 == "some paragraph3"
assert performance.paragraph4 == "some paragraph4"
assert performance.paragraph5 == "some paragraph5"
assert performance.paragraph6 == "some paragraph6"
assert performance.paragraph7 == "some paragraph7"
assert performance.paragraph8 == "some paragraph8"
assert performance.paragraph9 == "some paragraph9"
assert performance.seqnum == 1
end
@@ -59,7 +107,15 @@ defmodule Runosaari.ScheduleTest do
Schedule.update_performance(performance, @update_attrs)
assert performance.name == "some updated name"
assert performance.desc == "some updated description"
assert performance.paragraph1 == "some updated paragraph1"
assert performance.paragraph2 == "some updated paragraph2"
assert performance.paragraph3 == "some updated paragraph3"
assert performance.paragraph4 == "some updated paragraph4"
assert performance.paragraph5 == "some updated paragraph5"
assert performance.paragraph6 == "some updated paragraph6"
assert performance.paragraph7 == "some updated paragraph7"
assert performance.paragraph8 == "some updated paragraph8"
assert performance.paragraph9 == "some updated paragraph9"
assert performance.seqnum == 2
end

View File

@@ -5,17 +5,45 @@ defmodule RunosaariWeb.PerformanceControllerTest do
@create_attrs %{
name: "some name",
desc: "some description",
paragraph1: "some paragraph1",
paragraph2: "some paragraph2",
paragraph3: "some paragraph3",
paragraph4: "some paragraph4",
paragraph5: "some paragraph5",
paragraph6: "some paragraph6",
paragraph7: "some paragraph7",
paragraph8: "some paragraph8",
paragraph9: "some paragraph9",
seqnum: 1
}
@update_attrs %{
name: "some updated name",
desc: "some updated description",
paragraph1: "some updated paragraph1",
paragraph2: "some updated paragraph2",
paragraph3: "some updated paragraph3",
paragraph4: "some updated paragraph4",
paragraph5: "some updated paragraph5",
paragraph6: "some updated paragraph6",
paragraph7: "some updated paragraph7",
paragraph8: "some updated paragraph8",
paragraph9: "some updated paragraph9",
seqnum: 2
}
@invalid_attrs %{name: nil, desc: nil, seqnum: nil}
@invalid_attrs %{
name: nil,
paragraph1: nil,
paragraph2: nil,
paragraph3: nil,
paragraph4: nil,
paragraph5: nil,
paragraph6: nil,
paragraph7: nil,
paragraph8: nil,
paragraph9: nil,
seqnum: nil
}
def fixture(:performance) do
{:ok, performance} = Schedule.create_performance(@create_attrs)
@@ -74,7 +102,7 @@ defmodule RunosaariWeb.PerformanceControllerTest do
assert redirected_to(conn) == Routes.admin_performance_path(conn, :show, performance)
conn = get(conn, Routes.admin_performance_path(conn, :show, performance))
assert html_response(conn, 200) =~ "some updated description"
assert html_response(conn, 200) =~ "some updated paragraph1"
end
test "renders errors when data is invalid", %{conn: conn, performance: performance} do