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

@@ -1,13 +1,15 @@
from django.contrib import admin
from django.db.models import Count
from django.utils.html import format_html
from apps.core.admin import (
BaseModelAdmin,
ExportActionMixin,
QueryOptimizationMixin,
TimestampFieldsMixin,
)
from .models import UserList, ListItem
from .models import ListItem, UserList
class ListItemInline(admin.TabularInline):

View File

@@ -1,5 +1,6 @@
from django.apps import AppConfig
class ListsConfig(AppConfig):
default_auto_field = "django.db.models.BigAutoField"
name = "apps.lists"

View File

@@ -1,12 +1,13 @@
# Generated by Django 5.1.6 on 2025-12-26 14:13
import apps.core.choices.fields
import django.db.models.deletion
import pgtrigger.compiler
import pgtrigger.migrations
from django.conf import settings
from django.db import migrations, models
import apps.core.choices.fields
class Migration(migrations.Migration):

View File

@@ -1,10 +1,12 @@
from django.db import models
import pghistory
from django.conf import settings
from django.contrib.contenttypes.fields import GenericForeignKey
from django.contrib.contenttypes.models import ContentType
from apps.core.history import TrackedModel
from django.db import models
from apps.core.choices import RichChoiceField
import pghistory
from apps.core.history import TrackedModel
@pghistory.track()
class UserList(TrackedModel):

View File

@@ -1,7 +1,10 @@
from rest_framework import serializers
from .models import UserList, ListItem
from apps.accounts.serializers import UserSerializer
from .models import ListItem, UserList
class ListItemSerializer(serializers.ModelSerializer):
class Meta:
model = ListItem

View File

@@ -1,6 +1,7 @@
from django.urls import path, include
from django.urls import include, path
from rest_framework.routers import DefaultRouter
from .views import UserListViewSet, ListItemViewSet
from .views import ListItemViewSet, UserListViewSet
router = DefaultRouter()
router.register(r"lists", UserListViewSet, basename="list")

View File

@@ -1,9 +1,12 @@
from django.db.models import Q
from rest_framework import viewsets, permissions
from .models import UserList, ListItem
from .serializers import UserListSerializer, ListItemSerializer
from rest_framework import permissions, viewsets
from apps.core.permissions import IsOwnerOrReadOnly
from .models import ListItem, UserList
from .serializers import ListItemSerializer, UserListSerializer
class UserListViewSet(viewsets.ModelViewSet):
serializer_class = UserListSerializer
permission_classes = [permissions.IsAuthenticatedOrReadOnly, IsOwnerOrReadOnly]