@@ -119,22 +119,29 @@ def _get_role(self, obj: Union[User, TigaUser]) -> Role:
119119
120120 def get_role (self , obj : Union [User , TigaUser ]) -> Role :
121121 if isinstance (obj , User ):
122- obj = UserStat .objects .filter (user = obj ).first ()
123- if not obj :
124- return self ._get_role (obj = TigaUser ())
122+ try :
123+ obj = obj .userstat
124+ except UserStat .DoesNotExist :
125+ obj = None
126+
127+ if not obj :
128+ obj = TigaUser ()
125129 return self ._get_role (obj = obj )
126130
127131 @extend_schema_field (PermissionsSerializer )
128132 def get_permissions (self , obj : Union [User , TigaUser ]):
129- role = self .get_role (obj = obj )
130-
131133 if isinstance (obj , User ):
132- obj = UserStat .objects .filter (user = obj ).first ()
134+ try :
135+ obj = obj .userstat
136+ except UserStat .DoesNotExist :
137+ obj = None
133138
134139 if not obj :
135140 obj = TigaUser ()
136141
137- permissions = obj .get_role_permissions (role = role )
142+ permissions = obj .get_role_permissions (
143+ role = self .get_role (obj = obj )
144+ )
138145 return PermissionsSerializer (permissions ).data
139146
140147class UserPermissionSerializer (serializers .Serializer ):
@@ -168,13 +175,17 @@ def get_general(self, obj: Union[User, TigaUser]):
168175 @extend_schema_field (CountryPermissionSerializer (many = True ))
169176 def get_countries (self , obj : Union [User , TigaUser ]):
170177 if isinstance (obj , User ):
171- obj = UserStat .objects .filter (user = obj ).first ()
172- if obj :
173- result = []
174- for country in obj .get_countries_with_roles ():
175- result .append (self .CountryPermissionSerializer (instance = obj , country = country ).data )
176- return result
177- return self .CountryPermissionSerializer (many = True ).data
178+ try :
179+ obj = obj .userstat
180+ except UserStat .DoesNotExist :
181+ obj = None
182+ if not obj :
183+ return self .CountryPermissionSerializer (many = True ).data
184+
185+ result = []
186+ for country in obj .get_countries_with_roles ():
187+ result .append (self .CountryPermissionSerializer (instance = obj , country = country ).data )
188+ return result
178189
179190class UserSerializer (serializers .ModelSerializer ):
180191 class UserScoreSerializer (serializers .ModelSerializer ):
@@ -1012,7 +1023,10 @@ def validate(self, data):
10121023 data ['validation_complete_executive' ] = data .pop ("is_decisive" )
10131024 user_role = data ['user' ]
10141025 if isinstance (user_role , User ):
1015- user_role = UserStat .objects .filter (user = user_role ).first ()
1026+ try :
1027+ user_role = user_role .userstat
1028+ except UserStat .DoesNotExist :
1029+ user_role = None
10161030 can_set_is_decisive = False
10171031 if user_role :
10181032 can_set_is_decisive = user_role .has_role_permission_by_model (
0 commit comments