Coverage for modules\crm\admin.py: 100%
29 statements
« prev ^ index » next coverage.py v7.16.0, created at 2026-09-05 09:19 +0800
« prev ^ index » next coverage.py v7.16.0, created at 2026-09-05 09:19 +0800
1from django.contrib import admin
2from .models import Company, Contact, Pipeline, DealStage, Deal, Activity
4@admin.register(Company)
5class CompanyAdmin(admin.ModelAdmin):
6 list_display = ('name', 'industry', 'city', 'country', 'annual_revenue', 'tenant_id')
7 search_fields = ('name', 'domain')
8 list_filter = ('tenant_id', 'industry')
10@admin.register(Contact)
11class ContactAdmin(admin.ModelAdmin):
12 list_display = ('full_name', 'email', 'phone', 'company', 'is_primary', 'tenant_id')
13 search_fields = ('first_name', 'last_name', 'email')
14 list_filter = ('tenant_id', 'is_primary')
16@admin.register(Pipeline)
17class PipelineAdmin(admin.ModelAdmin):
18 list_display = ('name', 'is_default', 'tenant_id')
19 list_filter = ('tenant_id', 'is_default')
21@admin.register(DealStage)
22class DealStageAdmin(admin.ModelAdmin):
23 list_display = ('name', 'pipeline', 'order', 'probability', 'color', 'tenant_id')
24 list_filter = ('tenant_id', 'pipeline')
26@admin.register(Deal)
27class DealAdmin(admin.ModelAdmin):
28 list_display = ('title', 'value', 'currency', 'status', 'stage', 'company', 'contact', 'tenant_id')
29 list_filter = ('status', 'stage', 'tenant_id')
30 search_fields = ('title',)
32@admin.register(Activity)
33class ActivityAdmin(admin.ModelAdmin):
34 list_display = ('subject', 'activity_type', 'target_type', 'due_date', 'assigned_to', 'tenant_id')
35 list_filter = ('activity_type', 'target_type', 'tenant_id')