2021-08-22 20:10:29 +02:00
|
|
|
from django.shortcuts import redirect
|
|
|
|
from django.urls import reverse_lazy
|
|
|
|
from django.views import generic
|
|
|
|
|
2021-08-29 22:09:22 +02:00
|
|
|
from characters.forms import CharacterForm
|
|
|
|
from characters.models import Character
|
2021-08-22 20:10:29 +02:00
|
|
|
|
|
|
|
|
|
|
|
def list_character_redirect(request, *args, **kwargs):
|
2021-08-29 00:20:02 +02:00
|
|
|
first_character: Character = Character.objects.first()
|
|
|
|
if not first_character:
|
|
|
|
return redirect("characteradd")
|
2021-08-22 20:10:29 +02:00
|
|
|
return redirect(first_character)
|
|
|
|
|
|
|
|
|
|
|
|
class CharacterDetailView(generic.DetailView):
|
2021-10-15 20:10:50 +02:00
|
|
|
template_name = "characters/detail.jinja"
|
2021-08-22 20:10:29 +02:00
|
|
|
model = Character
|
|
|
|
context_object_name = "character"
|
|
|
|
|
|
|
|
def get_context_data(self, **kwargs):
|
|
|
|
data = super().get_context_data(**kwargs)
|
|
|
|
data["player_characters"] = Character.objects.filter(
|
|
|
|
player__isnull=False
|
2021-08-28 19:52:07 +02:00
|
|
|
).select_related()
|
|
|
|
data["npcs"] = Character.objects.filter(
|
2021-08-29 00:20:02 +02:00
|
|
|
player__isnull=True
|
2021-08-28 19:52:07 +02:00
|
|
|
).select_related()
|
2021-08-22 20:10:29 +02:00
|
|
|
return data
|
|
|
|
|
|
|
|
|
|
|
|
class CharacterCreateView(generic.CreateView):
|
2021-08-29 22:09:22 +02:00
|
|
|
template_name = "loot/edit.html"
|
2021-08-22 20:10:29 +02:00
|
|
|
model = Character
|
|
|
|
form_class = CharacterForm
|
|
|
|
context_object_name = "object"
|
|
|
|
|
|
|
|
|
2021-09-07 15:03:26 +02:00
|
|
|
class CharacterEditView(generic.UpdateView):
|
2021-08-29 22:09:22 +02:00
|
|
|
template_name = "loot/edit.html"
|
2021-08-22 20:10:29 +02:00
|
|
|
model = Character
|
|
|
|
form_class = CharacterForm
|
|
|
|
|
|
|
|
def get_context_data(self, **kwargs):
|
|
|
|
data = super().get_context_data(**kwargs)
|
|
|
|
data['edit'] = True
|
|
|
|
return data
|
|
|
|
|
|
|
|
|
|
|
|
class CharacterDeleteView(generic.DeleteView):
|
2021-09-25 20:31:08 +02:00
|
|
|
template_name = "common/confirm_delete.html"
|
2021-08-22 20:10:29 +02:00
|
|
|
model = Character
|
|
|
|
success_url = reverse_lazy('characterlist')
|