|
|
|
from django.shortcuts import render, get_object_or_404, HttpResponse, HttpResponseRedirect
|
|
|
|
from call.forms import CreatureForm
|
|
|
|
from django.views import generic
|
|
|
|
from .models import Creature
|
|
|
|
from django.urls import reverse
|
|
|
|
# from io import StringIO
|
|
|
|
from PIL import Image
|
|
|
|
|
|
|
|
|
|
|
|
def index(request):
|
|
|
|
""" Main page of call, with 2bitcharactergenerator, receives POST to save a new creature """
|
|
|
|
if request.method == "POST":
|
|
|
|
print ("post", request.POST)
|
|
|
|
print ("files", request.FILES)
|
|
|
|
form = CreatureForm(request.POST, request.FILES)
|
|
|
|
# form = CreatureFormNo(request.POST, request.FILES)
|
|
|
|
# formset = AuthorFormSet(request.POST, request.FILES)
|
|
|
|
if form.is_valid():
|
|
|
|
print ("FORM IS VALID")
|
|
|
|
form.save()
|
|
|
|
return HttpResponseRedirect(reverse("statement", args=(form.instance.id,)))
|
|
|
|
# do something.
|
|
|
|
else:
|
|
|
|
print ("FORM NOT VALID")
|
|
|
|
else:
|
|
|
|
form = CreatureForm()
|
|
|
|
return render(request, "call/index.html", {"form": form})
|
|
|
|
|
|
|
|
class Guestbook(generic.ListView):
|
|
|
|
""" public guestbook page """
|
|
|
|
paginate_by = 20
|
|
|
|
model=Creature
|
|
|
|
template_name = "call/guestbook.html"
|
|
|
|
queryset = Creature.objects.filter(published=True)
|
|
|
|
|
|
|
|
class CreatureList(generic.ListView):
|
|
|
|
""" public guestbook page """
|
|
|
|
paginate_by = 20
|
|
|
|
model=Creature
|
|
|
|
template_name = "call/creature_list.html"
|
|
|
|
queryset = Creature.objects.filter(published=True)
|
|
|
|
|
|
|
|
class CreatureDetail(generic.DetailView):
|
|
|
|
""" Generates Pixelated PNG of creature """
|
|
|
|
model = Creature
|
|
|
|
template_name = "call/creature_detail.html"
|
|
|
|
|
|
|
|
def creature_frame (request, creature_id):
|
|
|
|
""" Generates Pixelated PNG of creature """
|
|
|
|
creature = get_object_or_404(Creature, pk=creature_id)
|
|
|
|
im = Image.open(creature.image.path)
|
|
|
|
response = HttpResponse(content_type="image/png")
|
|
|
|
im.save(response, "PNG")
|
|
|
|
return response
|