mirror of
https://github.com/ash-project/ash_phoenix.git
synced 2024-09-19 23:02:48 +12:00
fix: undo the change of not returning hidden fields
this caused issues with setting ids for related entities. Instead, we tell each changeset/query that they can ignore any unknown inputs
This commit is contained in:
parent
8dba194af2
commit
0d606e9948
2 changed files with 10 additions and 40 deletions
|
@ -216,12 +216,6 @@ defmodule AshPhoenix.Form do
|
|||
type: :atom,
|
||||
doc: "The domain to use when calling the action"
|
||||
],
|
||||
skip_unknown_inputs: [
|
||||
type: {:list, {:or, [:atom, :string]}},
|
||||
default: [],
|
||||
doc:
|
||||
"A list of inputs that will be ignored by the underlying changeset if they are not accepted"
|
||||
],
|
||||
as: [
|
||||
type: :string,
|
||||
default: "form",
|
||||
|
@ -1087,7 +1081,8 @@ defmodule AshPhoenix.Form do
|
|||
|> Ash.Changeset.for_create(
|
||||
form.action,
|
||||
Map.drop(changeset_params, ["_form_type", "_touched", "_union_type"]),
|
||||
source_opts
|
||||
allow_all_keys_to_be_skipped(source_opts, changeset_params)
|
||||
|
||||
)
|
||||
|
||||
:update ->
|
||||
|
@ -1100,7 +1095,7 @@ defmodule AshPhoenix.Form do
|
|||
|> Ash.Changeset.for_update(
|
||||
form.action,
|
||||
Map.drop(changeset_params, ["_form_type", "_touched", "_union_type"]),
|
||||
source_opts
|
||||
allow_all_keys_to_be_skipped(source_opts, changeset_params)
|
||||
)
|
||||
|
||||
:destroy ->
|
||||
|
@ -1113,7 +1108,7 @@ defmodule AshPhoenix.Form do
|
|||
|> Ash.Changeset.for_destroy(
|
||||
form.action,
|
||||
Map.drop(changeset_params, ["_form_type", "_touched", "_union_type"]),
|
||||
source_opts
|
||||
allow_all_keys_to_be_skipped(source_opts, changeset_params)
|
||||
)
|
||||
|
||||
:read ->
|
||||
|
@ -1234,7 +1229,6 @@ defmodule AshPhoenix.Form do
|
|||
domain: form.opts[:domain],
|
||||
params: params,
|
||||
forms: opts[:forms] || [],
|
||||
skip_unknown_inputs: opts[:skip_unknown_inputs] || [],
|
||||
accessing_from: opts[:managed_relationship],
|
||||
prepare_source: opts[:prepare_source],
|
||||
transform_params: opts[:transform_params],
|
||||
|
@ -1259,7 +1253,6 @@ defmodule AshPhoenix.Form do
|
|||
tenant: form.opts[:tenant],
|
||||
domain: form.opts[:domain],
|
||||
params: params,
|
||||
skip_unknown_inputs: opts[:skip_unknown_inputs] || [],
|
||||
accessing_from: opts[:managed_relationship],
|
||||
prepare_source: opts[:prepare_source],
|
||||
transform_params: opts[:transform_params],
|
||||
|
@ -1342,7 +1335,6 @@ defmodule AshPhoenix.Form do
|
|||
tenant: form.opts[:tenant],
|
||||
domain: form.opts[:domain],
|
||||
params: form_params,
|
||||
skip_unknown_inputs: opts[:skip_unknown_inputs] || [],
|
||||
accessing_from: opts[:managed_relationship],
|
||||
prepare_source: opts[:prepare_source],
|
||||
transform_params: opts[:transform_params],
|
||||
|
@ -1413,7 +1405,6 @@ defmodule AshPhoenix.Form do
|
|||
tenant: form.opts[:tenant],
|
||||
domain: form.opts[:domain],
|
||||
errors: errors?,
|
||||
skip_unknown_inputs: opts[:skip_unknown_inputs] || [],
|
||||
accessing_from: opts[:managed_relationship],
|
||||
prepare_source: opts[:prepare_source],
|
||||
transform_params: opts[:transform_params],
|
||||
|
@ -1434,7 +1425,6 @@ defmodule AshPhoenix.Form do
|
|||
actor: form.opts[:actor],
|
||||
tenant: form.opts[:tenant],
|
||||
errors: errors?,
|
||||
skip_unknown_inputs: opts[:skip_unknown_inputs] || [],
|
||||
accessing_from: opts[:managed_relationship],
|
||||
prepare_source: opts[:prepare_source],
|
||||
warn_on_unhandled_errors?: form.warn_on_unhandled_errors?,
|
||||
|
@ -1488,7 +1478,6 @@ defmodule AshPhoenix.Form do
|
|||
tenant: form.opts[:tenant],
|
||||
domain: form.opts[:domain],
|
||||
errors: errors?,
|
||||
skip_unknown_inputs: opts[:skip_unknown_inputs] || [],
|
||||
accessing_from: opts[:managed_relationship],
|
||||
prepare_source: opts[:prepare_source],
|
||||
warn_on_unhandled_errors?: form.warn_on_unhandled_errors?,
|
||||
|
@ -1517,7 +1506,6 @@ defmodule AshPhoenix.Form do
|
|||
tenant: form.opts[:tenant],
|
||||
domain: form.opts[:domain],
|
||||
errors: errors?,
|
||||
skip_unknown_inputs: opts[:skip_unknown_inputs] || [],
|
||||
accessing_from: opts[:managed_relationship],
|
||||
prepare_source: opts[:prepare_source],
|
||||
prev_data_trail: prev_data_trail,
|
||||
|
@ -1691,7 +1679,7 @@ defmodule AshPhoenix.Form do
|
|||
|> Ash.Changeset.for_create(
|
||||
form.source.action.name,
|
||||
changeset_params,
|
||||
changeset_opts
|
||||
allow_all_keys_to_be_skipped(changeset_opts, changeset_params)
|
||||
)
|
||||
|> before_submit.()
|
||||
|> with_changeset(&Ash.create(&1, opts[:action_opts] || []))
|
||||
|
@ -1703,7 +1691,7 @@ defmodule AshPhoenix.Form do
|
|||
|> Ash.Changeset.for_update(
|
||||
form.source.action.name,
|
||||
changeset_params,
|
||||
changeset_opts
|
||||
allow_all_keys_to_be_skipped(changeset_opts, changeset_params)
|
||||
)
|
||||
|> before_submit.()
|
||||
|> with_changeset(&Ash.update(&1, opts[:action_opts] || []))
|
||||
|
@ -1715,7 +1703,7 @@ defmodule AshPhoenix.Form do
|
|||
|> Ash.Changeset.for_destroy(
|
||||
form.source.action.name,
|
||||
changeset_params,
|
||||
changeset_opts
|
||||
allow_all_keys_to_be_skipped(changeset_opts, changeset_params)
|
||||
)
|
||||
|> before_submit.()
|
||||
|> with_changeset(&Ash.destroy(&1, opts[:action_opts] || []))
|
||||
|
@ -2568,7 +2556,7 @@ defmodule AshPhoenix.Form do
|
|||
def params(form, opts \\ []) do
|
||||
form = to_form!(form)
|
||||
# These options aren't documented because they are still experimental
|
||||
hidden? = Keyword.get(opts, :hidden?, false)
|
||||
hidden? = Keyword.get(opts, :hidden?, true)
|
||||
|
||||
excluded_empty_fields =
|
||||
Keyword.get(
|
||||
|
@ -3432,7 +3420,6 @@ defmodule AshPhoenix.Form do
|
|||
domain: form.opts[:domain],
|
||||
actor: form.opts[:actor],
|
||||
tenant: form.opts[:tenant],
|
||||
skip_unknown_inputs: config[:skip_unknown_inputs] || [],
|
||||
accessing_from: config[:managed_relationship],
|
||||
transform_params: config[:transform_params],
|
||||
prepare_source: config[:prepare_source],
|
||||
|
@ -3943,7 +3930,6 @@ defmodule AshPhoenix.Form do
|
|||
actor: actor,
|
||||
tenant: tenant,
|
||||
errors: error?,
|
||||
skip_unknown_inputs: opts[:skip_unknown_inputs] || [],
|
||||
accessing_from: opts[:managed_relationship],
|
||||
prepare_source: opts[:prepare_source],
|
||||
warn_on_unhandled_errors?: warn_on_unhandled_errors?,
|
||||
|
@ -3964,7 +3950,6 @@ defmodule AshPhoenix.Form do
|
|||
actor: actor,
|
||||
tenant: tenant,
|
||||
errors: error?,
|
||||
skip_unknown_inputs: opts[:skip_unknown_inputs] || [],
|
||||
accessing_from: opts[:managed_relationship],
|
||||
prepare_source: opts[:prepare_source],
|
||||
warn_on_unhandled_errors?: warn_on_unhandled_errors?,
|
||||
|
@ -4022,7 +4007,6 @@ defmodule AshPhoenix.Form do
|
|||
actor: actor,
|
||||
tenant: tenant,
|
||||
errors: error?,
|
||||
skip_unknown_inputs: opts[:skip_unknown_inputs] || [],
|
||||
accessing_from: opts[:managed_relationship],
|
||||
prepare_source: opts[:prepare_source],
|
||||
warn_on_unhandled_errors?: warn_on_unhandled_errors?,
|
||||
|
@ -4048,7 +4032,6 @@ defmodule AshPhoenix.Form do
|
|||
actor: actor,
|
||||
tenant: tenant,
|
||||
errors: error?,
|
||||
skip_unknown_inputs: opts[:skip_unknown_inputs] || [],
|
||||
accessing_from: opts[:managed_relationship],
|
||||
prepare_source: opts[:prepare_source],
|
||||
prev_data_trail: prev_data_trail,
|
||||
|
@ -4163,7 +4146,6 @@ defmodule AshPhoenix.Form do
|
|||
params: form_params,
|
||||
warn_on_unhandled_errors?: warn_on_unhandled_errors?,
|
||||
forms: opts[:forms] || [],
|
||||
skip_unknown_inputs: opts[:skip_unknown_inputs] || [],
|
||||
accessing_from: opts[:managed_relationship],
|
||||
prepare_source: opts[:prepare_source],
|
||||
transform_params: opts[:transform_params],
|
||||
|
@ -4190,7 +4172,6 @@ defmodule AshPhoenix.Form do
|
|||
tenant: tenant,
|
||||
params: form_params,
|
||||
forms: opts[:forms] || [],
|
||||
skip_unknown_inputs: opts[:skip_unknown_inputs] || [],
|
||||
accessing_from: opts[:managed_relationship],
|
||||
prepare_source: opts[:prepare_source],
|
||||
transform_params: opts[:transform_params],
|
||||
|
@ -4224,7 +4205,6 @@ defmodule AshPhoenix.Form do
|
|||
tenant: tenant,
|
||||
params: add_index(form_params, original_index, opts),
|
||||
forms: opts[:forms] || [],
|
||||
skip_unknown_inputs: opts[:skip_unknown_inputs] || [],
|
||||
accessing_from: opts[:managed_relationship],
|
||||
prepare_source: opts[:prepare_source],
|
||||
transform_params: opts[:transform_params],
|
||||
|
@ -4252,7 +4232,6 @@ defmodule AshPhoenix.Form do
|
|||
tenant: tenant,
|
||||
params: add_index(form_params, original_index, opts),
|
||||
forms: opts[:forms] || [],
|
||||
skip_unknown_inputs: opts[:skip_unknown_inputs] || [],
|
||||
accessing_from: opts[:managed_relationship],
|
||||
prepare_source: opts[:prepare_source],
|
||||
warn_on_unhandled_errors?: warn_on_unhandled_errors?,
|
||||
|
@ -4309,7 +4288,6 @@ defmodule AshPhoenix.Form do
|
|||
params: form_params,
|
||||
forms: opts[:forms] || [],
|
||||
errors: error?,
|
||||
skip_unknown_inputs: opts[:skip_unknown_inputs] || [],
|
||||
accessing_from: opts[:managed_relationship],
|
||||
prepare_source: opts[:prepare_source],
|
||||
transform_params: opts[:transform_params],
|
||||
|
@ -4332,7 +4310,6 @@ defmodule AshPhoenix.Form do
|
|||
tenant: tenant,
|
||||
params: form_params,
|
||||
forms: opts[:forms] || [],
|
||||
skip_unknown_inputs: opts[:skip_unknown_inputs] || [],
|
||||
accessing_from: opts[:managed_relationship],
|
||||
prepare_source: opts[:prepare_source],
|
||||
transform_params: opts[:transform_params],
|
||||
|
@ -4363,7 +4340,6 @@ defmodule AshPhoenix.Form do
|
|||
tenant: tenant,
|
||||
params: form_params,
|
||||
forms: opts[:forms] || [],
|
||||
skip_unknown_inputs: opts[:skip_unknown_inputs] || [],
|
||||
accessing_from: opts[:managed_relationship],
|
||||
prepare_source: opts[:prepare_source],
|
||||
transform_params: opts[:transform_params],
|
||||
|
@ -4392,7 +4368,6 @@ defmodule AshPhoenix.Form do
|
|||
tenant: tenant,
|
||||
params: form_params,
|
||||
forms: opts[:forms] || [],
|
||||
skip_unknown_inputs: opts[:skip_unknown_inputs] || [],
|
||||
accessing_from: opts[:managed_relationship],
|
||||
prepare_source: opts[:prepare_source],
|
||||
transform_params: opts[:transform_params],
|
||||
|
@ -4437,7 +4412,6 @@ defmodule AshPhoenix.Form do
|
|||
params: add_index(form_params, original_index, opts),
|
||||
forms: opts[:forms] || [],
|
||||
errors: error?,
|
||||
skip_unknown_inputs: opts[:skip_unknown_inputs] || [],
|
||||
accessing_from: opts[:managed_relationship],
|
||||
prepare_source: opts[:prepare_source],
|
||||
transform_params: opts[:transform_params],
|
||||
|
@ -4469,7 +4443,6 @@ defmodule AshPhoenix.Form do
|
|||
tenant: tenant,
|
||||
params: add_index(form_params, original_index, opts),
|
||||
forms: opts[:forms] || [],
|
||||
skip_unknown_inputs: opts[:skip_unknown_inputs] || [],
|
||||
accessing_from: opts[:managed_relationship],
|
||||
prepare_source: opts[:prepare_source],
|
||||
transform_params: opts[:transform_params],
|
||||
|
@ -4497,7 +4470,6 @@ defmodule AshPhoenix.Form do
|
|||
tenant: tenant,
|
||||
params: form_params,
|
||||
forms: opts[:forms] || [],
|
||||
skip_unknown_inputs: opts[:skip_unknown_inputs] || [],
|
||||
accessing_from: opts[:managed_relationship],
|
||||
prepare_source: opts[:prepare_source],
|
||||
transform_params: opts[:transform_params],
|
||||
|
@ -4520,7 +4492,6 @@ defmodule AshPhoenix.Form do
|
|||
tenant: tenant,
|
||||
params: form_params,
|
||||
forms: opts[:forms] || [],
|
||||
skip_unknown_inputs: opts[:skip_unknown_inputs] || [],
|
||||
accessing_from: opts[:managed_relationship],
|
||||
prepare_source: opts[:prepare_source],
|
||||
transform_params: opts[:transform_params],
|
||||
|
@ -4553,7 +4524,6 @@ defmodule AshPhoenix.Form do
|
|||
tenant: tenant,
|
||||
params: form_params,
|
||||
forms: opts[:forms] || [],
|
||||
skip_unknown_inputs: opts[:skip_unknown_inputs] || [],
|
||||
transform_params: opts[:transform_params],
|
||||
accessing_from: opts[:managed_relationship],
|
||||
prepare_source: opts[:prepare_source],
|
||||
|
|
4
mix.lock
4
mix.lock
|
@ -1,5 +1,5 @@
|
|||
%{
|
||||
"ash": {:hex, :ash, "3.0.0-rc.3", "9d2af1a4baef19ef0ef8a7f4bbdbbd640d54d62b484cdfd42e583d88c566115f", [:mix], [{:comparable, "~> 1.0", [hex: :comparable, repo: "hexpm", optional: false]}, {:decimal, "~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:ecto, "~> 3.7", [hex: :ecto, repo: "hexpm", optional: false]}, {:ets, "~> 0.8", [hex: :ets, repo: "hexpm", optional: false]}, {:jason, ">= 1.0.0", [hex: :jason, repo: "hexpm", optional: false]}, {:picosat_elixir, "~> 0.2", [hex: :picosat_elixir, repo: "hexpm", optional: true]}, {:plug, ">= 0.0.0", [hex: :plug, repo: "hexpm", optional: true]}, {:reactor, "~> 0.8", [hex: :reactor, repo: "hexpm", optional: false]}, {:simple_sat, ">= 0.1.1 and < 1.0.0-0", [hex: :simple_sat, repo: "hexpm", optional: true]}, {:spark, ">= 2.1.7 and < 3.0.0-0", [hex: :spark, repo: "hexpm", optional: false]}, {:splode, "~> 0.2", [hex: :splode, repo: "hexpm", optional: false]}, {:stream_data, "~> 0.6", [hex: :stream_data, repo: "hexpm", optional: false]}, {:telemetry, "~> 1.1", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "83a16dace30aabb1f623e6f1b405cfe1af14f87a1411b1af9bbc745cd968a373"},
|
||||
"ash": {:hex, :ash, "3.0.0-rc.11", "2eb81c33ec318b55083bd1f3d3708e7e86062a3bbca8c6c94954c505d48409cc", [:mix], [{:comparable, "~> 1.0", [hex: :comparable, repo: "hexpm", optional: false]}, {:decimal, "~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:ecto, "~> 3.7", [hex: :ecto, repo: "hexpm", optional: false]}, {:ets, "~> 0.8", [hex: :ets, repo: "hexpm", optional: false]}, {:jason, ">= 1.0.0", [hex: :jason, repo: "hexpm", optional: false]}, {:picosat_elixir, "~> 0.2", [hex: :picosat_elixir, repo: "hexpm", optional: true]}, {:plug, ">= 0.0.0", [hex: :plug, repo: "hexpm", optional: true]}, {:reactor, "~> 0.8", [hex: :reactor, repo: "hexpm", optional: false]}, {:simple_sat, ">= 0.1.1 and < 1.0.0-0", [hex: :simple_sat, repo: "hexpm", optional: true]}, {:spark, ">= 2.1.7 and < 3.0.0-0", [hex: :spark, repo: "hexpm", optional: false]}, {:splode, "~> 0.2", [hex: :splode, repo: "hexpm", optional: false]}, {:stream_data, "~> 0.6", [hex: :stream_data, repo: "hexpm", optional: false]}, {:telemetry, "~> 1.1", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "92198b501324c9ecc6060cf563abad064d04d122c626abf6836e9cf0f5fec1cb"},
|
||||
"bunt": {:hex, :bunt, "1.0.0", "081c2c665f086849e6d57900292b3a161727ab40431219529f13c4ddcf3e7a44", [:mix], [], "hexpm", "dc5f86aa08a5f6fa6b8096f0735c4e76d54ae5c9fa2c143e5a1fc7c1cd9bb6b5"},
|
||||
"castore": {:hex, :castore, "1.0.6", "ffc42f110ebfdafab0ea159cd43d31365fa0af0ce4a02ecebf1707ae619ee727", [:mix], [], "hexpm", "374c6e7ca752296be3d6780a6d5b922854ffcc74123da90f2f328996b962d33a"},
|
||||
"comparable": {:hex, :comparable, "1.0.0", "bb669e91cedd14ae9937053e5bcbc3c52bb2f22422611f43b6e38367d94a495f", [:mix], [{:typable, "~> 0.1", [hex: :typable, repo: "hexpm", optional: false]}], "hexpm", "277c11eeb1cd726e7cd41c6c199e7e52fa16ee6830b45ad4cdc62e51f62eb60c"},
|
||||
|
@ -34,7 +34,7 @@
|
|||
"simple_sat": {:hex, :simple_sat, "0.1.1", "68a5ebe6f6d5956bd806e4881c495692c14580a2f1a4420488985abd0fba2119", [:mix], [], "hexpm", "63571218f92ff029838df7645eb8f0c38df8ed60d2d14578412a8d142a94471e"},
|
||||
"sobelow": {:hex, :sobelow, "0.13.0", "218afe9075904793f5c64b8837cc356e493d88fddde126a463839351870b8d1e", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "cd6e9026b85fc35d7529da14f95e85a078d9dd1907a9097b3ba6ac7ebbe34a0d"},
|
||||
"sourceror": {:hex, :sourceror, "1.0.2", "c5e86fdc14881f797749d1fe5df017ca66727a8146e7ee3e736605a3df78f3e6", [:mix], [], "hexpm", "832335e87d0913658f129d58b2a7dc0490ddd4487b02de6d85bca0169ec2bd79"},
|
||||
"spark": {:hex, :spark, "2.1.9", "053adb7f9b7f1059694aaf6f608fd3f13e460844f7fa7c689dabd97d6e49caf6", [:mix], [{:jason, "~> 1.4", [hex: :jason, repo: "hexpm", optional: false]}, {:sourceror, "~> 1.0", [hex: :sourceror, repo: "hexpm", optional: false]}], "hexpm", "7896127fdaa01230604cd7f1ae907e54ac5038a514603a5ed209e40f6304671c"},
|
||||
"spark": {:hex, :spark, "2.1.11", "8093149dfd583b5ce2c06e1fea1faaf4125b50e4703138b2cbefb78c8f4aa07f", [:mix], [{:jason, "~> 1.4", [hex: :jason, repo: "hexpm", optional: false]}, {:sourceror, "~> 1.0", [hex: :sourceror, repo: "hexpm", optional: false]}], "hexpm", "1877d92ab993b860e9d828bfd72d50367c0d3a53dd84f4de5d221baf66ae8723"},
|
||||
"splode": {:hex, :splode, "0.2.1", "020079ec06c9e00f8b6586852e781b5e07aee6ba588f3f45dd993831c87b0511", [:mix], [], "hexpm", "d232a933666061fe1f659d9906042fa94b9b393bb1129a4fde6fa680033b2611"},
|
||||
"stream_data": {:hex, :stream_data, "0.6.0", "e87a9a79d7ec23d10ff83eb025141ef4915eeb09d4491f79e52f2562b73e5f47", [:mix], [], "hexpm", "b92b5031b650ca480ced047578f1d57ea6dd563f5b57464ad274718c9c29501c"},
|
||||
"telemetry": {:hex, :telemetry, "1.2.1", "68fdfe8d8f05a8428483a97d7aab2f268aaff24b49e0f599faa091f1d4e7f61c", [:rebar3], [], "hexpm", "dad9ce9d8effc621708f99eac538ef1cbe05d6a874dd741de2e689c47feafed5"},
|
||||
|
|
Loading…
Reference in a new issue