views.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. from django.shortcuts import render, redirect
  2. from . forms import LoginForm
  3. from . models import User
  4. from hashlib import sha256
  5. from django.core import serializers
  6. from django.contrib.auth import authenticate, login, logout
  7. from django.contrib.auth.decorators import login_required
  8. from .forms import CreateUserForm
  9. def logout_user(request):
  10. logout(request)
  11. return redirect('home')
  12. def create_user(request):
  13. form = CreateUserForm
  14. if request.method == "POST":
  15. form = CreateUserForm(request.POST)
  16. if form.is_valid():
  17. data = form.cleaned_data
  18. print(data)
  19. context = {
  20. 'form': form
  21. }
  22. return render(request, 'create_user.html', context=context)
  23. def home(request):
  24. form = LoginForm
  25. login_error = False
  26. if request.method == "POST":
  27. form = LoginForm(request.POST or None)
  28. if form.is_valid():
  29. data = form.cleaned_data
  30. pin = sha256(data['pin'].encode('utf-8')).hexdigest()
  31. print(pin)
  32. user = User.objects.filter(pin=pin)
  33. if user is None:
  34. form.add_error('pin', 'Invalid login')
  35. login_error = True
  36. else:
  37. request.session['u'] = serializers.serialize('json', user)
  38. return redirect('timesheet')
  39. context = {
  40. 'form': form,
  41. 'login_error': login_error
  42. }
  43. return render(request, 'home.html', context=context)
  44. @login_required(login_url='/')
  45. def timesheet(request):
  46. context = {
  47. }
  48. return render(request, 'timesheet.html', context=context)