Add all trades, rename trades_list -> my_trades_list, and fix bottom dock bar for sm screen users
This commit is contained in:
parent
d62956d465
commit
0990340cbc
7 changed files with 114 additions and 28 deletions
|
|
@ -68,9 +68,55 @@ class TradeOfferCreateView(LoginRequiredMixin, CreateView):
|
|||
self.object = form.save()
|
||||
return HttpResponseRedirect(self.get_success_url())
|
||||
|
||||
class TradeOfferListView(LoginRequiredMixin, ListView):
|
||||
class TradeOfferAllListView(ListView):
|
||||
model = TradeOffer
|
||||
template_name = "trades/trade_offer_all_list.html"
|
||||
|
||||
|
||||
def get_context_data(self, *, object_list=None, **kwargs):
|
||||
context = super().get_context_data(**kwargs)
|
||||
request = self.request
|
||||
show_closed = request.GET.get("show_closed", "false").lower() == "true"
|
||||
context["show_closed"] = show_closed
|
||||
|
||||
queryset = (
|
||||
TradeOffer.objects.select_related('initiated_by')
|
||||
.prefetch_related(
|
||||
'trade_offer_have_cards__card',
|
||||
'trade_offer_want_cards__card',
|
||||
Prefetch(
|
||||
'acceptances',
|
||||
queryset=TradeAcceptance.objects.select_related('accepted_by', 'requested_card', 'offered_card')
|
||||
)
|
||||
)
|
||||
.order_by("-updated_at")
|
||||
.annotate(
|
||||
is_active=Case(
|
||||
When(
|
||||
manually_closed=False,
|
||||
total_have_quantity__gt=F('total_have_accepted'),
|
||||
total_want_quantity__gt=F('total_want_accepted'),
|
||||
then=Value(True)
|
||||
),
|
||||
default=Value(False),
|
||||
output_field=BooleanField()
|
||||
)
|
||||
)
|
||||
)
|
||||
if show_closed:
|
||||
queryset = queryset.filter(is_active=False)
|
||||
else:
|
||||
queryset = queryset.filter(is_active=True)
|
||||
|
||||
offers_page = request.GET.get("offers_page")
|
||||
offers_paginator = Paginator(queryset, 10)
|
||||
context["all_trade_offers_paginated"] = offers_paginator.get_page(offers_page)
|
||||
|
||||
return context
|
||||
|
||||
class TradeOfferMyListView(LoginRequiredMixin, ListView):
|
||||
model = TradeOffer # Fallback model; our context data holds separate filtered querysets.
|
||||
template_name = "trades/trade_offer_list.html"
|
||||
template_name = "trades/trade_offer_my_list.html"
|
||||
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
if request.user.is_authenticated and not request.user.friend_codes.exists():
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue