Refactor code structure and remove redundant changes

This commit is contained in:
pacnpal
2025-08-26 13:19:04 -04:00
parent bf7e0c0f40
commit 831be6a2ee
151 changed files with 16260 additions and 9137 deletions

View File

@@ -4,8 +4,7 @@ API serializers for the ride ranking system.
from rest_framework import serializers
from drf_spectacular.utils import extend_schema_serializer, OpenApiExample
from apps.rides.models import RideRanking, RidePairComparison, RankingSnapshot
from django.utils.functional import cached_property
@extend_schema_serializer(
@@ -45,8 +44,19 @@ class RideRankingSerializer(serializers.ModelSerializer):
rank_change = serializers.SerializerMethodField()
previous_rank = serializers.SerializerMethodField()
@cached_property
def _model(self):
from apps.rides.models import RideRanking
return RideRanking
class Meta:
model = RideRanking
@property
def model(self):
from apps.rides.models import RideRanking
return RideRanking
fields = [
"id",
"rank",
@@ -79,6 +89,8 @@ class RideRankingSerializer(serializers.ModelSerializer):
def get_rank_change(self, obj):
"""Calculate rank change from previous snapshot."""
from apps.rides.models import RankingSnapshot
latest_snapshots = RankingSnapshot.objects.filter(ride=obj.ride).order_by(
"-snapshot_date"
)[:2]
@@ -89,6 +101,8 @@ class RideRankingSerializer(serializers.ModelSerializer):
def get_previous_rank(self, obj):
"""Get previous rank."""
from apps.rides.models import RankingSnapshot
latest_snapshots = RankingSnapshot.objects.filter(ride=obj.ride).order_by(
"-snapshot_date"
)[:2]
@@ -106,7 +120,7 @@ class RideRankingDetailSerializer(serializers.ModelSerializer):
ranking_history = serializers.SerializerMethodField()
class Meta:
model = RideRanking
model = "rides.RideRanking"
fields = [
"id",
"rank",
@@ -167,6 +181,7 @@ class RideRankingDetailSerializer(serializers.ModelSerializer):
def get_head_to_head_comparisons(self, obj):
"""Get top head-to-head comparisons."""
from django.db.models import Q
from apps.rides.models import RidePairComparison
comparisons = (
RidePairComparison.objects.filter(Q(ride_a=obj.ride) | Q(ride_b=obj.ride))
@@ -207,6 +222,8 @@ class RideRankingDetailSerializer(serializers.ModelSerializer):
def get_ranking_history(self, obj):
"""Get recent ranking history."""
from apps.rides.models import RankingSnapshot
history = RankingSnapshot.objects.filter(ride=obj.ride).order_by(
"-snapshot_date"
)[:30]
@@ -228,7 +245,7 @@ class RankingSnapshotSerializer(serializers.ModelSerializer):
park_name = serializers.CharField(source="ride.park.name", read_only=True)
class Meta:
model = RankingSnapshot
model = "rides.RankingSnapshot"
fields = [
"id",
"ride",