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
« 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
4from benefits.core import models
6from .forms import TransitAgencyGroupForm
7from .mixins import StaffPermissionMixin
10@admin.register(models.TransitAgency)
11class TransitAgencyAdmin(StaffPermissionMixin, admin.ModelAdmin):
12 def get_exclude(self, request, obj=None):
13 fields = []
15 if not request.user.is_superuser:
16 fields.extend(
17 [
18 "sso_domain",
19 ]
20 )
22 if not obj:
23 # hide these fields when creating a new agency
24 fields.extend(["customer_service_group"])
26 return fields or super().get_exclude(request, obj)
28 def save_model(self, request, obj, form, change):
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()
38 super().save_model(request, obj, form, change)
41@admin.register(models.TransitAgencyGroup)
42class TransitAgencyGroupAdmin(StaffPermissionMixin, admin.ModelAdmin):
43 form = TransitAgencyGroupForm