|
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
|
|