· last year · Feb 18, 2025, 01:05 PM
1from django.shortcuts import render, redirect, get_object_or_404, HttpResponseRedirect
2from django.contrib.auth import login, logout, authenticate
3from .forms import RegisterCustomerForm, RegisterAgentForm
4from home.models import Property
5from .models import Customer, User, Agent
6#from django.contrib.auth.decorators import login_required
7
8
9def favourite_add(request, id):
10 property = get_object_or_404(Property, id=id)
11 if property.favourites.filter(id=request.customer.id).exists():
12 property.favourites.remove(request.customer)
13 else:
14 property.favourites.add(request.customer)
15 return HttpResponseRedirect(request.META['HTTP_REFERER'])
16
17
18def login_user(request):
19 if request.method == "POST":
20 email = request.POST["email"]
21 password = request.POST["password"]
22 user = authenticate(request, email=email, password=password)
23 if user is not None:
24 login(request, user)
25 return redirect("home")
26 else:
27 return redirect("login")
28 else:
29 return render(request, "authenticate/login.html")
30
31
32def register_customer(request):
33 if request.method == "POST":
34 form = RegisterCustomerForm(request.POST)
35 if form.is_valid():
36 form.save()
37 username = form.cleaned_data["email"]
38 password = form.cleaned_data["password1"]
39 user = authenticate(username=username, password=password)
40 login(request, user)
41 return redirect("home")
42 else:
43 form = RegisterCustomerForm()
44
45 return render(request, "authenticate/register_customer.html", {"form": form})
46
47
48def register_agent(request):
49 if request.method == "POST":
50 form = RegisterAgentForm(request.POST)
51 if form.is_valid():
52 form.save()
53 username = form.cleaned_data["email"]
54 password = form.cleaned_data["password1"]
55 user = authenticate(username=username, password=password)
56 login(request, user)
57 return redirect("home")
58 else:
59 form = RegisterAgentForm()
60
61 return render(request, "authenticate/register_agent.html", {"form": form})
62
63
64def logout_user(request):
65 logout(request)
66 return redirect("home")
67
68
69def profile_page(request):
70 agent = User.objects.all()
71 customer = Customer.objects.all()
72 properties = Property.objects.all()
73 property = Property.objects.filter(favourites=request.user.id)
74
75 context = {
76 "agent": agent,
77 "customer": customer,
78 "properties": properties,
79 "property":property
80 }
81
82 return render(request, "authenticate/profile.html", context)
83