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

22 statements  

« prev     ^ index     » next       coverage.py v7.13.4, created at 2026-02-13 19:35 +0000

1from django.contrib import admin 

2from django.contrib.auth.models import Group 

3 

4from benefits.core import models 

5 

6from .mixins import StaffPermissionMixin 

7 

8 

9@admin.register(models.TransitAgency) 

10class TransitAgencyAdmin(StaffPermissionMixin, admin.ModelAdmin): 

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

12 fields = [] 

13 

14 if not request.user.is_superuser: 

15 fields.extend( 

16 [ 

17 "sso_domain", 

18 ] 

19 ) 

20 

21 if not obj: 

22 # hide these fields when creating a new agency 

23 fields.extend(["customer_service_group"]) 

24 

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

26 

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

28 

29 if not change: 

30 cs_group_name = obj.customer_service_group_name 

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

32 obj.customer_service_group = customer_service_group 

33 elif "short_name" in form.changed_data: 

34 obj.customer_service_group.name = obj.customer_service_group_name 

35 obj.customer_service_group.save() 

36 

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