susioma/frontend/views.py

44 lines
1.5 KiB
Python
Raw Normal View History

2019-10-27 15:20:28 +00:00
from django.shortcuts import redirect
from django.views.generic import TemplateView, FormView, DetailView
from django.contrib.auth.mixins import LoginRequiredMixin
from frontend.forms import SMSAuthForm
from frontend.models import CardURL
from django.utils import timezone
from datetime import timedelta
from django.http import Http404
from smsauth.views import requestToken
2020-02-01 15:05:10 +00:00
from buyer.views import getCard, sendStatus
2019-10-27 15:20:28 +00:00
from ledger.models import Payment
2019-10-26 15:25:21 +00:00
2019-10-27 15:20:28 +00:00
def makeCardURL(card):
return CardURL.objects.create(card=card) # pylint: disable=E1101
class IndexView(LoginRequiredMixin, TemplateView):
template_name = "frontend/index.html"
class SMSAuthView(LoginRequiredMixin, FormView):
template_name = "frontend/form.html"
form_class = SMSAuthForm
def get_context_data(self, **kwargs):
requestToken()
return super(SMSAuthView, self).get_context_data(**kwargs)
def form_valid(self, form):
Payment.objects.create(description="Paysafecard", amount=11) # pylint: disable=E1101
return redirect("/card/%s/" % makeCardURL(getCard()).uuid)
class CardView(LoginRequiredMixin, DetailView):
template_name = "frontend/card.html"
model = CardURL
pk_url_kwarg = "uuid"
def get_object(self, queryset=None):
obj = super(CardView, self).get_object(queryset=queryset)
if timezone.now() - timedelta(seconds=300) > obj.created:
raise Http404()
obj.card.delivered = timezone.now()
obj.card.save()
2020-02-01 15:05:10 +00:00
sendStatus()
2019-10-27 15:20:28 +00:00
return obj