From 1887ca6493d454b16050114f1c7600eab3cd5feb Mon Sep 17 00:00:00 2001 From: Barry Martin Date: Thu, 14 Dec 2023 12:29:13 -0600 Subject: [PATCH] Fix crash that can occur with schemas that only have a single field --- lib/kaffy/resource_schema.ex | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/lib/kaffy/resource_schema.ex b/lib/kaffy/resource_schema.ex index 56aec772..74ceffe8 100644 --- a/lib/kaffy/resource_schema.ex +++ b/lib/kaffy/resource_schema.ex @@ -88,18 +88,21 @@ defmodule Kaffy.ResourceSchema do end defp reorder_fields(fields_list, schema) do - [_id, first_field | _fields] = schema.__schema__(:fields) - - # this is a "nice" feature to re-order the default fields to put the specified fields at the top/bottom of the form - fields_list - |> reorder_field(first_field, :first) - |> reorder_field(:email, :first) - |> reorder_field(:name, :first) - |> reorder_field(:title, :first) - |> reorder_field(:id, :first) - |> reorder_field(:inserted_at, :last) - |> reorder_field(:updated_at, :last) + if length(schema.__schema__(:fields)) > 1 do + [_id, first_field | _fields] = schema.__schema__(:fields) + # this is a "nice" feature to re-order the default fields to put the specified fields at the top/bottom of the form + fields_list + |> reorder_field(first_field, :first) + |> reorder_field(:email, :first) + |> reorder_field(:name, :first) + |> reorder_field(:title, :first) + |> reorder_field(:id, :first) + |> reorder_field(:inserted_at, :last) + |> reorder_field(:updated_at, :last) + else + fields_list + end # |> reorder_field(Kaffy.ResourceSchema.embeds(schema), :last) end