|
|
from django.contrib import admin |
|
|
from apps.analytics.models import SearchLog, PopularSearch |
|
|
|
|
|
@admin.register(SearchLog) |
|
|
class SearchLogAdmin(admin.ModelAdmin): |
|
|
list_display = ['id', 'user', 'category', 'search_query', 'results_count', 'created_at'] |
|
|
list_filter = ['category', 'created_at'] |
|
|
search_fields = ['search_query', 'user__email'] |
|
|
readonly_fields = ['created_at', 'updated_at'] |
|
|
date_hierarchy = 'created_at' |
|
|
|
|
|
fieldsets = ( |
|
|
('Recherche', { |
|
|
'fields': ('user', 'category', 'search_query', 'filters_applied', 'results_count') |
|
|
}), |
|
|
('Interaction', { |
|
|
'fields': ('clicked_result_id', 'clicked_result_position') |
|
|
}), |
|
|
('Métadonnées', { |
|
|
'fields': ('session_id', 'ip_address', 'user_agent', 'page_url'), |
|
|
'classes': ('collapse',) |
|
|
}), |
|
|
('Timestamps', { |
|
|
'fields': ('created_at', 'updated_at'), |
|
|
'classes': ('collapse',) |
|
|
}), |
|
|
) |
|
|
|
|
|
|
|
|
@admin.register(PopularSearch) |
|
|
class PopularSearchAdmin(admin.ModelAdmin): |
|
|
list_display = ['search_query', 'category', 'search_count', 'last_searched'] |
|
|
list_filter = ['category'] |
|
|
search_fields = ['search_query'] |
|
|
ordering = ['-search_count', '-last_searched'] |
|
|
|