56 lines
2.1 KiB
Python
56 lines
2.1 KiB
Python
from django.contrib import admin
|
|
from .models import Contact, ContactGroup, ContactInteraction, ContactImport
|
|
|
|
|
|
@admin.register(ContactGroup)
|
|
class ContactGroupAdmin(admin.ModelAdmin):
|
|
list_display = ('name', 'user', 'created_at')
|
|
list_filter = ('created_at',)
|
|
search_fields = ('name', 'user__email')
|
|
raw_id_fields = ('user',)
|
|
|
|
|
|
@admin.register(Contact)
|
|
class ContactAdmin(admin.ModelAdmin):
|
|
list_display = ('first_name', 'last_name', 'email', 'company', 'user', 'is_favorite', 'is_blocked', 'created_at')
|
|
list_filter = ('is_favorite', 'is_blocked', 'company', 'city', 'country', 'created_at')
|
|
search_fields = ('first_name', 'last_name', 'email', 'company', 'phone')
|
|
raw_id_fields = ('user', 'group')
|
|
date_hierarchy = 'created_at'
|
|
|
|
fieldsets = (
|
|
('Basic Information', {
|
|
'fields': ('user', 'group', 'first_name', 'last_name', 'email', 'phone')
|
|
}),
|
|
('Work Information', {
|
|
'fields': ('company', 'job_title', 'website')
|
|
}),
|
|
('Address', {
|
|
'fields': ('address_line1', 'address_line2', 'city', 'state', 'postal_code', 'country')
|
|
}),
|
|
('Social Media', {
|
|
'fields': ('linkedin', 'twitter', 'facebook')
|
|
}),
|
|
('Additional', {
|
|
'fields': ('avatar', 'notes', 'birthday', 'is_favorite', 'is_blocked')
|
|
}),
|
|
)
|
|
|
|
|
|
@admin.register(ContactInteraction)
|
|
class ContactInteractionAdmin(admin.ModelAdmin):
|
|
list_display = ('contact', 'interaction_type', 'subject', 'created_by', 'date')
|
|
list_filter = ('interaction_type', 'date')
|
|
search_fields = ('contact__first_name', 'contact__last_name', 'subject')
|
|
raw_id_fields = ('contact', 'created_by')
|
|
date_hierarchy = 'date'
|
|
|
|
|
|
@admin.register(ContactImport)
|
|
class ContactImportAdmin(admin.ModelAdmin):
|
|
list_display = ('filename', 'user', 'status', 'total_contacts', 'imported_contacts', 'failed_contacts', 'created_at')
|
|
list_filter = ('status', 'created_at')
|
|
search_fields = ('filename', 'user__email')
|
|
raw_id_fields = ('user',)
|
|
readonly_fields = ('status', 'total_contacts', 'imported_contacts', 'failed_contacts', 'error_log', 'created_at', 'completed_at')
|