From ee01b5af179f39307ce833b4efd2ac42c02b8d48 Mon Sep 17 00:00:00 2001 From: George Silva Date: Mon, 21 Oct 2024 16:13:09 -0300 Subject: [PATCH] improvements to admin --- src/planscape/datasets/admin.py | 38 ++++++++++++++++++++++++++++ src/planscape/datasets/forms.py | 6 ++++- src/planscape/organizations/admin.py | 3 +++ 3 files changed, 46 insertions(+), 1 deletion(-) diff --git a/src/planscape/datasets/admin.py b/src/planscape/datasets/admin.py index a81e04493..fe01f30d8 100644 --- a/src/planscape/datasets/admin.py +++ b/src/planscape/datasets/admin.py @@ -8,6 +8,16 @@ class CategoryAdmin(TreeAdmin): form = CategoryAdminForm search_fields = ["name"] + list_display = ("id", "name", "order", "dataset") + + def get_changeform_initial_data(self, request): + return {"created_by": request.user} + + def get_form(self, request, obj=None, change=False, **kwargs): + form = super().get_form(request, obj, change, **kwargs) + if not change: + form.created_by = request.user + return form class DatasetAdmin(admin.ModelAdmin): @@ -15,6 +25,17 @@ class DatasetAdmin(admin.ModelAdmin): search_fields = ["organization__name__icontains", "name"] autocomplete_fields = ["organization"] form = DatasetAdminForm + list_display = ("id", "name", "visibility", "organization") + list_display_links = ( + "id", + "name", + ) + + def get_form(self, request, obj=None, change=False, **kwargs): + form = super().get_form(request, obj, change, **kwargs) + if not change: + form.created_by = request.user + return form class DataLayerAdmin(admin.ModelAdmin): @@ -25,6 +46,23 @@ class DataLayerAdmin(admin.ModelAdmin): "name", ] autocomplete_fields = ["organization", "created_by", "dataset", "category"] + list_display = ( + "id", + "name", + "status", + "type", + "geometry_type", + "dataset", + "category", + "organization", + ) + list_display_links = ( + "id", + "name", + "status", + "type", + "geometry_type", + ) admin.site.register(Dataset, DatasetAdmin) diff --git a/src/planscape/datasets/forms.py b/src/planscape/datasets/forms.py index 80230d9bf..c55834b96 100644 --- a/src/planscape/datasets/forms.py +++ b/src/planscape/datasets/forms.py @@ -23,12 +23,16 @@ class Meta: class CategoryAdminForm(movenodeform_factory(Category)): order = forms.IntegerField(required=False) + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.fields["created_by"].disabled = True + class Meta: model = Category fields = ( "organization", - "created_by", "dataset", + "created_by", "name", "order", ) diff --git a/src/planscape/organizations/admin.py b/src/planscape/organizations/admin.py index 5a014ae80..4647d80d8 100644 --- a/src/planscape/organizations/admin.py +++ b/src/planscape/organizations/admin.py @@ -4,6 +4,9 @@ class OrganizationAdmin(admin.ModelAdmin): search_fields = ["name"] + list_display = ("id", "name", "type") + list_display_links = ("id", "name") + list_filter = ("type",) admin.site.register(Organization, OrganizationAdmin)