diff --git a/apps/account/models.py b/apps/account/models.py index 78e1d8ad..495ebdd8 100644 --- a/apps/account/models.py +++ b/apps/account/models.py @@ -481,6 +481,17 @@ class User(AbstractUser): return self.last_country.country.name_translated return None + @property + def locale_roles(self): + """ + Str roles, like "Standard user: at, Moderator: ru" for сsv api method + """ + result_list = [] + roles = self.roles.all() + for role in roles: + result_list.append(f'{role.get_role_display()}: {role.country.code}') + return ', '.join(result_list) + class UserRoleQueryset(models.QuerySet): """QuerySet for model UserRole.""" diff --git a/apps/account/serializers/back.py b/apps/account/serializers/back.py index 78840495..5ec9ca9d 100644 --- a/apps/account/serializers/back.py +++ b/apps/account/serializers/back.py @@ -155,6 +155,7 @@ class UserCSVSerializer(serializers.ModelSerializer): created_at = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S", read_only=True, source='date_joined') last_seen_at = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S", read_only=True, source='last_login') country = serializers.CharField(allow_blank=True, allow_null=True, source='country_name') + roles_list = serializers.CharField(allow_blank=True, allow_null=True, source='locale_roles') class Meta: model = models.User @@ -168,5 +169,5 @@ class UserCSVSerializer(serializers.ModelSerializer): 'created_at', 'last_seen_at', 'last_ip', - 'roles', + 'roles_list', ]