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.
 
 
 
 
 
 

64 lines
1.9 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 = normalize_phone(form.cleaned_data['phone'])
password = form.cleaned_data['password']
profile = Profile.objects.get(phone=phone)
user = authenticate(username=profile.phone, password=password)
if user.is_active:
login(request, user)
return redirect('/account/')
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)