Project_Camper/vagus/users/views.py
2021-02-06 12:31:59 +01:00

77 lines
2.9 KiB
Python
Executable File

from django.shortcuts import render
from .forms import CustomUserCreationForm, LoginForm
from django.shortcuts import render, redirect
from django.contrib.auth.decorators import login_required
from django.utils.decorators import method_decorator
from .models import Base_User,OwnerUser
from django.views.generic import (
View,
CreateView,
FormView
)
from django.contrib.auth import authenticate,login,logout
from django.conf import settings
from django.http import HttpResponseRedirect
from django.contrib import messages
from camper.models import Offer
from reservation.models import Reservation
from django.contrib.auth import views as auth_views
from django.views.generic import (
DetailView
)
def user_profile(request):
user = request.user
template_name = 'users/profile.html'
if user.status == ' Company_Account' or user.status =='Moderator':
user_offers = Offer.objects.filter(created_by = request.user).order_by('-date_added')
user_reservations = Reservation.objects.filter(user = request.user).order_by('-reservation_start_date')
reservations = Reservation.objects.filter(offer__created_by = request.user)
return render(request,template_name, {'user':user, 'user_offers':user_offers, 'user_reservations':user_reservations,'reservations':reservations})
if user.status == 'BaseAcc':
user_reservations = Reservation.objects.filter(user = request.user).order_by('-reservation_start_date')
return render(request,template_name, {'user':user,'user_reservation':user_reservations})
class EditProfile(): #edycja danych w profilu - zmiana hasłą + zmiana danych
pass
class Register_View(FormView):
def get(self,request,*args,**kwargs):
if request.user.is_authenticated:
return redirect('/profile')
else:
context = {}
form = CustomUserCreationForm()
context['form'] = form
return render(request,'users/register.html',context)
def post(self,request,*args,**kwargs):
context = {}
if request.POST:
form = CustomUserCreationForm(request.POST)
if form.is_valid():
form.save()
email = form.cleaned_data.get('email')
raw_password = form.cleaned_data.get('password1')
account = authenticate(email = email, password = raw_password)
login(request,account)
return redirect('/')
else:
context['form'] = form
else:
form = CustomUserCreationForm()
context['form'] = form
return render(request,'users/register.html', context)
class Login_View(auth_views.LoginView):
template_name = 'users/login.html'
success_url = '/profile'
def logout_view(request):
logout(request)
messages.success(request,'Zostałeś poprawnie wylogowany')
return HttpResponseRedirect('/')