2
0
mirror of https://github.com/inventree/InvenTree.git synced 2026-04-02 09:31:02 +00:00

Enforce deterministic ordering for plugin settings (#11643)

* Enforce deterministic ordering for plugin settings

* Fix typo
This commit is contained in:
Oliver
2026-03-31 20:45:25 +11:00
committed by GitHub
parent e4ac02a840
commit 5f3e9a0652
2 changed files with 14 additions and 2 deletions

View File

@@ -97,6 +97,10 @@ class MachineSettingList(APIView):
)
all_settings.extend(list(settings_dict.values()))
# Sort settings by the 'key' field before returning,
# to ensure a deterministic order in the API response
all_settings = sorted(all_settings, key=lambda x: x.key)
results = MachineSerializers.MachineSettingSerializer(
all_settings, many=True
).data

View File

@@ -380,8 +380,12 @@ class PluginAllSettingList(APIView):
settings_definition=settings, plugin=plugin.plugin_config()
)
# Sort settings by the 'key' field before returning,
# to ensure a deterministic order in the API response
settings_values = sorted(settings_dict.values(), key=lambda x: x.key)
results = PluginSerializers.PluginSettingSerializer(
list(settings_dict.values()), many=True
settings_values, many=True
).data
return Response(results)
@@ -444,8 +448,12 @@ class PluginUserSettingList(APIView):
user=request.user,
)
# Sort settings by the 'key' field before returning,
# to ensure a deterministic order in the API response
settings_values = sorted(settings_dict.values(), key=lambda x: x.key)
results = PluginSerializers.PluginUserSettingSerializer(
list(settings_dict.values()), many=True
settings_values, many=True
).data
return Response(results)