1
0
Fork 0
mirror of https://github.com/Findus23/RPGnotes.git synced 2024-09-19 15:43:45 +02:00
RPGnotes/loot/views.py
2022-11-19 18:16:56 +01:00

60 lines
1.6 KiB
Python

from django.db.models import Sum
from django.urls import reverse_lazy
from django.views import generic
from loot.forms import LootForm
from loot.models import Loot
from utils.views import JSONResponseMixin
class LootListView(generic.ListView):
template_name = "loot/overview.jinja"
model = Loot
context_object_name = "loot"
def get_queryset(self):
show_former = self.request.GET.get('show_former', False) == "true"
type = self.request.GET.get('type', None)
qs = Loot.objects.filter(former=show_former)
if type:
qs = qs.filter(type__slug=type)
return qs
def get_context_data(self, **kwargs):
data = super().get_context_data(**kwargs)
data['total_value'] = self.get_queryset().aggregate(Sum("value_gold"))["value_gold__sum"]
return data
# class LootDetailView(generic.DetailView):
# template_name = "common/loot_detail.html"
# model = Loot
class LootCreateView(generic.CreateView):
template_name = "loot/edit.jinja"
model = Loot
form_class = LootForm
success_url = reverse_lazy("lootlist")
class LootEditView(JSONResponseMixin, generic.UpdateView):
template_name = "loot/edit.jinja"
model = Loot
form_class = LootForm
context_object_name = "object"
success_url = reverse_lazy("lootlist")
def get_context_data(self, **kwargs):
data = super().get_context_data(**kwargs)
data['edit'] = True
return data
class LootDeleteView(generic.DeleteView):
template_name = "common/confirm_delete.jinja"
model = Loot
success_url = reverse_lazy("lootlist")