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

1from django.contrib import admin 

2from .models import Company, Contact, Pipeline, DealStage, Deal, Activity 

3 

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') 

9 

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') 

15 

16@admin.register(Pipeline) 

17class PipelineAdmin(admin.ModelAdmin): 

18 list_display = ('name', 'is_default', 'tenant_id') 

19 list_filter = ('tenant_id', 'is_default') 

20 

21@admin.register(DealStage) 

22class DealStageAdmin(admin.ModelAdmin): 

23 list_display = ('name', 'pipeline', 'order', 'probability', 'color', 'tenant_id') 

24 list_filter = ('tenant_id', 'pipeline') 

25 

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',) 

31 

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')