refactor(db): update cursor rules and enhance deployment rollback script
- Standardized string formatting in cursor rules for consistency. - Added a new rollback deployment script to facilitate blue-green deployment strategy. - Removed outdated seed data files and introduced new rarity mappings for better data management. - Improved model relationships and query optimizations in various views and admin configurations. - Enhanced caching strategies across templates to improve performance and reduce load times, including jitter in cache settings for better performance. - Refactored card-related views and templates to utilize new model fields and relationships.
This commit is contained in:
parent
39a002e394
commit
af2f48a491
37 changed files with 2444 additions and 13565 deletions
|
|
@ -1,22 +1,23 @@
|
|||
from django.contrib import messages
|
||||
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||
from django.shortcuts import redirect, get_object_or_404, render
|
||||
from django.core.exceptions import PermissionDenied
|
||||
from django.db.models import BooleanField, Case, Q, Value, When
|
||||
from django.shortcuts import get_object_or_404, redirect, render
|
||||
from django.urls import reverse
|
||||
from django.utils.http import urlencode
|
||||
from django.views.generic import (
|
||||
CreateView,
|
||||
DeleteView,
|
||||
View,
|
||||
TemplateView,
|
||||
UpdateView,
|
||||
View,
|
||||
)
|
||||
from pkmntrade_club.accounts.models import FriendCode
|
||||
|
||||
from pkmntrade_club.accounts.forms import FriendCodeForm, UserSettingsForm
|
||||
from django.db.models import Case, When, Value, BooleanField
|
||||
from pkmntrade_club.trades.models import TradeOffer, TradeAcceptance
|
||||
from django.core.exceptions import PermissionDenied
|
||||
from pkmntrade_club.trades.mixins import FriendCodeRequiredMixin
|
||||
from pkmntrade_club.accounts.models import FriendCode
|
||||
from pkmntrade_club.common.mixins import ReusablePaginationMixin
|
||||
from django.urls import reverse
|
||||
from django.utils.http import urlencode
|
||||
from pkmntrade_club.trades.mixins import FriendCodeRequiredMixin
|
||||
from pkmntrade_club.trades.models import TradeAcceptance, TradeOffer
|
||||
|
||||
|
||||
class AddFriendCodeView(LoginRequiredMixin, CreateView):
|
||||
|
|
@ -204,8 +205,6 @@ class DashboardView(
|
|||
return {"object_list": object_list, "page_obj": pagination_context}
|
||||
|
||||
def get_involved_acceptances(self, selected_friend_code):
|
||||
from django.db.models import Q
|
||||
|
||||
terminal_states = [
|
||||
TradeAcceptance.AcceptanceState.THANKED_BY_INITIATOR,
|
||||
TradeAcceptance.AcceptanceState.THANKED_BY_ACCEPTOR,
|
||||
|
|
@ -213,10 +212,25 @@ class DashboardView(
|
|||
TradeAcceptance.AcceptanceState.REJECTED_BY_INITIATOR,
|
||||
TradeAcceptance.AcceptanceState.REJECTED_BY_ACCEPTOR,
|
||||
]
|
||||
involved = TradeAcceptance.objects.filter(
|
||||
Q(trade_offer__initiated_by=selected_friend_code)
|
||||
| Q(accepted_by=selected_friend_code)
|
||||
).order_by("-updated_at")
|
||||
involved = (
|
||||
TradeAcceptance.objects.filter(
|
||||
Q(trade_offer__initiated_by=selected_friend_code)
|
||||
| Q(accepted_by=selected_friend_code)
|
||||
)
|
||||
.select_related(
|
||||
"trade_offer__initiated_by__user",
|
||||
"accepted_by__user",
|
||||
"requested_card__rarity",
|
||||
"requested_card__cardset",
|
||||
"offered_card__rarity",
|
||||
"offered_card__cardset",
|
||||
)
|
||||
.prefetch_related(
|
||||
"requested_card__translations",
|
||||
"offered_card__translations",
|
||||
)
|
||||
.order_by("-updated_at")
|
||||
)
|
||||
return involved.exclude(state__in=terminal_states)
|
||||
|
||||
def get_trade_acceptances_waiting_paginated(self, page_param):
|
||||
|
|
@ -271,55 +285,94 @@ class DashboardView(
|
|||
return {"object_list": object_list, "page_obj": pagination_context}
|
||||
|
||||
def get_closed_acceptances_paginated(self, page_param):
|
||||
from django.db.models import Q
|
||||
|
||||
selected_friend_code = self.get_selected_friend_code()
|
||||
terminal_success_states = [
|
||||
TradeAcceptance.AcceptanceState.THANKED_BY_INITIATOR,
|
||||
TradeAcceptance.AcceptanceState.THANKED_BY_ACCEPTOR,
|
||||
TradeAcceptance.AcceptanceState.THANKED_BY_BOTH,
|
||||
]
|
||||
acceptance_qs = TradeAcceptance.objects.filter(
|
||||
Q(trade_offer__initiated_by=selected_friend_code)
|
||||
| Q(accepted_by=selected_friend_code),
|
||||
state__in=terminal_success_states,
|
||||
).order_by("-updated_at")
|
||||
acceptance_qs = (
|
||||
TradeAcceptance.objects.filter(
|
||||
Q(trade_offer__initiated_by=selected_friend_code)
|
||||
| Q(accepted_by=selected_friend_code),
|
||||
state__in=terminal_success_states,
|
||||
)
|
||||
.select_related(
|
||||
"trade_offer__initiated_by__user",
|
||||
"accepted_by__user",
|
||||
"requested_card__rarity",
|
||||
"requested_card__cardset",
|
||||
"offered_card__rarity",
|
||||
"offered_card__cardset",
|
||||
)
|
||||
.prefetch_related(
|
||||
"requested_card__translations",
|
||||
"offered_card__translations",
|
||||
)
|
||||
.order_by("-updated_at")
|
||||
)
|
||||
object_list, pagination_context = self.paginate_data(
|
||||
acceptance_qs, int(page_param)
|
||||
)
|
||||
return {"object_list": object_list, "page_obj": pagination_context}
|
||||
|
||||
def get_rejected_by_me_paginated(self, page_param):
|
||||
from django.db.models import Q
|
||||
|
||||
selected_friend_code = self.get_selected_friend_code()
|
||||
rejection = TradeAcceptance.objects.filter(
|
||||
Q(
|
||||
trade_offer__initiated_by=selected_friend_code,
|
||||
state=TradeAcceptance.AcceptanceState.REJECTED_BY_INITIATOR,
|
||||
rejection = (
|
||||
TradeAcceptance.objects.filter(
|
||||
Q(
|
||||
trade_offer__initiated_by=selected_friend_code,
|
||||
state=TradeAcceptance.AcceptanceState.REJECTED_BY_INITIATOR,
|
||||
)
|
||||
| Q(
|
||||
accepted_by=selected_friend_code,
|
||||
state=TradeAcceptance.AcceptanceState.REJECTED_BY_ACCEPTOR,
|
||||
)
|
||||
)
|
||||
| Q(
|
||||
accepted_by=selected_friend_code,
|
||||
state=TradeAcceptance.AcceptanceState.REJECTED_BY_ACCEPTOR,
|
||||
.select_related(
|
||||
"trade_offer__initiated_by__user",
|
||||
"accepted_by__user",
|
||||
"requested_card__rarity",
|
||||
"requested_card__cardset",
|
||||
"offered_card__rarity",
|
||||
"offered_card__cardset",
|
||||
)
|
||||
).order_by("-updated_at")
|
||||
.prefetch_related(
|
||||
"requested_card__translations",
|
||||
"offered_card__translations",
|
||||
)
|
||||
.order_by("-updated_at")
|
||||
)
|
||||
object_list, pagination_context = self.paginate_data(rejection, int(page_param))
|
||||
return {"object_list": object_list, "page_obj": pagination_context}
|
||||
|
||||
def get_rejected_by_them_paginated(self, page_param):
|
||||
from django.db.models import Q
|
||||
|
||||
selected_friend_code = self.get_selected_friend_code()
|
||||
rejection = TradeAcceptance.objects.filter(
|
||||
Q(
|
||||
trade_offer__initiated_by=selected_friend_code,
|
||||
state=TradeAcceptance.AcceptanceState.REJECTED_BY_ACCEPTOR,
|
||||
rejection = (
|
||||
TradeAcceptance.objects.filter(
|
||||
Q(
|
||||
trade_offer__initiated_by=selected_friend_code,
|
||||
state=TradeAcceptance.AcceptanceState.REJECTED_BY_ACCEPTOR,
|
||||
)
|
||||
| Q(
|
||||
accepted_by=selected_friend_code,
|
||||
state=TradeAcceptance.AcceptanceState.REJECTED_BY_INITIATOR,
|
||||
)
|
||||
)
|
||||
| Q(
|
||||
accepted_by=selected_friend_code,
|
||||
state=TradeAcceptance.AcceptanceState.REJECTED_BY_INITIATOR,
|
||||
.select_related(
|
||||
"trade_offer__initiated_by__user",
|
||||
"accepted_by__user",
|
||||
"requested_card__rarity",
|
||||
"requested_card__cardset",
|
||||
"offered_card__rarity",
|
||||
"offered_card__cardset",
|
||||
)
|
||||
).order_by("-updated_at")
|
||||
.prefetch_related(
|
||||
"requested_card__translations",
|
||||
"offered_card__translations",
|
||||
)
|
||||
.order_by("-updated_at")
|
||||
)
|
||||
object_list, pagination_context = self.paginate_data(rejection, int(page_param))
|
||||
return {"object_list": object_list, "page_obj": pagination_context}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue