From 5a2ca3ebcfbc9daaf06984215f71a2a40c1892e2 Mon Sep 17 00:00:00 2001 From: Adrian Kumpf Date: Thu, 9 Jul 2020 19:02:47 +0200 Subject: [PATCH] Update the default sleep requirements MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit … so that the car does not need to be locked to go to sleep. --- lib/teslamate/settings/car_settings.ex | 2 +- lib/teslamate_web/live/car_live/summary.html.leex | 3 +-- ...09165119_change_sleep_requirements_default.exs | 15 +++++++++++++++ test/teslamate/settings_test.exs | 2 +- test/teslamate_web/live/car_summary_live_test.exs | 4 ++-- test/teslamate_web/live/settings_test.exs | 2 +- 6 files changed, 21 insertions(+), 7 deletions(-) create mode 100644 priv/repo/migrations/20200709165119_change_sleep_requirements_default.exs diff --git a/lib/teslamate/settings/car_settings.ex b/lib/teslamate/settings/car_settings.ex index 09c8476c..50d7c8b0 100644 --- a/lib/teslamate/settings/car_settings.ex +++ b/lib/teslamate/settings/car_settings.ex @@ -7,7 +7,7 @@ defmodule TeslaMate.Settings.CarSettings do schema "car_settings" do field :suspend_min, :integer, default: 21 field :suspend_after_idle_min, :integer, default: 15 - field :req_not_unlocked, :boolean, default: true + field :req_not_unlocked, :boolean, default: false field :free_supercharging, :boolean, default: false field :use_streaming_api, :boolean, default: true diff --git a/lib/teslamate_web/live/car_live/summary.html.leex b/lib/teslamate_web/live/car_live/summary.html.leex index f05a3097..4e51ad8c 100644 --- a/lib/teslamate_web/live/car_live/summary.html.leex +++ b/lib/teslamate_web/live/car_live/summary.html.leex @@ -288,8 +288,7 @@ @summary.state == :online and !@summary.sentry_mode and !@summary.is_user_present and - !@summary.is_preconditioning and - @summary.locked-> + !@summary.is_preconditioning -> link gettext("try to sleep"), to: "#", phx_click: "suspend_logging", class: "button is-info is-small is-outlined is-fullwidth" <> (if @loading, do: " is-loading", else: "") diff --git a/priv/repo/migrations/20200709165119_change_sleep_requirements_default.exs b/priv/repo/migrations/20200709165119_change_sleep_requirements_default.exs new file mode 100644 index 00000000..c468c047 --- /dev/null +++ b/priv/repo/migrations/20200709165119_change_sleep_requirements_default.exs @@ -0,0 +1,15 @@ +defmodule TeslaMate.Repo.Migrations.ChangeSleepRequirementsDefault do + use Ecto.Migration + + def up do + alter table(:car_settings) do + modify(:req_not_unlocked, :boolean, null: false, default: false) + end + end + + def down do + alter table(:car_settings) do + modify(:req_not_unlocked, :boolean, null: false, default: true) + end + end +end diff --git a/test/teslamate/settings_test.exs b/test/teslamate/settings_test.exs index 6c453e34..30696520 100644 --- a/test/teslamate/settings_test.exs +++ b/test/teslamate/settings_test.exs @@ -141,7 +141,7 @@ defmodule TeslaMate.SettingsTest do assert settings.id == car.settings_id assert settings.suspend_min == 21 assert settings.suspend_after_idle_min == 15 - assert settings.req_not_unlocked == true + assert settings.req_not_unlocked == false assert settings.free_supercharging == false assert settings.use_streaming_api == true end diff --git a/test/teslamate_web/live/car_summary_live_test.exs b/test/teslamate_web/live/car_summary_live_test.exs index b426f240..8a566f7b 100644 --- a/test/teslamate_web/live/car_summary_live_test.exs +++ b/test/teslamate_web/live/car_summary_live_test.exs @@ -94,13 +94,13 @@ defmodule TeslaMateWeb.CarLive.SummaryTest do end for {msg, status, settings, attrs} <- [ - {"Car is unlocked", "online", %{}, + {"Car is unlocked", "online", %{req_not_unlocked: true}, vehicle_state: %{timestamp: 0, locked: false, car_version: ""}}, {"Doors are open", "online", %{}, vehicle_state: %{timestamp: 0, df: 1, dr: 0, pf: 0, pr: 0, car_version: ""}}, {"Trunk is open", "online", %{}, vehicle_state: %{timestamp: 0, rt: 1, ft: 0, car_version: ""}}, - {"Sentry mode is enabled", "online", %{req_not_unlocked: true}, + {"Sentry mode is enabled", "online", %{}, vehicle_state: %{timestamp: 0, sentry_mode: true, locked: true, car_version: ""}}, {"Preconditioning", "online", %{}, climate_state: %{is_preconditioning: true}}, {"Driver present", "online", %{}, diff --git a/test/teslamate_web/live/settings_test.exs b/test/teslamate_web/live/settings_test.exs index 0feb9885..cc7421d1 100644 --- a/test/teslamate_web/live/settings_test.exs +++ b/test/teslamate_web/live/settings_test.exs @@ -272,7 +272,7 @@ defmodule TeslaMateWeb.SettingsLiveTest do assert [] = Floki.find(html, "#car_settings_#{car.id}_suspend_min") assert [] = Floki.find(html, "#car_settings_#{car.id}_suspend_after_idle_min") - assert ["checked"] = + assert [] = html |> Floki.find("#car_settings_#{car.id}_req_not_unlocked") |> Floki.attribute("checked")