fix: inconsistent sorting

on components that were inserted in quick succession
This commit is contained in:
Schuwi
2025-09-19 22:43:25 +02:00
parent c4a0b41e7d
commit 086bc65ac1
4 changed files with 12 additions and 12 deletions

View File

@@ -289,16 +289,16 @@ defmodule ComponentsElixir.Inventory do
defp apply_component_sorting(query, opts) do
case Keyword.get(opts, :sort_criteria, "name_asc") do
"name_asc" -> order_by(query, [c], asc: c.name)
"name_desc" -> order_by(query, [c], desc: c.name)
"inserted_at_asc" -> order_by(query, [c], asc: c.inserted_at)
"inserted_at_desc" -> order_by(query, [c], desc: c.inserted_at)
"updated_at_asc" -> order_by(query, [c], asc: c.updated_at)
"updated_at_desc" -> order_by(query, [c], desc: c.updated_at)
"count_asc" -> order_by(query, [c], asc: c.count)
"count_desc" -> order_by(query, [c], desc: c.count)
"name_asc" -> order_by(query, [c], [asc: c.name, asc: c.id])
"name_desc" -> order_by(query, [c], [desc: c.name, asc: c.id])
"inserted_at_asc" -> order_by(query, [c], [asc: c.inserted_at, asc: c.id])
"inserted_at_desc" -> order_by(query, [c], [desc: c.inserted_at, asc: c.id])
"updated_at_asc" -> order_by(query, [c], [asc: c.updated_at, asc: c.id])
"updated_at_desc" -> order_by(query, [c], [desc: c.updated_at, asc: c.id])
"count_asc" -> order_by(query, [c], [asc: c.count, asc: c.id])
"count_desc" -> order_by(query, [c], [desc: c.count, asc: c.id])
# Default fallback
_ -> order_by(query, [c], asc: c.name)
_ -> order_by(query, [c], [asc: c.name, asc: c.id])
end
end

View File

@@ -18,7 +18,7 @@ defmodule ComponentsElixir.Inventory.Category do
has_many :children, Category, foreign_key: :parent_id
has_many :components, Component
timestamps()
timestamps(type: :naive_datetime_usec)
end
@doc false

View File

@@ -23,7 +23,7 @@ defmodule ComponentsElixir.Inventory.Component do
belongs_to :category, Category
belongs_to :storage_location, StorageLocation
timestamps()
timestamps(type: :naive_datetime_usec)
end
@doc false

View File

@@ -22,7 +22,7 @@ defmodule ComponentsElixir.Inventory.StorageLocation do
has_many :children, StorageLocation, foreign_key: :parent_id
has_many :components, Component
timestamps()
timestamps(type: :naive_datetime_usec)
end
@doc false