2021-08-28 19:52:07 +02:00
|
|
|
from django.db.models import Sum
|
2021-08-29 22:09:22 +02:00
|
|
|
from django.urls import reverse_lazy
|
2021-08-22 20:10:29 +02:00
|
|
|
from django.views import generic
|
|
|
|
|
2021-08-29 22:09:22 +02:00
|
|
|
from loot.forms import LootForm
|
2021-09-08 11:44:24 +02:00
|
|
|
from loot.models import Loot
|
2022-06-19 16:03:59 +02:00
|
|
|
from utils.views import JSONResponseMixin
|
2021-08-22 20:10:29 +02:00
|
|
|
|
|
|
|
|
|
|
|
class LootListView(generic.ListView):
|
2021-10-15 21:47:49 +02:00
|
|
|
template_name = "loot/overview.jinja"
|
2021-08-22 20:10:29 +02:00
|
|
|
model = Loot
|
|
|
|
context_object_name = "loot"
|
|
|
|
|
2022-11-19 17:40:46 +01:00
|
|
|
def get_queryset(self):
|
|
|
|
show_former = self.request.GET.get('show_former', False) == "true"
|
2022-11-19 18:16:56 +01:00
|
|
|
type = self.request.GET.get('type', None)
|
|
|
|
qs = Loot.objects.filter(former=show_former)
|
|
|
|
if type:
|
|
|
|
qs = qs.filter(type__slug=type)
|
|
|
|
return qs
|
2022-11-19 17:40:46 +01:00
|
|
|
|
2021-08-28 19:52:07 +02:00
|
|
|
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
|
|
|
|
|
2021-08-22 20:10:29 +02:00
|
|
|
|
2021-08-29 22:09:22 +02:00
|
|
|
# class LootDetailView(generic.DetailView):
|
|
|
|
# template_name = "common/loot_detail.html"
|
|
|
|
# model = Loot
|
2021-08-22 20:10:29 +02:00
|
|
|
|
|
|
|
|
|
|
|
class LootCreateView(generic.CreateView):
|
2021-10-15 21:47:49 +02:00
|
|
|
template_name = "loot/edit.jinja"
|
2021-08-22 20:10:29 +02:00
|
|
|
model = Loot
|
|
|
|
form_class = LootForm
|
|
|
|
|
2021-08-29 00:20:02 +02:00
|
|
|
success_url = reverse_lazy("lootlist")
|
2021-08-22 20:10:29 +02:00
|
|
|
|
|
|
|
|
2022-11-19 17:40:46 +01:00
|
|
|
class LootEditView(JSONResponseMixin, generic.UpdateView):
|
2021-10-15 21:47:49 +02:00
|
|
|
template_name = "loot/edit.jinja"
|
2021-08-22 20:10:29 +02:00
|
|
|
model = Loot
|
|
|
|
form_class = LootForm
|
|
|
|
context_object_name = "object"
|
|
|
|
|
2021-08-29 00:20:02 +02:00
|
|
|
success_url = reverse_lazy("lootlist")
|
2021-08-28 19:52:07 +02:00
|
|
|
|
2021-08-22 20:10:29 +02:00
|
|
|
def get_context_data(self, **kwargs):
|
|
|
|
data = super().get_context_data(**kwargs)
|
|
|
|
data['edit'] = True
|
|
|
|
return data
|
|
|
|
|
|
|
|
|
|
|
|
class LootDeleteView(generic.DeleteView):
|
2021-10-15 21:47:49 +02:00
|
|
|
template_name = "common/confirm_delete.jinja"
|
2021-08-22 20:10:29 +02:00
|
|
|
model = Loot
|
2021-08-29 00:20:02 +02:00
|
|
|
|
|
|
|
success_url = reverse_lazy("lootlist")
|