From d22a127b6ce1841771e8c70eb8029ea0a08f880a Mon Sep 17 00:00:00 2001 From: Jonas Chow Date: Wed, 4 Aug 2021 13:33:57 +0800 Subject: [PATCH 1/2] Removed achievement ability --- lib/cadet/incentives/achievement.ex | 7 +---- .../controllers/incentives_controller.ex | 6 ----- lib/cadet_web/views/incentives_view.ex | 1 - ...10804050449_remove_achievement_ability.exs | 9 +++++++ priv/repo/seeds.exs | 11 -------- test/cadet/incentives/achievement_test.exs | 2 -- test/cadet/incentives/achievements_test.exs | 27 +++++++++---------- .../achievements/achievement_factory.ex | 1 - test/support/test_entity_helper.ex | 2 -- 9 files changed, 22 insertions(+), 44 deletions(-) create mode 100644 priv/repo/migrations/20210804050449_remove_achievement_ability.exs diff --git a/lib/cadet/incentives/achievement.ex b/lib/cadet/incentives/achievement.ex index d6ddaa057..f0a5837b5 100644 --- a/lib/cadet/incentives/achievement.ex +++ b/lib/cadet/incentives/achievement.ex @@ -7,12 +7,10 @@ defmodule Cadet.Incentives.Achievement do alias Cadet.Courses.Course alias Cadet.Incentives.{AchievementPrerequisite, AchievementToGoal} - @valid_abilities ~w(Core Community Effort Exploration Flex) @primary_key {:uuid, :binary_id, autogenerate: false} schema "achievements" do field(:title, :string) - field(:ability, :string) field(:card_tile_url, :string) field(:xp, :integer) field(:is_variable_xp, :boolean) @@ -34,7 +32,7 @@ defmodule Cadet.Incentives.Achievement do field(:goal_uuids, {:array, :binary_id}, virtual: true) end - @required_fields ~w(uuid title ability is_task position xp is_variable_xp course_id)a + @required_fields ~w(uuid title is_task position xp is_variable_xp course_id)a @optional_fields ~w(card_tile_url open_at close_at canvas_url description completion_text prerequisite_uuids goal_uuids)a @@ -47,7 +45,6 @@ defmodule Cadet.Incentives.Achievement do achievement |> cast(params, @required_fields ++ @optional_fields) |> validate_required(@required_fields) - |> validate_inclusion(:ability, @valid_abilities) |> foreign_key_constraint(:course_id) |> cast_join_ids( :prerequisite_uuids, @@ -62,6 +59,4 @@ defmodule Cadet.Incentives.Achievement do :uuid ) end - - def valid_abilities, do: @valid_abilities end diff --git a/lib/cadet_web/controllers/incentives_controller.ex b/lib/cadet_web/controllers/incentives_controller.ex index 4e0765dd3..2787f8c26 100644 --- a/lib/cadet_web/controllers/incentives_controller.ex +++ b/lib/cadet_web/controllers/incentives_controller.ex @@ -108,12 +108,6 @@ defmodule CadetWeb.IncentivesController do "If true, XP awarded will depend on the goal progress" ) - ability( - :string, - "Achievement ability i.e. category", - required: true - ) - cardBackground( :string, "URL of the achievement's background image" diff --git a/lib/cadet_web/views/incentives_view.ex b/lib/cadet_web/views/incentives_view.ex index 683f029bc..c72e747ea 100644 --- a/lib/cadet_web/views/incentives_view.ex +++ b/lib/cadet_web/views/incentives_view.ex @@ -10,7 +10,6 @@ defmodule CadetWeb.IncentivesView do transform_map_for_view(achievement, %{ uuid: :uuid, title: :title, - ability: :ability, xp: :xp, isVariableXp: :is_variable_xp, release: &format_datetime(&1.open_at), diff --git a/priv/repo/migrations/20210804050449_remove_achievement_ability.exs b/priv/repo/migrations/20210804050449_remove_achievement_ability.exs new file mode 100644 index 000000000..497f41041 --- /dev/null +++ b/priv/repo/migrations/20210804050449_remove_achievement_ability.exs @@ -0,0 +1,9 @@ +defmodule Cadet.Repo.Migrations.RemoveAchievementAbility do + use Ecto.Migration + + def change do + alter table(:achievements) do + remove(:ability, :text, null: false, default: "Core") + end + end +end diff --git a/priv/repo/seeds.exs b/priv/repo/seeds.exs index 700cce7fc..dee7be580 100644 --- a/priv/repo/seeds.exs +++ b/priv/repo/seeds.exs @@ -249,7 +249,6 @@ if Cadet.Env.env() == :dev do # achievement_0 = # insert(:achievement, %{ # title: "Rune Master", - # ability: "Core", # is_task: true, # position: 1, # card_tile_url: @@ -264,7 +263,6 @@ if Cadet.Env.env() == :dev do # achievement_1 = # insert(:achievement, %{ # title: "Beyond the Second Dimension", - # ability: "Core", # is_task: false, # position: 0, # card_tile_url: @@ -280,7 +278,6 @@ if Cadet.Env.env() == :dev do # achievement_2 = # insert(:achievement, %{ # title: "Colorful Carpet", - # ability: "Core", # is_task: false, # position: 0, # card_tile_url: @@ -296,7 +293,6 @@ if Cadet.Env.env() == :dev do # achievement_3 = # insert(:achievement, %{ # title: "Unpublished", - # ability: "Core", # is_task: false, # position: 0, # card_tile_url: @@ -306,7 +302,6 @@ if Cadet.Env.env() == :dev do # achievement_4 = # insert(:achievement, %{ # title: "Curve Wizard", - # ability: "Core", # is_task: true, # position: 4, # card_tile_url: @@ -323,7 +318,6 @@ if Cadet.Env.env() == :dev do # achievement_5 = # insert(:achievement, %{ # title: "Curve Introduction", - # ability: "Core", # is_task: false, # position: 0, # card_tile_url: @@ -339,7 +333,6 @@ if Cadet.Env.env() == :dev do # achievement_6 = # insert(:achievement, %{ # title: "Curve Manipulation", - # ability: "Core", # is_task: false, # position: 0, # card_tile_url: @@ -355,7 +348,6 @@ if Cadet.Env.env() == :dev do # achievement_7 = # insert(:achievement, %{ # title: "The Source-rer", - # ability: "Effort", # is_task: true, # position: 3, # card_tile_url: @@ -371,7 +363,6 @@ if Cadet.Env.env() == :dev do # achievement_8 = # insert(:achievement, %{ # title: "Power of Friendship", - # ability: "Community", # is_task: true, # position: 2, # card_tile_url: @@ -386,7 +377,6 @@ if Cadet.Env.env() == :dev do # achievement_9 = # insert(:achievement, %{ # title: "Piazza Guru", - # ability: "Community", # is_task: false, # position: 0, # card_tile_url: @@ -399,7 +389,6 @@ if Cadet.Env.env() == :dev do # achievement_10 = # insert(:achievement, %{ # title: "Thats the Spirit", - # ability: "Exploration", # is_task: true, # position: 5, # card_tile_url: diff --git a/test/cadet/incentives/achievement_test.exs b/test/cadet/incentives/achievement_test.exs index 3b7a664bc..e86da82b5 100644 --- a/test/cadet/incentives/achievement_test.exs +++ b/test/cadet/incentives/achievement_test.exs @@ -12,7 +12,6 @@ defmodule Cadet.Incentives.AchievementTest do uuid: "d1fdae3f-2775-4503-ab6b-e043149d4a15", title: "Hello World", course_id: course.id, - ability: "Core", open_at: DateTime.from_naive!(~N[2016-05-24 13:26:08.003], "Etc/UTC"), close_at: DateTime.from_naive!(~N[2016-05-27 13:26:08.003], "Etc/UTC"), is_task: false, @@ -29,7 +28,6 @@ defmodule Cadet.Incentives.AchievementTest do %{ uuid: "d1fdae3f-2775-4503-ab6b-e043149d4a15", title: "Hello World", - ability: "Core", open_at: DateTime.from_naive!(~N[2016-05-27 13:26:08.003], "Etc/UTC"), close_at: DateTime.from_naive!(~N[2016-05-24 13:26:08.003], "Etc/UTC") }, diff --git a/test/cadet/incentives/achievements_test.exs b/test/cadet/incentives/achievements_test.exs index e061c8d13..9fe087423 100644 --- a/test/cadet/incentives/achievements_test.exs +++ b/test/cadet/incentives/achievements_test.exs @@ -15,21 +15,18 @@ defmodule Cadet.Incentives.AchievementsTest do test "create achievements" do course = insert(:course) - for ability <- Achievement.valid_abilities() do - {:ok, %{uuid: uuid}} = - Achievements.upsert(%{ - uuid: Ecto.UUID.generate(), - course_id: course.id, - title: ability, - ability: ability, - is_task: false, - position: 0, - xp: 0, - is_variable_xp: false - }) - - assert %{title: ^ability, ability: ^ability} = Repo.get(Achievement, uuid) - end + {:ok, %{uuid: uuid}} = + Achievements.upsert(%{ + uuid: Ecto.UUID.generate(), + course_id: course.id, + title: "test achievement", + is_task: false, + position: 0, + xp: 0, + is_variable_xp: false + }) + + assert %{title: "test achievement"} = Repo.get(Achievement, uuid) end test "create achievement with prerequisites as id" do diff --git a/test/factories/achievements/achievement_factory.ex b/test/factories/achievements/achievement_factory.ex index f859cd956..107219789 100644 --- a/test/factories/achievements/achievement_factory.ex +++ b/test/factories/achievements/achievement_factory.ex @@ -13,7 +13,6 @@ defmodule Cadet.Incentives.AchievementFactory do uuid: UUID.generate(), course: insert(:course), title: Faker.Food.dish(), - ability: Enum.random(Achievement.valid_abilities()), is_task: false, position: 0, xp: 0, diff --git a/test/support/test_entity_helper.ex b/test/support/test_entity_helper.ex index b726500fb..ce29a165e 100644 --- a/test/support/test_entity_helper.ex +++ b/test/support/test_entity_helper.ex @@ -6,7 +6,6 @@ defmodule Cadet.TestEntityHelper do defmacro achievement_literal(id) do Macro.escape(%{ title: "Achievement #{id}", - ability: "Core", is_task: false, xp: 0, is_variable_xp: false, @@ -20,7 +19,6 @@ defmodule Cadet.TestEntityHelper do defmacro achievement_json_literal(id) do Macro.escape(%{ - "ability" => "Core", "position" => id, "title" => "Achievement #{id}", "xp" => 0, From caaaad1abfb26009d8e9ae300e4a87c45ef506a9 Mon Sep 17 00:00:00 2001 From: Jonas Chow Date: Wed, 4 Aug 2021 15:03:37 +0800 Subject: [PATCH 2/2] Fixed formatting --- lib/cadet/incentives/achievement.ex | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/cadet/incentives/achievement.ex b/lib/cadet/incentives/achievement.ex index f0a5837b5..611c63a1f 100644 --- a/lib/cadet/incentives/achievement.ex +++ b/lib/cadet/incentives/achievement.ex @@ -7,7 +7,6 @@ defmodule Cadet.Incentives.Achievement do alias Cadet.Courses.Course alias Cadet.Incentives.{AchievementPrerequisite, AchievementToGoal} - @primary_key {:uuid, :binary_id, autogenerate: false} schema "achievements" do field(:title, :string)