FossilRepo

fossilrepo / core / admin.py
Blame History Raw 27 lines
1
from django.contrib import admin
2
from import_export.admin import ImportExportMixin
3
4
5
class BaseCoreAdmin(ImportExportMixin, admin.ModelAdmin):
6
"""Base admin class for all Fossilrepo models. Provides audit field handling and import/export."""
7
8
def get_queryset(self, request):
9
if hasattr(self.model, "all_objects"):
10
return self.model.all_objects.all()
11
return super().get_queryset(request)
12
13
def get_readonly_fields(self, request, obj=None):
14
base = tuple(self.readonly_fields or ())
15
return base + ("version", "created_at", "created_by", "updated_at", "updated_by", "deleted_at", "deleted_by")
16
17
def get_raw_id_fields(self, request):
18
base = tuple(self.raw_id_fields or ())
19
return base + ("created_by", "updated_by", "deleted_by")
20
21
def save_model(self, request, obj, form, change):
22
if hasattr(obj, "created_by") and not obj.created_by:
23
obj.created_by = request.user
24
if hasattr(obj, "updated_by"):
25
obj.updated_by = request.user
26
super().save_model(request, obj, form, change)
27

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button