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)