Skip to content

Commit 4d6b102

Browse files
committed
chore: define an initial 'INIT group' model
1 parent 6ff7441 commit 4d6b102

3 files changed

Lines changed: 64 additions & 1 deletion

File tree

benefits/enrollment_init/admin.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,8 @@
77
@admin.register(models.InitConfig)
88
class InitConfigAdmin(StaffPermissionMixin, admin.ModelAdmin):
99
pass
10+
11+
12+
@admin.register(models.InitGroup)
13+
class InitGroupAdmin(StaffPermissionMixin, admin.ModelAdmin):
14+
pass
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# Generated by Django 5.2.17 on 2026-09-08 16:05
2+
3+
import django.db.models.deletion
4+
from django.db import migrations, models
5+
6+
7+
class Migration(migrations.Migration):
8+
9+
dependencies = [
10+
("core", "0008_alter_enrollmentflow_system_name"),
11+
("enrollment_init", "0001_initial"),
12+
]
13+
14+
operations = [
15+
migrations.CreateModel(
16+
name="InitGroup",
17+
fields=[
18+
(
19+
"enrollmentgroup_ptr",
20+
models.OneToOneField(
21+
auto_created=True,
22+
on_delete=django.db.models.deletion.CASCADE,
23+
parent_link=True,
24+
primary_key=True,
25+
serialize=False,
26+
to="core.enrollmentgroup",
27+
),
28+
),
29+
(
30+
"group_id",
31+
models.IntegerField(
32+
blank=True, default=None, help_text="The ID of the INIT FareCategory for user enrollment."
33+
),
34+
),
35+
],
36+
options={
37+
"verbose_name": "INIT group",
38+
},
39+
bases=("core.enrollmentgroup",),
40+
),
41+
]

benefits/enrollment_init/models.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
1+
import logging
2+
13
from django.core.exceptions import ValidationError
24
from django.db import models
35

4-
from benefits.core.models import SecretNameField, TransitProcessorConfig
6+
from benefits.core.models import EnrollmentGroup, SecretNameField, TransitProcessorConfig
7+
8+
logger = logging.getLogger(__name__)
59

610

711
class InitConfig(TransitProcessorConfig):
@@ -48,3 +52,16 @@ def clean(self):
4852

4953
class Meta:
5054
verbose_name = "INIT config"
55+
56+
57+
class InitGroup(EnrollmentGroup):
58+
group_id = models.IntegerField(default=None, blank=True, help_text="The ID of the INIT FareCategory for user enrollment.")
59+
60+
@staticmethod
61+
def by_id(id):
62+
"""Get an INIT FareCategory instance by its ID."""
63+
logger.debug(f"Get {InitGroup.__name__} by id: {id}")
64+
return InitGroup.objects.get(id=id)
65+
66+
class Meta:
67+
verbose_name = "INIT group"

0 commit comments

Comments
 (0)