Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,10 @@
"mhutchie.git-graph",
"monosans.djlint",
"mrorz.language-gettext",
"ms-python.python",
"ms-python.black-formatter",
"ms-python.isort",
"ms-python.flake8",
"ms-python.python",
"qwtel.sqlite-viewer",
"tamasfe.even-better-toml"
]
Expand Down
2 changes: 2 additions & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# sort imports with isort
6e1d32e50a54d1436de91383c3f003fb373ce49c
4 changes: 2 additions & 2 deletions .github/workflows/check-metadata.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import json
import sys
from datetime import datetime, timezone
from functools import cache
import json
from pathlib import Path
import sys

import requests

Expand Down
18 changes: 12 additions & 6 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,19 +39,25 @@ repos:
types:
- python

- repo: https://github.com/PyCQA/flake8
- repo: https://github.com/pycqa/bandit
rev: 1.8.6
hooks:
- id: bandit
args: ["-ll"]
files: .py$

- repo: https://github.com/pycqa/flake8
rev: 7.3.0
hooks:
- id: flake8
types:
- python

- repo: https://github.com/pycqa/bandit
rev: 1.8.6
- repo: https://github.com/pycqa/isort
rev: 7.0.0
hooks:
- id: bandit
args: ["-ll"]
files: .py$
- id: isort
args: ["--profile", "black"]

# esbenp.prettier-vscode defaults to using prettier@2.8.8. this mirror is the closest equivalent
# another option would be to 'npm install prettier' explicitly in the Dockerfile, as the VS Code plugin will use it
Expand Down
2 changes: 1 addition & 1 deletion benefits/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from importlib.metadata import version, PackageNotFoundError
from importlib.metadata import PackageNotFoundError, version

try:
__version__ = version("benefits")
Expand Down
7 changes: 3 additions & 4 deletions benefits/admin.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
from django.conf import settings
from django.contrib.admin import AdminSite

from django.contrib.admin.forms import AdminAuthenticationForm
from django.contrib.auth.models import Group
from django.template.response import TemplateResponse
from django.utils.decorators import method_decorator, decorator_from_middleware
from django.utils.decorators import decorator_from_middleware, method_decorator

from benefits.core.middleware import RecaptchaEnabled
from benefits.core.models import TransitAgency
from benefits.core import session
from benefits.core.middleware import RecaptchaEnabled
from benefits.core.mixins import ValidateRecaptchaMixin
from benefits.core.models import TransitAgency


