2024-03-25 09:42:15 +00:00
|
|
|
from django.contrib import admin
|
|
|
|
from django.forms import ModelForm, Textarea
|
|
|
|
from .models import Fact
|
|
|
|
from .forms import FactForm
|
|
|
|
|
|
|
|
class FactAdmin(admin.ModelAdmin):
|
2024-06-08 17:26:35 +00:00
|
|
|
list_display = ('name', 'value', 'ftype', 'create_date', 'change_date', 'room', 'author', 'popularity')
|
|
|
|
list_filter = ('ftype', 'create_date', 'author', 'room') # Fields to add filters for
|
|
|
|
search_fields = ('name', 'value', 'room')
|
2024-03-25 09:42:15 +00:00
|
|
|
form = FactForm
|
|
|
|
def get_form(self, request, obj=None, **kwargs):
|
|
|
|
# Check if an instance is being added (obj is None) to exclude 'author_id' field
|
|
|
|
if obj is None: # This means a new instance is being created
|
|
|
|
self.exclude = ('author',)
|
|
|
|
else: # Editing an existing instance
|
|
|
|
self.exclude = []
|
|
|
|
form = super(FactAdmin, self).get_form(request, obj, **kwargs)
|
|
|
|
return form
|
|
|
|
|
|
|
|
def save_model(self, request, obj, form, change):
|
|
|
|
if not obj.pk: # Indicates a new instance
|
|
|
|
# Automatically set 'author_id' to current user for new instances
|
|
|
|
obj.author_id = request.user.id
|
|
|
|
super().save_model(request, obj, form, change)
|
|
|
|
|
|
|
|
admin.site.register(Fact, FactAdmin)
|