feat: Expose teams in users’ CSV export

Co-authored-by: Yohan Boniface <yohanboniface@free.fr>
This commit is contained in:
David Larlet 2025-02-06 11:26:47 -05:00
parent fe011d89e2
commit 17b8d73978
No known key found for this signature in database
GPG key ID: 3E2953A359E7E7BD

View file

@ -69,9 +69,18 @@ class PictogramAdmin(admin.ModelAdmin):
list_filter = ("category",) list_filter = ("category",)
class TeamAdmin(admin.ModelAdmin): class TeamAdmin(CSVExportMixin, admin.ModelAdmin):
csv_fields = [
"pk",
"name",
"users_count",
]
list_display = list(admin.ModelAdmin.list_display) + ["users_count"]
filter_horizontal = ("users",) filter_horizontal = ("users",)
def users_count(self, obj):
return obj.users.count()
class UserAdmin(CSVExportMixin, UserAdminBase): class UserAdmin(CSVExportMixin, UserAdminBase):
csv_fields = [ csv_fields = [
@ -83,13 +92,17 @@ class UserAdmin(CSVExportMixin, UserAdminBase):
"last_login", "last_login",
"date_joined", "date_joined",
"maps_count", "maps_count",
"user_teams",
] ]
list_display = list(UserAdminBase.list_display) + ["maps_count"] list_display = list(UserAdminBase.list_display) + ["maps_count", "user_teams"]
def maps_count(self, obj): def maps_count(self, obj):
# owner maps + maps as editor # owner maps + maps as editor
return obj.owned_maps.count() + obj.map_set.count() return obj.owned_maps.count() + obj.map_set.count()
def user_teams(self, obj):
return " ; ".join(obj.teams.values_list("name", flat=True))
admin.site.register(Map, MapAdmin) admin.site.register(Map, MapAdmin)
admin.site.register(DataLayer) admin.site.register(DataLayer)