summaryrefslogtreecommitdiff
path: root/ishtar_common/admin.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/admin.py')
-rw-r--r--ishtar_common/admin.py48
1 files changed, 35 insertions, 13 deletions
diff --git a/ishtar_common/admin.py b/ishtar_common/admin.py
index 76b585d69..cfd06bea5 100644
--- a/ishtar_common/admin.py
+++ b/ishtar_common/admin.py
@@ -442,7 +442,22 @@ class ChangeParentAdmin:
},
)
-class HistorizedObjectAdmin(admin.ModelAdmin):
+
+class ImportedObjectAdmin(admin.ModelAdmin):
+ def get_readonly_fields(self, request, obj=None):
+ fields = tuple(super().get_readonly_fields(request, obj) or [])
+ if obj: # editing an existing object
+ return fields + tuple(["imports"])
+ return fields
+
+ def get_exclude(self, request, obj=None):
+ fields = tuple(super().get_exclude(request, obj) or [])
+ if not obj:
+ return fields + tuple(["imports"])
+ return fields
+
+
+class HistorizedObjectAdmin(ImportedObjectAdmin):
readonly_fields = [
"history_creator",
"history_modifier",
@@ -456,16 +471,6 @@ class HistorizedObjectAdmin(admin.ModelAdmin):
obj.history_modifier = request.user
obj.save()
- def get_readonly_fields(self, request, obj=None):
- if obj: # editing an existing object
- return tuple(self.readonly_fields or []) + tuple(["imports"])
- return self.readonly_fields
-
- def get_exclude(self, request, obj=None):
- if not obj:
- return tuple(self.exclude or []) + tuple(["imports"])
- return self.exclude
-
class MyGroupAdmin(GroupAdmin):
class Media:
@@ -1308,7 +1313,7 @@ class AreaAdmin(CreateDepartmentActionAdmin):
search_fields = ("label", "reference")
list_filter = ("parent",)
model = models.Area
- autocomplete_fields = ["towns"]
+ autocomplete_fields = ["towns", "parent"]
admin_site.register(models.Area, AreaAdmin)
@@ -2477,7 +2482,7 @@ class GeoVectorDataForm(forms.ModelForm):
return self.cleaned_data
-class GeoVectorDataAdmin(admin.ModelAdmin):
+class GeoVectorDataAdmin(ImportedObjectAdmin):
model = models_common.GeoVectorData
search_fields = ["name"]
list_display = ["name", "origin", "data_type", "provider", "source_content_type"]
@@ -2485,3 +2490,20 @@ class GeoVectorDataAdmin(admin.ModelAdmin):
admin_site.register(models_common.GeoVectorData, GeoVectorDataAdmin)
+
+
+class GeoDataItem(admin.ModelAdmin):
+ autocomplete_fields = ["main_geodata", "geodata"]
+
+
+class MainGeoDataItem(GeoDataItem):
+ def get_exclude(self, request, obj=None):
+ exclude = super().get_exclude(request, obj)
+ return tuple(exclude or []) + tuple([
+ "x", "y", "z",
+ "estimated_error_x", "estimated_error_y", "estimated_error_z",
+ "spatial_reference_system",
+ "point", "point_2d", "point_source", "point_source_item",
+ "multi_polygon", "multi_polygon_source", "multi_polygon_source_item",
+ ])
+