Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.63 KB | None | 0 0
  1.  
  2. from django.contrib.auth.decorators import login_required
  3. from django.contrib.auth import login as auth_login, authenticate
  4. from django.shortcuts import render, redirect
  5. from django.contrib.auth.forms import AuthenticationForm
  6. from rides_handling.forms import SignUpForm, RideForm
  7. from django.utils import timezone
  8. from .models import Profile
  9.  
  10. @login_required
  11. def home(request):
  12. if request.method == "POST":
  13. form = RideForm(request.POST)
  14. if form.is_valid():
  15. ride = form.save(commit=False)
  16. try:
  17. ride.initiator = request.user.profile
  18. except Profile.DoesNotExist:
  19. ride.initiator = Profile(user=request.user)
  20.  
  21. ride.status = 'SET_BY_PASSENGER'
  22. ride.pickup_datetime = timezone.now()
  23. ride.save()
  24. return redirect('profile_summary')
  25. else:
  26. form = RideForm()
  27. rides_history = request.user.profile.ride_set.all().order_by("-pickup_datetime")
  28. possibly_notcomplete = rides_history[0]
  29. return render(request, 'home.html', {'form' : form, 'rides_history' : rides_history, 'possibly_notcomplete': possibly_notcomplete})
  30.  
  31.  
  32. def login(request):
  33. if request.user.is_authenticated:
  34. return redirect('home')
  35.  
  36. if request.method == "POST":
  37. form = AuthenticationForm(request, data=request.POST)
  38. if form.is_valid():
  39. auth_login(request, form.get_user())
  40. return redirect('home')
  41. else:
  42. form = AuthenticationForm(request)
  43.  
  44. return render(request, 'login.html', {'form': form})
  45.  
  46.  
  47. def signup(request):
  48. if request.user.is_authenticated:
  49. return redirect('home')
  50.  
  51. if request.method == 'POST':
  52. form = SignUpForm(request.POST)
  53. if form.is_valid():
  54. user = form.save()
  55. user.refresh_from_db() # load the profile instance created by the signal
  56. user.profile.is_driver = False
  57. user.save()
  58. raw_password = form.cleaned_data.get('password1')
  59. user = authenticate(username=user.username, password=raw_password)
  60. auth_login(request, user)
  61. return redirect('home')
  62. else:
  63. form = SignUpForm()
  64.  
  65. return render(request, 'signup.html', {'form': form})
  66.  
  67.  
  68. def offer(request):
  69. if not request.user.is_authenticated:
  70. return redirect('login')
  71. else:
  72. if request.method == 'POST':
  73. form = SignUpForm(request.POST)
  74. if form.is_valid():
  75. user = form.save()
  76. user.refresh_from_db()
  77. if user.profile.is_driver == True:
  78. return render(request, 'offer.html')
  79. else:
  80. return render(request, 'signup_driver.html')
  81. else:
  82. form = SignUpForm()
  83. return render(request, 'signup_driver.html')
  84.  
  85. def help(request):
  86. return render(request, 'help.html')
  87.  
  88.  
  89. def signup_driver(request):
  90. if not request.user.is_authenticated:
  91. return redirect('login')
  92. else:
  93. if request.method == 'POST':
  94. form = SignUpForm(request.POST)
  95. if form.is_valid():
  96. user = form.save()
  97. user.refresh_from_db()
  98. user.profile.is_driver = True
  99. user.profile.car = form.cleaned_data.get('car')
  100. user.save()
  101. return redirect('profile_summary')
  102. else:
  103. form = SignUpForm()
  104. return render(request, 'signup_driver.html')
  105.  
  106.  
  107. @login_required
  108. def profile_summary(request):
  109. if not request.user.is_authenticated:
  110. return redirect('home')
  111. else:
  112. if request.GET.get('finish'):
  113. rides_history = request.user.profile.ride_set.all()
  114. for ride in rides_history:
  115. if (ride.status == 'ACCEPTED'):
  116. ride.status = 'COMPLETED'
  117. ride.save()
  118. return redirect('profile_summary')
  119. if request.GET.get('cancel'):
  120. rides_history = request.user.profile.ride_set.all()
  121. for ride in rides_history:
  122. if (ride.status == 'ACCEPTED'):
  123. ride.status = 'COMPLETED'
  124. ride.save()
  125. return redirect('profile_summary')
  126.  
  127. rides_history = request.user.profile.ride_set.all().order_by("-pickup_datetime")
  128. possibly_notcomplete = rides_history[0]
  129. return render(request, 'profile_summary.html', {'user' : request.user, 'rides_history' : rides_history, 'possibly_notcomplete': possibly_notcomplete })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement