60 lines
2.2 KiB
Python
60 lines
2.2 KiB
Python
from django.contrib import admin
|
|
|
|
from .models import Business, BusinessMembership, Customer, Feedback, Job, JobMedia, ProofCard, ReviewRequest
|
|
|
|
|
|
class JobMediaInline(admin.TabularInline):
|
|
model = JobMedia
|
|
extra = 0
|
|
|
|
|
|
@admin.register(Business)
|
|
class BusinessAdmin(admin.ModelAdmin):
|
|
list_display = ('name', 'industry', 'primary_city', 'primary_state', 'is_active')
|
|
list_filter = ('industry', 'is_active')
|
|
search_fields = ('name', 'slug', 'primary_city')
|
|
prepopulated_fields = {'slug': ('name',)}
|
|
|
|
|
|
@admin.register(BusinessMembership)
|
|
class BusinessMembershipAdmin(admin.ModelAdmin):
|
|
list_display = ('user', 'business', 'role', 'created_at')
|
|
list_filter = ('role', 'business')
|
|
search_fields = ('user__email', 'user__first_name', 'user__last_name', 'business__name')
|
|
|
|
|
|
@admin.register(Customer)
|
|
class CustomerAdmin(admin.ModelAdmin):
|
|
list_display = ('full_name', 'business', 'city', 'state', 'email', 'phone')
|
|
list_filter = ('business', 'state')
|
|
search_fields = ('full_name', 'email', 'phone')
|
|
|
|
|
|
@admin.register(Job)
|
|
class JobAdmin(admin.ModelAdmin):
|
|
list_display = ('service_type', 'business', 'customer', 'city', 'state', 'completed_at', 'status')
|
|
list_filter = ('business', 'status', 'state', 'completed_at')
|
|
search_fields = ('service_type', 'customer__full_name', 'technician_name')
|
|
inlines = [JobMediaInline]
|
|
|
|
|
|
@admin.register(ReviewRequest)
|
|
class ReviewRequestAdmin(admin.ModelAdmin):
|
|
list_display = ('job', 'channel', 'status', 'sent_at', 'reviewed_at')
|
|
list_filter = ('channel', 'status')
|
|
search_fields = ('job__customer__full_name', 'job__service_type')
|
|
|
|
|
|
@admin.register(Feedback)
|
|
class FeedbackAdmin(admin.ModelAdmin):
|
|
list_display = ('review_request', 'experience', 'rating', 'follow_up_required', 'is_public_approved', 'created_at')
|
|
list_filter = ('experience', 'follow_up_required', 'is_public_approved')
|
|
search_fields = ('review_request__job__customer__full_name', 'testimonial')
|
|
|
|
|
|
@admin.register(ProofCard)
|
|
class ProofCardAdmin(admin.ModelAdmin):
|
|
list_display = ('job', 'customer_display_name', 'status', 'is_featured', 'rating', 'published_at')
|
|
list_filter = ('status', 'is_featured')
|
|
search_fields = ('customer_display_name', 'job__service_type', 'testimonial_quote')
|