1- from fastadmin import ModelAdmin
2- from fastadmin .models .helpers import get_admin_model , register_admin_model_class , unregister_admin_model_class
1+ from fastadmin import ModelAdmin , display
2+ from fastadmin .models .helpers import (
3+ generate_models_schema ,
4+ get_admin_model ,
5+ get_admin_models ,
6+ register_admin_model_class ,
7+ unregister_admin_model_class ,
8+ )
39
410
511async def test_uregister_admin_model_class ():
@@ -15,3 +21,31 @@ class OrmModelClass:
1521 unregister_admin_model_class ([OrmModelClass ])
1622 assert not get_admin_model (OrmModelClass .__name__ )
1723 assert not get_admin_model (OrmModelClass )
24+
25+
26+ async def test_admin_model_list_configuration_ordering (tournament , base_model_admin ):
27+ Tournament = tournament .__class__
28+
29+ class TournamentModelAdmin (base_model_admin ):
30+ list_display = ("pseudo_name" , "name" , "another_calculated_field" )
31+
32+ @display
33+ def pseudo_name (self , obj : Tournament ) -> str :
34+ return "Pseudo name"
35+
36+ @display
37+ def another_calculated_field (self , obj : Tournament ) -> int :
38+ return 0
39+
40+ model_schema = generate_models_schema ({Tournament : TournamentModelAdmin (Tournament )})
41+
42+ assert model_schema
43+ assert len (model_schema ) == 1
44+
45+ list_display = [
46+ (field .list_configuration .index , field .name ) for field in model_schema [0 ].fields if field .list_configuration
47+ ]
48+ list_display .sort ()
49+ list_display = tuple (name for index , name in list_display )
50+
51+ assert list_display == TournamentModelAdmin .list_display
0 commit comments