diff --git a/taxi/views.py b/taxi/views.py
index 82ad312f..6f4b7283 100644
--- a/taxi/views.py
+++ b/taxi/views.py
@@ -1,47 +1,51 @@
from django.shortcuts import render
from django.views import generic
-
+from django.contrib.auth.decorators import login_required
+from django.contrib.auth.mixins import LoginRequiredMixin
from .models import Driver, Car, Manufacturer
+@login_required
def index(request):
"""View function for the home page of the site."""
num_drivers = Driver.objects.count()
num_cars = Car.objects.count()
num_manufacturers = Manufacturer.objects.count()
+ request.session["num_visits"] = (request.session.get("num_visits", 0) + 1)
context = {
"num_drivers": num_drivers,
"num_cars": num_cars,
"num_manufacturers": num_manufacturers,
+ "num_visits": request.session["num_visits"],
}
return render(request, "taxi/index.html", context=context)
-class ManufacturerListView(generic.ListView):
+class ManufacturerListView(LoginRequiredMixin, generic.ListView):
model = Manufacturer
context_object_name = "manufacturer_list"
template_name = "taxi/manufacturer_list.html"
paginate_by = 5
-class CarListView(generic.ListView):
+class CarListView(LoginRequiredMixin, generic.ListView):
model = Car
paginate_by = 5
queryset = Car.objects.select_related("manufacturer")
-class CarDetailView(generic.DetailView):
+class CarDetailView(LoginRequiredMixin, generic.DetailView):
model = Car
-class DriverListView(generic.ListView):
+class DriverListView(LoginRequiredMixin, generic.ListView):
model = Driver
paginate_by = 5
-class DriverDetailView(generic.DetailView):
+class DriverDetailView(LoginRequiredMixin, generic.DetailView):
model = Driver
queryset = Driver.objects.prefetch_related("cars__manufacturer")
diff --git a/taxi_service/settings.py b/taxi_service/settings.py
index b6c0cf19..cc71a76f 100644
--- a/taxi_service/settings.py
+++ b/taxi_service/settings.py
@@ -108,6 +108,8 @@
AUTH_USER_MODEL = "taxi.Driver"
+LOGIN_REDIRECT_URL = "/"
+
# Internationalization
# https://docs.djangoproject.com/en/4.0/topics/i18n/
diff --git a/taxi_service/urls.py b/taxi_service/urls.py
index 8b94449f..baf83d1a 100644
--- a/taxi_service/urls.py
+++ b/taxi_service/urls.py
@@ -22,4 +22,5 @@
urlpatterns = [
path("admin/", admin.site.urls),
path("", include("taxi.urls", namespace="taxi")),
+ path("accounts/", include("django.contrib.auth.urls")),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
diff --git a/templates/includes/sidebar.html b/templates/includes/sidebar.html
index b7cd72dc..46f67df7 100644
--- a/templates/includes/sidebar.html
+++ b/templates/includes/sidebar.html
@@ -1,3 +1,11 @@
+{% if user.is_authenticated %}
+ User: {{ user.username }}
+ {% else %}
+ Login
+ {% endif %}
+
+Logout
+
You have visited this page {{ num_visits }} time{{ num_visits|pluralize }}
{% endblock %}