mirror of
https://github.com/umap-project/umap.git
synced 2025-04-28 19:42:36 +02:00
parent
010329dce5
commit
17b67cc5de
1 changed files with 50 additions and 1 deletions
|
@ -1,8 +1,31 @@
|
|||
import csv
|
||||
|
||||
from django.contrib.auth.admin import UserAdmin as UserAdminBase
|
||||
from django.contrib.auth.models import User
|
||||
from django.contrib.gis import admin
|
||||
from django.http import HttpResponse
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from .models import DataLayer, Licence, Map, Pictogram, Team, TileLayer
|
||||
|
||||
|
||||
class CSVExportMixin:
|
||||
actions = ["as_csv"]
|
||||
|
||||
@admin.action(description=_("CSV Export"))
|
||||
def as_csv(self, request, queryset):
|
||||
response = HttpResponse(
|
||||
content_type="text/csv",
|
||||
headers={"Content-Disposition": 'attachment; filename="export.csv"'},
|
||||
)
|
||||
|
||||
writer = csv.writer(response)
|
||||
writer.writerow(self.csv_fields)
|
||||
for user in queryset:
|
||||
writer.writerow(getattr(user, field) for field in self.csv_fields)
|
||||
return response
|
||||
|
||||
|
||||
class TileLayerAdmin(admin.ModelAdmin):
|
||||
list_display = (
|
||||
"name",
|
||||
|
@ -11,10 +34,22 @@ class TileLayerAdmin(admin.ModelAdmin):
|
|||
list_editable = ("rank",)
|
||||
|
||||
|
||||
class MapAdmin(admin.GISModelAdmin):
|
||||
class MapAdmin(CSVExportMixin, admin.GISModelAdmin):
|
||||
search_fields = ("name",)
|
||||
autocomplete_fields = ("owner", "editors")
|
||||
list_filter = ("share_status",)
|
||||
csv_fields = (
|
||||
"pk",
|
||||
"name",
|
||||
"center",
|
||||
"zoom",
|
||||
"created_at",
|
||||
"modified_at",
|
||||
"edit_status",
|
||||
"share_status",
|
||||
"owner_id",
|
||||
"team_id",
|
||||
)
|
||||
|
||||
|
||||
class PictogramAdmin(admin.ModelAdmin):
|
||||
|
@ -30,9 +65,23 @@ class TeamAdmin(admin.ModelAdmin):
|
|||
filter_horizontal = ("users",)
|
||||
|
||||
|
||||
class UserAdmin(CSVExportMixin, UserAdminBase):
|
||||
csv_fields = [
|
||||
"pk",
|
||||
"username",
|
||||
"email",
|
||||
"first_name",
|
||||
"last_name",
|
||||
"last_login",
|
||||
"date_joined",
|
||||
]
|
||||
|
||||
|
||||
admin.site.register(Map, MapAdmin)
|
||||
admin.site.register(DataLayer)
|
||||
admin.site.register(Pictogram, PictogramAdmin)
|
||||
admin.site.register(TileLayer, TileLayerAdmin)
|
||||
admin.site.register(Licence)
|
||||
admin.site.register(Team, TeamAdmin)
|
||||
admin.site.unregister(User)
|
||||
admin.site.register(User, UserAdmin)
|
||||
|
|
Loading…
Reference in a new issue