Skip to content

Commit

Permalink
feat: add CacheModelViewSet to FSMViewSet
Browse files Browse the repository at this point in the history
  • Loading branch information
AmooHashem committed Aug 30, 2024
1 parent caca24c commit bf64174
Showing 1 changed file with 6 additions and 11 deletions.
17 changes: 6 additions & 11 deletions apps/fsm/views/fsm_view.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,26 +6,24 @@
from rest_framework.exceptions import PermissionDenied, ParseError
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from rest_framework import viewsets
from django.contrib.auth.models import AnonymousUser


from apps.accounts.serializers.user_serializer import UserSerializer
from apps.accounts.utils import find_user_in_website
from apps.fsm.pagination import StandardPagination
from errors.error_codes import serialize_error
from apps.fsm.models import RegistrationReceipt, FSM, PlayerStateHistory, Player, RegistrationReceipt, Problem
from apps.fsm.permissions import FSMMentorPermission, HasActiveRegistration
from apps.fsm.serializers.fsm_serializers import FSMMinimalSerializer, FSMSerializer, KeySerializer, EdgeSerializer, \
TeamGetSerializer
from apps.fsm.serializers.fsm_serializers import FSMMinimalSerializer, FSMSerializer, KeySerializer, EdgeSerializer, TeamGetSerializer
from apps.fsm.serializers.paper_serializers import StateSimpleSerializer, EdgeSimpleSerializer
from apps.fsm.serializers.player_serializer import PlayerSerializer, PlayerStateSerializer
from apps.fsm.serializers.widgets.mock_widget_serializer import MockWidgetSerializer
from apps.fsm.serializers.widgets.widget_polymorphic_serializer import WidgetPolymorphicSerializer
from apps.fsm.utils import get_player, get_receipt, get_a_player_from_team, _get_fsm_edges, register_user_in_program, transit_player_in_fsm
from utilities.cache_model_viewset import CacheModelViewSet


class FSMViewSet(viewsets.ModelViewSet):
class FSMViewSet(CacheModelViewSet):
permission_classes = [IsAuthenticated]
queryset = FSM.objects.filter(is_deleted=False)
ordering_fields = ['order_in_program']
Expand Down Expand Up @@ -211,8 +209,8 @@ def get_player_from_team(self, request, pk):
if serializer.is_valid(raise_exception=True):
team = serializer.validated_data['team']
player = get_a_player_from_team(team, fsm)
return Response(PlayerSerializer(context=self.get_serializer_context()).to_representation(player),
status=status.HTTP_200_OK)
return Response(PlayerSerializer(context=self.get_serializer_context()).to_representation(player),
status=status.HTTP_200_OK)

@transaction.atomic
@action(detail=True, methods=['get'])
Expand All @@ -229,14 +227,11 @@ def activate(self, request, pk=None):
return Response(data={'new_players_count': len(f.players.all()), 'previous_players_count': previous_players},
status=status.HTTP_200_OK)

# @method_decorator(cache_page(60 * 1, key_prefix="fsm"))
def list(self, request, *args, **kwargs):
return super().list(self, request, *args, **kwargs)

@action(detail=True, methods=['get'])
def soft_delete(self, request, pk=None):
fsm = self.get_object()
fsm.is_deleted = True
fsm.deleted_at = timezone.now()
fsm.save()
self._invalidate_list_cache()
return Response()

0 comments on commit bf64174

Please sign in to comment.