1- from typing import Any , Optional
1+ from typing import Any
22
33from django .conf import settings
44from django .contrib import admin
55from django .db .models import Count , QuerySet
66from django .http .request import HttpRequest
77
8- from apps .commons .admin import RoleBasedAccessAdmin
8+ from apps .commons .admin import RoleBasedAccessAdmin , TranslateObjectAdminMixin
99from services .keycloak .interface import KeycloakService
1010
1111from .exports import ProjectTemplateExportMixin
1212from .models import Organization , ProjectCategory , Template , TemplateCategories
1313
1414
1515@admin .register (Organization )
16- class OrganizationAdmin (admin .ModelAdmin ):
16+ class OrganizationAdmin (TranslateObjectAdminMixin , admin .ModelAdmin ):
1717 list_display = (
1818 "code" ,
1919 "name" ,
@@ -54,7 +54,9 @@ def save_model(self, request, obj, form, change):
5454
5555
5656@admin .register (Template )
57- class TemplateAdmin (ProjectTemplateExportMixin , RoleBasedAccessAdmin ):
57+ class TemplateAdmin (
58+ TranslateObjectAdminMixin , ProjectTemplateExportMixin , RoleBasedAccessAdmin
59+ ):
5860 list_display = (
5961 "id" ,
6062 "display_organization" ,
@@ -81,7 +83,7 @@ def display_templates(self, instance: Template):
8183 @admin .display (
8284 description = "Organization" , ordering = "categories__organization__name"
8385 )
84- def display_organization (self , instance : Template ) -> Optional [ str ] :
86+ def display_organization (self , instance : Template ) -> str | None :
8587 names = [o .organization .name for o in instance .categories .all ()]
8688 return " / " .join (set (names ))
8789
@@ -95,7 +97,7 @@ def get_queryset_for_organizations(
9597
9698
9799@admin .register (ProjectCategory )
98- class ProjectCategoryAdmin (admin .ModelAdmin ):
100+ class ProjectCategoryAdmin (TranslateObjectAdminMixin , admin .ModelAdmin ):
99101 list_display = ("name" , "display_templates" )
100102 list_filter = ("name" ,)
101103
0 commit comments