feat: Implement MFA authentication, add ride statistics model, and update various services, APIs, and tests across the application.

This commit is contained in:
pacnpal
2025-12-28 17:32:53 -05:00
parent aa56c46c27
commit c95f99ca10
452 changed files with 7948 additions and 6073 deletions

View File

@@ -38,6 +38,8 @@ Code Quality:
- Maximum complexity: 10 (McCabe)
"""
import logging
from django.contrib.auth.mixins import LoginRequiredMixin
from django.db.models import Count, Q
from django.http import Http404, HttpRequest, HttpResponse
@@ -45,6 +47,7 @@ from django.shortcuts import get_object_or_404, render
from django.urls import reverse
from django.views.generic import CreateView, DetailView, ListView, UpdateView
from apps.core.logging import log_business_event, log_exception
from apps.moderation.mixins import EditSubmissionMixin, HistoryMixin
from apps.parks.models import Park
@@ -56,10 +59,6 @@ from .models.rankings import RankingSnapshot, RideRanking
from .models.rides import Ride, RideModel
from .services.ranking_service import RideRankingService
import logging
from apps.core.logging import log_exception, log_business_event
logger = logging.getLogger(__name__)
@@ -750,6 +749,7 @@ def ranking_comparisons(request: HttpRequest, ride_slug: str) -> HttpResponse:
# Get head-to-head comparisons
from django.db.models import Q
from .models.rankings import RidePairComparison
comparisons = (