FossilRepo

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

Keyboard Shortcuts

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