36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
from django.contrib import admin
|
|
from .models import SiteSettings, Visit
|
|
|
|
@admin.register(SiteSettings)
|
|
class SiteSettingsAdmin(admin.ModelAdmin):
|
|
# On empêche d'ajouter une nouvelle config s'il en existe déjà une
|
|
def has_add_permission(self, request):
|
|
return not SiteSettings.objects.exists()
|
|
|
|
# On empêche de supprimer la config (trop dangereux)
|
|
def has_delete_permission(self, request, obj=None):
|
|
return False
|
|
|
|
# Petite astuce visuelle pour l'admin
|
|
fieldsets = (
|
|
('Général', {
|
|
'fields': ('site_name', 'site_logo')
|
|
}),
|
|
('Réseaux Sociaux', {
|
|
'fields': ('facebook_url', 'twitter_url', 'youtube_url'),
|
|
'classes': ('collapse',) # Cache cette section par défaut pour alléger
|
|
}),
|
|
('Contact', {
|
|
'fields': ('contact_email',)
|
|
}),
|
|
('Blog', {
|
|
'fields': ('blog_title', 'blog_description')
|
|
}),
|
|
)
|
|
|
|
|
|
@admin.register(Visit)
|
|
class VisitAdmin(admin.ModelAdmin):
|
|
list_display = ("date", "visitor_id", "user", "source", "country", "first_seen", "last_seen")
|
|
list_filter = ("date", "country", "source")
|
|
search_fields = ("visitor_id", "referrer", "utm_source", "utm_medium", "utm_campaign")
|