You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
2.0 KiB
66 lines
2.0 KiB
from django.contrib.auth.decorators import login_required
|
|
from django.shortcuts import render, get_object_or_404, redirect
|
|
from django.views.generic import FormView
|
|
from .forms import *
|
|
from store.models import OrderData
|
|
from django.contrib.auth import logout, authenticate, login
|
|
from .utils import normalize_phone
|
|
from random import randint
|
|
import requests
|
|
from django.conf import settings
|
|
|
|
|
|
class LoginView(FormView):
|
|
form_class = LoginForm
|
|
template_name = 'accounts/login.jinja'
|
|
|
|
|
|
def login_view(request):
|
|
form = LoginForm(request.POST or None)
|
|
if form.is_valid():
|
|
phone = form.cleaned_data['phone']
|
|
params = dict(
|
|
login='Jango.kz',
|
|
psw='AcEMXtLGz042Fc1ZJUSl',
|
|
phones='7{}'.format(phone),
|
|
mes='Batiskaf.kz odnorazoviy parol: {}'.format(form.temp_password)
|
|
)
|
|
requests.get('http://smsc.ru/sys/send.php', params=params)
|
|
return redirect('/account/login/sms/?phone=' + phone)
|
|
c = dict(form=form)
|
|
return render(request, 'accounts/login.jinja', c)
|
|
|
|
|
|
def login_sms_view(request):
|
|
form = LoginSmsForm(request.POST or None)
|
|
phone = request.GET.get('phone', None)
|
|
form.phone = phone
|
|
if form.is_valid():
|
|
profile = form.profile
|
|
profile.set_password(settings.PROFILE_TEMP_PASSWORD)
|
|
profile.save()
|
|
user = authenticate(username=profile.phone, password=settings.PROFILE_TEMP_PASSWORD)
|
|
if user.is_active:
|
|
login(request, user)
|
|
return redirect('/account/')
|
|
|
|
c = dict(form=form)
|
|
return render(request, 'accounts/login_sms.jinja', c)
|
|
|
|
|
|
@login_required
|
|
def account_index(request):
|
|
return render(request, 'accounts/index.jinja')
|
|
|
|
|
|
@login_required
|
|
def account_logout(request):
|
|
logout(request)
|
|
return redirect('/')
|
|
|
|
|
|
@login_required
|
|
def order_detail(request, pk):
|
|
order = get_object_or_404(OrderData, pk=pk, profile=request.user)
|
|
c = dict(order=order)
|
|
return render(request, 'accounts/order_detail.jinja', c)
|
|
|