Coverage for benefits / core / admin / transit.py: 100%

26 statements  

« prev     ^ index     » next       coverage.py v7.13.5, created at 2026-04-01 15:39 +0000

1from django.contrib import admin 

2from django.contrib.auth.models import Group 

3 

4from benefits.core import models 

5 

6from .forms import TransitAgencyGroupForm 

7from .mixins import StaffPermissionMixin 

8 

9 

10@admin.register(models.TransitAgency) 

11class TransitAgencyAdmin(StaffPermissionMixin, admin.ModelAdmin): 

12 def get_exclude(self, request, obj=None): 

13 fields = [] 

14 

15 if not request.user.is_superuser: 

16 fields.extend( 

17 [ 

18 "sso_domain", 

19 ] 

20 ) 

21 

22 if not obj: 

23 # hide these fields when creating a new agency 

24 fields.extend(["customer_service_group"]) 

25 

26 return fields or super().get_exclude(request, obj) 

27 

28 def save_model(self, request, obj, form, change): 

29 

30 if not change: 

31 cs_group_name = obj.customer_service_group_name 

32 customer_service_group = Group.objects.create(name=cs_group_name) 

33 obj.customer_service_group = customer_service_group 

34 elif "short_name" in form.changed_data: 

35 obj.customer_service_group.name = obj.customer_service_group_name 

36 obj.customer_service_group.save() 

37 

38 super().save_model(request, obj, form, change) 

39 

40 

41@admin.register(models.TransitAgencyGroup) 

42class TransitAgencyGroupAdmin(StaffPermissionMixin, admin.ModelAdmin): 

43 form = TransitAgencyGroupForm