diff --git a/lib/code_corps/model/task.ex b/lib/code_corps/model/task.ex index 43716a261..2163605ee 100644 --- a/lib/code_corps/model/task.ex +++ b/lib/code_corps/model/task.ex @@ -9,6 +9,7 @@ defmodule CodeCorps.Task do @type t :: %__MODULE__{} schema "tasks" do + field :archived, :boolean, default: false field :body, :string field :closed_at, :utc_datetime field :created_at, :utc_datetime @@ -63,7 +64,7 @@ defmodule CodeCorps.Task do def update_changeset(struct, params) do struct |> changeset(params) - |> cast(params, [:status]) + |> cast(params, [:archived, :status]) |> validate_inclusion(:status, statuses()) |> set_closed_at() |> update_modified_at() diff --git a/lib/code_corps_web/views/task_view.ex b/lib/code_corps_web/views/task_view.ex index 812d62ec5..348e956b2 100644 --- a/lib/code_corps_web/views/task_view.ex +++ b/lib/code_corps_web/views/task_view.ex @@ -5,8 +5,8 @@ defmodule CodeCorpsWeb.TaskView do use JaSerializer.PhoenixView attributes [ - :body, :created_at, :created_from, :inserted_at, :markdown, :modified_at, - :modified_from, :number, :order, :status, :title, :updated_at + :archived, :body, :created_at, :created_from, :inserted_at, :markdown, + :modified_at, :modified_from, :number, :order, :status, :title, :updated_at ] has_one :github_repo, serializer: CodeCorpsWeb.GithubRepoView diff --git a/priv/repo/migrations/20171006063358_add_archived_to_tasks.exs b/priv/repo/migrations/20171006063358_add_archived_to_tasks.exs new file mode 100644 index 000000000..1fa7a40ff --- /dev/null +++ b/priv/repo/migrations/20171006063358_add_archived_to_tasks.exs @@ -0,0 +1,9 @@ +defmodule CodeCorps.Repo.Migrations.AddArchivedToTasks do + use Ecto.Migration + + def change do + alter table(:tasks) do + add :archived, :boolean, null: false, default: false + end + end +end diff --git a/priv/repo/structure.sql b/priv/repo/structure.sql index 9a8ded529..8e07f53e6 100644 --- a/priv/repo/structure.sql +++ b/priv/repo/structure.sql @@ -1376,7 +1376,8 @@ CREATE TABLE tasks ( created_at timestamp without time zone, modified_at timestamp without time zone, created_from character varying(255) DEFAULT 'code_corps'::character varying, - modified_from character varying(255) DEFAULT 'code_corps'::character varying + modified_from character varying(255) DEFAULT 'code_corps'::character varying, + archived boolean DEFAULT false NOT NULL ); @@ -3051,5 +3052,5 @@ ALTER TABLE ONLY user_tasks -- PostgreSQL database dump complete -- -INSERT INTO "schema_migrations" (version) VALUES (20160723215749), (20160804000000), (20160804001111), (20160805132301), (20160805203929), (20160808143454), (20160809214736), (20160810124357), (20160815125009), (20160815143002), (20160816020347), (20160816034021), (20160817220118), (20160818000944), (20160818132546), (20160820113856), (20160820164905), (20160822002438), (20160822004056), (20160822011624), (20160822020401), (20160822044612), (20160830081224), (20160830224802), (20160911233738), (20160912002705), (20160912145957), (20160918003206), (20160928232404), (20161003185918), (20161019090945), (20161019110737), (20161020144622), (20161021131026), (20161031001615), (20161121005339), (20161121014050), (20161121043941), (20161121045709), (20161122015942), (20161123081114), (20161123150943), (20161124085742), (20161125200620), (20161126045705), (20161127054559), (20161205024856), (20161207112519), (20161209192504), (20161212005641), (20161214005935), (20161215052051), (20161216051447), (20161218005913), (20161219160401), (20161219163909), (20161220141753), (20161221085759), (20161226213600), (20161231063614), (20170102130055), (20170102181053), (20170104113708), (20170104212623), (20170104235423), (20170106013143), (20170115035159), (20170115230549), (20170121014100), (20170131234029), (20170201014901), (20170201025454), (20170201035458), (20170201183258), (20170220032224), (20170224233516), (20170226050552), (20170228085250), (20170308214128), (20170308220713), (20170308222552), (20170313130611), (20170318032449), (20170318082740), (20170324194827), (20170424215355), (20170501225441), (20170505224222), (20170526095401), (20170602000208), (20170622205732), (20170626231059), (20170628092119), (20170628213609), (20170629183404), (20170630140136), (20170706132431), (20170707213648), (20170711122252), (20170717092127), (20170725060612), (20170727052644), (20170731130121), (20170814131722), (20170913114958), (20170921014405), (20170925214512), (20170925230419), (20170926134646), (20170927100300), (20170928234412), (20171003134956), (20171003225853), (20171006161407); +INSERT INTO "schema_migrations" (version) VALUES (20160723215749), (20160804000000), (20160804001111), (20160805132301), (20160805203929), (20160808143454), (20160809214736), (20160810124357), (20160815125009), (20160815143002), (20160816020347), (20160816034021), (20160817220118), (20160818000944), (20160818132546), (20160820113856), (20160820164905), (20160822002438), (20160822004056), (20160822011624), (20160822020401), (20160822044612), (20160830081224), (20160830224802), (20160911233738), (20160912002705), (20160912145957), (20160918003206), (20160928232404), (20161003185918), (20161019090945), (20161019110737), (20161020144622), (20161021131026), (20161031001615), (20161121005339), (20161121014050), (20161121043941), (20161121045709), (20161122015942), (20161123081114), (20161123150943), (20161124085742), (20161125200620), (20161126045705), (20161127054559), (20161205024856), (20161207112519), (20161209192504), (20161212005641), (20161214005935), (20161215052051), (20161216051447), (20161218005913), (20161219160401), (20161219163909), (20161220141753), (20161221085759), (20161226213600), (20161231063614), (20170102130055), (20170102181053), (20170104113708), (20170104212623), (20170104235423), (20170106013143), (20170115035159), (20170115230549), (20170121014100), (20170131234029), (20170201014901), (20170201025454), (20170201035458), (20170201183258), (20170220032224), (20170224233516), (20170226050552), (20170228085250), (20170308214128), (20170308220713), (20170308222552), (20170313130611), (20170318032449), (20170318082740), (20170324194827), (20170424215355), (20170501225441), (20170505224222), (20170526095401), (20170602000208), (20170622205732), (20170626231059), (20170628092119), (20170628213609), (20170629183404), (20170630140136), (20170706132431), (20170707213648), (20170711122252), (20170717092127), (20170725060612), (20170727052644), (20170731130121), (20170814131722), (20170913114958), (20170921014405), (20170925214512), (20170925230419), (20170926134646), (20170927100300), (20170928234412), (20171003134956), (20171003225853), (20171006063358), (20171006161407); diff --git a/test/lib/code_corps/model/task_test.exs b/test/lib/code_corps/model/task_test.exs index 5677bd38a..0a62736d5 100644 --- a/test/lib/code_corps/model/task_test.exs +++ b/test/lib/code_corps/model/task_test.exs @@ -70,5 +70,13 @@ defmodule CodeCorps.TaskTest do assert changeset.valid? refute closed_at end + + test "archived field changes appropriately" do + changes = Map.put(@valid_attrs, :archived, true) + changeset = Task.update_changeset(%Task{task_list_id: 1}, changes) + %{archived: archived} = changeset.changes + assert changeset.valid? + assert archived + end end end diff --git a/test/lib/code_corps_web/views/task_view_test.exs b/test/lib/code_corps_web/views/task_view_test.exs index 57a5749e2..c40ab1759 100644 --- a/test/lib/code_corps_web/views/task_view_test.exs +++ b/test/lib/code_corps_web/views/task_view_test.exs @@ -13,6 +13,7 @@ defmodule CodeCorpsWeb.TaskViewTest do expected_json = %{ "data" => %{ "attributes" => %{ + "archived" => task.archived, "body" => task.body, "created-at" => task.created_at, "created-from" => task.created_from, @@ -24,7 +25,7 @@ defmodule CodeCorpsWeb.TaskViewTest do "order" => task.order, "status" => task.status, "title" => task.title, - "updated-at" => task.updated_at, + "updated-at" => task.updated_at }, "id" => task.id |> Integer.to_string, "relationships" => %{