class BenefitsAdminLoginForm(ValidateRecaptchaMixin, AdminAuthenticationForm):
Expand Down
4 changes: 2 additions & 2 deletions benefits/core/admin/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
"""

from .common import PemDataAdmin
from .enrollment import EnrollmentEventAdmin, SortableEnrollmentFlowAdmin
from .mixins import (
ProdReadOnlyPermissionMixin,
StaffPermissionMixin,
Expand All @@ -11,13 +12,12 @@
is_staff_member_or_superuser,
)
from .transit import TransitAgencyAdmin
from .enrollment import EnrollmentEventAdmin, SortableEnrollmentFlowAdmin
from .users import (
GOOGLE_USER_INFO_URL,
GroupAdmin,
UserAdmin,
add_staff_user_to_group,
add_google_sso_userinfo,
add_staff_user_to_group,
pre_login_user,
)

Expand Down
1 change: 1 addition & 0 deletions benefits/core/admin/common.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from django.contrib import admin

from benefits.core import models

from .mixins import SuperuserPermissionMixin


Expand Down
6 changes: 3 additions & 3 deletions benefits/core/admin/enrollment.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
from adminsortable2.admin import SortableAdminMixin
from django import forms
from django.core.exceptions import ValidationError
from django.contrib import admin

from adminsortable2.admin import SortableAdminMixin
from django.core.exceptions import ValidationError

from benefits.core import models

from .mixins import ProdReadOnlyPermissionMixin, StaffPermissionMixin, SuperuserPermissionMixin


Expand Down
1 change: 1 addition & 0 deletions benefits/core/admin/transit.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
from django.contrib.auth.models import Group

from benefits.core import models

from .mixins import StaffPermissionMixin, SuperuserPermissionMixin


Expand Down
6 changes: 2 additions & 4 deletions benefits/core/admin/users.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
import logging

import requests
from django.conf import settings
from django.contrib import admin
from django.contrib.auth.models import Group, User
from django.contrib.auth.admin import GroupAdmin as BaseGroupAdmin, UserAdmin as BaseUserAdmin

import requests
from django.contrib.auth.models import Group, User

from benefits.core.admin.mixins import StaffPermissionMixin


logger = logging.getLogger(__name__)


Expand Down
2 changes: 1 addition & 1 deletion benefits/core/admin/views.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from urllib.parse import quote

from django.contrib.auth.views import PasswordResetView, PasswordResetDoneView, PasswordResetConfirmView
from django.contrib import messages
from django.contrib.auth.views import PasswordResetConfirmView, PasswordResetDoneView, PasswordResetView
from django.urls import reverse_lazy

from benefits.core.admin.forms import BenefitsPasswordResetForm, BenefitsSetPasswordForm
Expand Down
4 changes: 2 additions & 2 deletions benefits/core/analytics.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@
import time
import uuid

from django.conf import settings
import requests
from django.conf import settings

from benefits import VERSION
from . import models, session

from . import models, session

logger = logging.getLogger(__name__)

Expand Down
2 changes: 1 addition & 1 deletion benefits/core/context/agency.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from dataclasses import dataclass, asdict
from dataclasses import asdict, dataclass

from django.db import models
from django.utils.translation import gettext_lazy as _
Expand Down
2 changes: 1 addition & 1 deletion benefits/core/middleware.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@
from django.views import i18n

from benefits.routes import routes
from . import analytics, recaptcha, session

from . import analytics, recaptcha, session

logger = logging.getLogger(__name__)

Expand Down
5 changes: 3 additions & 2 deletions benefits/core/migrations/0001_initial.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
# Generated by Django 5.0.1 on 2024-02-06 18:09

import benefits.core.models
import benefits.secrets
import django.db.models.deletion
from django.db import migrations, models

import benefits.core.models
import benefits.secrets


class Migration(migrations.Migration):

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
# Generated by Django 5.0.2 on 2024-03-07 21:38

from django.db import migrations, models

import benefits.core.models
import benefits.secrets
from django.db import migrations, models


class Migration(migrations.Migration):
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
# Generated by Django 5.0.3 on 2024-05-13 19:57

from django.db import migrations

import benefits.core.models
import benefits.secrets
from django.db import migrations


class Migration(migrations.Migration):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

from django.db import migrations, models

from benefits.core.migrations import create_all_permissions
import benefits.core.models
import benefits.secrets
from benefits.core.migrations import create_all_permissions


def update_permissions(apps, schema_editor):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

from django.db import migrations, models

from benefits.core.migrations import create_all_permissions
import benefits.core.models
import benefits.secrets
from benefits.core.migrations import create_all_permissions


def update_permissions(apps, schema_editor):
Expand Down
3 changes: 2 additions & 1 deletion benefits/core/migrations/0026_enrollmentevent.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
# Generated by Django 5.1 on 2024-09-13 04:55

import uuid
from django.db import migrations, models

import django.db.models.deletion
import django.utils.timezone
from django.db import migrations, models


class Migration(migrations.Migration):
Expand Down
3 changes: 2 additions & 1 deletion benefits/core/migrations/0033_pemdata_helptext.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
# Generated by Django 5.1.4 on 2025-01-03 01:59

from django.db import migrations, models

import benefits.core.models.common
import benefits.secrets
from django.db import migrations, models


class Migration(migrations.Migration):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import django.db.models.deletion
from django.db import migrations, models

from benefits.secrets import get_secret_by_name


Expand Down
3 changes: 2 additions & 1 deletion benefits/core/migrations/0046_littlepayconfig.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
# Generated by Django 5.1.7 on 2025-04-18 13:52

from django.db import migrations, models

import benefits.core.models.common
import benefits.secrets
from django.db import migrations, models


def migrate_littlepay_config(apps, schema_editor):
Expand Down
5 changes: 3 additions & 2 deletions benefits/core/migrations/0047_switchioconfig.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
# Generated by Django 5.1.7 on 2025-04-24 17:57

import benefits.core.models.common
import benefits.secrets
import django.db.models.deletion
from django.db import migrations, models

import benefits.core.models.common
import benefits.secrets


class Migration(migrations.Migration):

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
# Generated by Django 5.2.7 on 2025-10-30 15:22

import benefits.core.models.transit
from django.db import migrations, models

import benefits.core.models.transit


class Migration(migrations.Migration):

Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
# Generated by Django 5.2.7 on 2025-10-08 17:40

import benefits.core.models.common
import benefits.secrets
import django.db.models.deletion
from django.db import migrations, models

import benefits.core.models.common
import benefits.secrets


def migrate_agency_data(apps, schema_editor):
TransitAgency = apps.get_model("core", "TransitAgency")
Expand Down
12 changes: 3 additions & 9 deletions benefits/core/models/__init__.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,6 @@
from .common import template_path, SecretNameField, PemData, Environment
from .transit import (
agency_logo,
CardSchemes,
TransitProcessorConfig,
EligibilityApiConfig,
TransitAgency,
)
from .enrollment import EnrollmentMethods, EligibilityApiVerificationRequest, EnrollmentFlow, EnrollmentGroup, EnrollmentEvent
from .common import Environment, PemData, SecretNameField, template_path
from .enrollment import EligibilityApiVerificationRequest, EnrollmentEvent, EnrollmentFlow, EnrollmentGroup, EnrollmentMethods
from .transit import CardSchemes, EligibilityApiConfig, TransitAgency, TransitProcessorConfig, agency_logo

__all__ = [
"agency_logo",
Expand Down
5 changes: 2 additions & 3 deletions benefits/core/models/common.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
from functools import cached_property
import logging
from functools import cached_property
from pathlib import Path

import requests
from django import template
from django.conf import settings
from django.db import models

import requests

from benefits.secrets import NAME_VALIDATOR, get_secret_by_name

logger = logging.getLogger(__name__)
Expand Down
7 changes: 4 additions & 3 deletions benefits/core/models/enrollment.py
Original file line number Diff line number Diff line change
@@ -1,19 +1,20 @@
import logging
import uuid

from cdt_identity.models import IdentityGatewayConfig, ClaimsVerificationRequest
from cdt_identity.models import ClaimsVerificationRequest, IdentityGatewayConfig
from django.core.exceptions import ValidationError
from django.db import models
from django.utils import timezone
from multiselectfield import MultiSelectField

from .common import PemData, SecretNameField, template_path
from .transit import TransitAgency
from benefits.core import context as core_context
from benefits.eligibility import context as eligibility_context
from benefits.enrollment import context as enrollment_context
from benefits.in_person import context as in_person_context

from .common import PemData, SecretNameField, template_path
from .transit import TransitAgency

logger = logging.getLogger(__name__)


Expand Down
Loading
Loading