diff --git a/core/apps/accounts/migrations/0005_rename_permission_tab_permission_permission_tabs.py b/core/apps/accounts/migrations/0005_rename_permission_tab_permission_permission_tabs.py new file mode 100644 index 0000000..6bef335 --- /dev/null +++ b/core/apps/accounts/migrations/0005_rename_permission_tab_permission_permission_tabs.py @@ -0,0 +1,18 @@ +# Generated by Django 5.2.7 on 2026-04-28 11:02 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('accounts', '0004_permissiontoaction_permissiontotab_permission_role_and_more'), + ] + + operations = [ + migrations.RenameField( + model_name='permission', + old_name='permission_tab', + new_name='permission_tabs', + ), + ] diff --git a/core/apps/accounts/models/permission.py b/core/apps/accounts/models/permission.py index 68b7f82..9eea320 100644 --- a/core/apps/accounts/models/permission.py +++ b/core/apps/accounts/models/permission.py @@ -33,7 +33,7 @@ class PermissionToTab(AbstractBaseModel): class Permission(AbstractBaseModel): name = models.CharField(max_length=200) code = models.CharField(max_length=100, unique=True) - permission_tab = models.ManyToManyField(PermissionToTab, related_name='permissions') + permission_tabs = models.ManyToManyField(PermissionToTab, related_name='permissions') def __str__(self): return f'{self.name} - {self.code}' diff --git a/core/apps/accounts/serializers/permission.py b/core/apps/accounts/serializers/permission.py index fdf1d37..b219fc0 100644 --- a/core/apps/accounts/serializers/permission.py +++ b/core/apps/accounts/serializers/permission.py @@ -6,21 +6,32 @@ from core.apps.accounts.models.permission import PermissionToAction, PermissionT class PermissionToActionSerializer(serializers.ModelSerializer): class Meta: model = PermissionToAction - fields = "__all__" + fields = ['id', 'name'] + class PermissionToTabSerializer(serializers.ModelSerializer): + permission_to_actions = PermissionToActionSerializer(many=True) + class Meta: model = PermissionToTab - fields = '__all__' + fields = ['id', 'name', 'permission_to_actions'] class PermissionSerializer(serializers.ModelSerializer): + permission_to_tabs = PermissionToTabSerializer(many=True) + class Meta: model = Permission - fields = '__all__' + fields = ['id', 'name', 'permission_to_tabs'] -class RoleSerializer(serializers.ModelSerializer): +class RoleListSerializer(serializers.ModelSerializer): + permissions = PermissionSerializer(many=True) + permission_to_tabs = PermissionToTabSerializer(many=True) + permission_to_actions = PermissionToActionSerializer(many=True) + class Meta: model = Role - fields = '__all__' \ No newline at end of file + fields = [ + 'id', 'name', 'comment', 'permissions', 'permission_to_tabs', 'permission_to_actions', + ] diff --git a/core/apps/accounts/views/permission.py b/core/apps/accounts/views/permission.py index 4d82f49..3499b46 100644 --- a/core/apps/accounts/views/permission.py +++ b/core/apps/accounts/views/permission.py @@ -5,7 +5,7 @@ from rest_framework.viewsets import ModelViewSet from core.apps.accounts.models.permission import PermissionToAction, PermissionToTab, Permission, Role from core.apps.accounts.serializers.permission import PermissionToActionSerializer, PermissionToTabSerializer, \ - PermissionSerializer, RoleSerializer + PermissionSerializer, RoleListSerializer @extend_schema(tags=["permission"]) @@ -39,4 +39,4 @@ class PermissionViewSet(BaseViewSetMixin, ModelViewSet): class RoleViewSet(BaseViewSetMixin, ModelViewSet): queryset = Role.objects.all() - serializer_class = RoleSerializer + serializer_class = RoleListSerializer diff --git a/core/apps/evaluation/serializers/certificate/certificate.py b/core/apps/evaluation/serializers/certificate/certificate.py index 3eaeb1f..601adbf 100644 --- a/core/apps/evaluation/serializers/certificate/certificate.py +++ b/core/apps/evaluation/serializers/certificate/certificate.py @@ -16,9 +16,7 @@ class BaseCertificateSerializer(serializers.ModelSerializer): def get_file(self, obj): if obj.file: request = self.context.get('request') - if request: - return request.build_absolute_uri(obj.file.url) - return obj.file.url + return request.build_absolute_uri(obj.file.url) return None