Multiple editable paragraphs to performances page.
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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 %>
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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>
|
||||
|
||||
2
mix.exs
2
mix.exs
@@ -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(),
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user