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

25 statements  

« prev     ^ index     » next       coverage.py v7.13.0, created at 2025-12-22 19:08 +0000

1from django.contrib import admin 

2from django.contrib.auth.models import Group 

3 

4from benefits.core import models 

5from .mixins import StaffPermissionMixin, SuperuserPermissionMixin 

6 

7 

8@admin.register(models.EligibilityApiConfig) 

9class EligibilityApiConfigAdmin(SuperuserPermissionMixin, admin.ModelAdmin): 

10 pass 

11 

12 

13@admin.register(models.TransitAgency) 

14class TransitAgencyAdmin(StaffPermissionMixin, admin.ModelAdmin): 

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

16 fields = [] 

17 

18 if not request.user.is_superuser: 

19 fields.extend( 

20 [ 

21 "sso_domain", 

22 ] 

23 ) 

24 

25 if not obj: 

26 # hide these fields when creating a new agency 

27 fields.extend(["customer_service_group"]) 

28 

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

30 

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

32 

33 if not change: 

34 cs_group_name = obj.customer_service_group_name 

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

36 obj.customer_service_group = customer_service_group 

37 elif "short_name" in form.changed_data: 

38 obj.customer_service_group.name = obj.customer_service_group_name 

39 obj.customer_service_group.save() 

40 

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