diff options
Diffstat (limited to 'inventory/views.py')
-rw-r--r-- | inventory/views.py | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/inventory/views.py b/inventory/views.py new file mode 100644 index 0000000..80be28e --- /dev/null +++ b/inventory/views.py @@ -0,0 +1,72 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +from inventory.forms import SignUpForm, MerchantDetailForm, LoginForm +from inventory.models import Merchant +from django.contrib.auth import authenticate +from django.contrib.auth import login as auth_login +from django.contrib.auth import logout as auth_logout +from django.shortcuts import get_object_or_404 +from django.contrib.auth.decorators import login_required +from django.shortcuts import render, redirect +from django.core.urlresolvers import resolve + +# Create your views here. + + +@login_required +def home(request): + return render(request, 'inventory/home.html') + + +def signup(request): + if request.method == 'POST': + form = SignUpForm(request.POST) + details_form = MerchantDetailForm(request.POST) + if form.is_valid(): + form.save() + username = form.cleaned_data.get('username') + raw_password = form.cleaned_data.get('password1') + user = authenticate(username=username, password=raw_password) + auth_login(request, user) + instance = get_object_or_404(Merchant, user=user) + if details_form.is_valid(): + instance.address = details_form.cleaned_data.get('address') + instance.save() + else: + print("somethings wrong with the form") + # Redirect to a success page. + return redirect('home') + else: + form = SignUpForm() + details_form = MerchantDetailForm() + dictionary = {'form': form, 'details_form': details_form} + return render(request, 'inventory/signup.html', dictionary) + + +def login(request): + form = LoginForm() + context_dict = {} + context_dict['form'] = form + error_message = "" + if request.method == 'POST': + username = request.POST['username'] + password = request.POST['password'] + user = authenticate(username=username, password=password) + if user is not None: + auth_login(request, user) + current_url = resolve(request.path_info).url_name + print(current_url) + # Redirect to a success page. + return redirect('home') + else: + error_message = "You are not a registered user please sign up" + form = LoginForm() + context_dict['form'] = form + context_dict['error_message'] = error_message + return render(request, 'inventory/login.html', context_dict) + + +def logout(request): + auth_logout(request) + return render(request, 'inventory/index.html') |