diff --git a/db.sqlite3 b/db.sqlite3
new file mode 100644
index 00000000..695f50a1
Binary files /dev/null and b/db.sqlite3 differ
diff --git a/taxi/views.py b/taxi/views.py
index 82ad312f..3ca8c26b 100644
--- a/taxi/views.py
+++ b/taxi/views.py
@@ -1,33 +1,39 @@
+from django.contrib.auth.decorators import login_required
+from django.contrib.auth.mixins import LoginRequiredMixin
from django.shortcuts import render
from django.views import generic
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()
+ num_visits = request.session.get("num_visits", 1)
+ request.session["num_visits"] = num_visits + 1
context = {
"num_drivers": num_drivers,
"num_cars": num_cars,
"num_manufacturers": num_manufacturers,
+ "num_visits": 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")
@@ -37,11 +43,11 @@ class CarDetailView(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..5472d81c 100644
--- a/taxi_service/settings.py
+++ b/taxi_service/settings.py
@@ -70,6 +70,8 @@
},
]
+LOGIN_REDIRECT_URL = "/"
+
WSGI_APPLICATION = "taxi_service.wsgi.application"
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..cccb46e3 100644
--- a/templates/includes/sidebar.html
+++ b/templates/includes/sidebar.html
@@ -1,3 +1,11 @@
+ {% if user.is_authenticated %}
+ {{ user.username }}
+
+ Logout
+ {% else %}
+ Login
+ {% endif %}
+
You have visited this page {{ num_visits }} time{{ num_visits|pluralize }}.
{% endblock %}