aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNiels van Velzen <nielsvanvelzen@users.noreply.github.com>2025-09-26 21:38:29 +0200
committerGitHub <noreply@github.com>2025-09-26 21:38:29 +0200
commit93af2d6f67407925c771e0536270b6f6d474e325 (patch)
treef7ed63e89b90ce2bb27bfd7aa2e629ae14cb9a8f
parent526ec8330557246e5eeab3e9a8ff23eb2be930ae (diff)
parent2a54669a8a19f0583805dce5cbca91f044084f41 (diff)
Merge pull request #14873 from theguymadmax/use-listorder
Restore NFO/import ordering by using ListOrder instead of SortOrder
-rw-r--r--Jellyfin.Server.Implementations/Item/PeopleRepository.cs14
1 files changed, 8 insertions, 6 deletions
diff --git a/Jellyfin.Server.Implementations/Item/PeopleRepository.cs b/Jellyfin.Server.Implementations/Item/PeopleRepository.cs
index fc36a4331..e03c13691 100644
--- a/Jellyfin.Server.Implementations/Item/PeopleRepository.cs
+++ b/Jellyfin.Server.Implementations/Item/PeopleRepository.cs
@@ -104,9 +104,7 @@ public class PeopleRepository(IDbContextFactory<JellyfinDbContext> dbProvider, I
var existingMaps = context.PeopleBaseItemMap.Include(e => e.People).Where(e => e.ItemId == itemId).ToList();
- var maxSortOrder = Math.Max(
- context.PeopleBaseItemMap.Include(e => e.People).Where(e => e.ItemId == itemId && e.People.PersonType == PersonKind.Actor.ToString()).Max(e => (int?)e.SortOrder) ?? 0,
- people.Where(p => p.Type == PersonKind.Actor && p.SortOrder.HasValue).Max(p => (int?)p.SortOrder) ?? 0);
+ var listOrder = 0;
foreach (var person in people)
{
@@ -114,23 +112,27 @@ public class PeopleRepository(IDbContextFactory<JellyfinDbContext> dbProvider, I
var existingMap = existingMaps.FirstOrDefault(e => e.People.Name == person.Name && e.People.PersonType == person.Type.ToString() && e.Role == person.Role);
if (existingMap is null)
{
- var sortOrder = person.Type == PersonKind.Actor ? (person.SortOrder ?? ++maxSortOrder) : person.SortOrder;
context.PeopleBaseItemMap.Add(new PeopleBaseItemMap()
{
Item = null!,
ItemId = itemId,
People = null!,
PeopleId = entityPerson.Id,
- ListOrder = sortOrder,
- SortOrder = sortOrder,
+ ListOrder = listOrder,
+ SortOrder = person.SortOrder,
Role = person.Role
});
}
else
{
+ // Update the order for existing mappings
+ existingMap.ListOrder = listOrder;
+ existingMap.SortOrder = person.SortOrder;
// person mapping already exists so remove from list
existingMaps.Remove(existingMap);
}
+
+ listOrder++;
}
context.PeopleBaseItemMap.RemoveRange(existingMaps);