diff --git a/theme/templates/base.html b/theme/templates/base.html
index 0b38212..1615d38 100644
--- a/theme/templates/base.html
+++ b/theme/templates/base.html
@@ -9,13 +9,13 @@
+
+
{% block content %}
{% endblock %}
diff --git a/users/models.py b/users/models.py
index 977a380..f72e83e 100644
--- a/users/models.py
+++ b/users/models.py
@@ -1,6 +1,16 @@
from django.contrib.auth.models import AbstractUser
from django.db import models
-# Create your models here.
+
class CustomUser(AbstractUser):
pass
+
+
+class Licence(models.Model):
+ licence_number = models.CharField(max_length=100)
+ date_obtained = models.DateField()
+ # entitlements
+
+
+class Driver(CustomUser):
+ licence = models.ForeignKey('Licence', on_delete=models.CASCADE)
diff --git a/vehicles/admin.py b/vehicles/admin.py
index 8c38f3f..49388b5 100644
--- a/vehicles/admin.py
+++ b/vehicles/admin.py
@@ -1,3 +1,8 @@
from django.contrib import admin
-# Register your models here.
+from vehicles.models import Make, Model, Status, Vehicle
+
+admin.site.register(Make)
+admin.site.register(Model)
+admin.site.register(Status)
+admin.site.register(Vehicle)
diff --git a/vehicles/models.py b/vehicles/models.py
index 7e4e30b..4d2ef2e 100644
--- a/vehicles/models.py
+++ b/vehicles/models.py
@@ -4,23 +4,45 @@ from django.db import models
class Status(models.Model):
name = models.CharField(max_length=80)
+ def __str__(self):
+ return self.name
+
class Make(models.Model):
name = models.CharField(max_length=80)
+ def __str__(self):
+ return self.name
+
class Model(models.Model): # Cause that won't be a confusing name at all
name = models.CharField(max_length=80)
make = models.ForeignKey('Make', on_delete=models.CASCADE)
+ def __str__(self):
+ return "{} {}".format(self.make.name, self.name)
+
class Vehicle(models.Model):
name = models.CharField(max_length=50)
+ # color
+
+ yom = models.DateField()
+ first_registered = models.DateField()
+ date_purchased = models.DateField()
+
reg_number = models.CharField(max_length=7)
vin_number = models.CharField(max_length=50)
chassis_number = models.CharField(max_length=50)
- engine_number = models.CharField(max_length=50)
status = models.ForeignKey('Status', on_delete=models.CASCADE)
owner = models.ForeignKey('users.CustomUser', blank=True, null=True, on_delete=models.CASCADE)
model = models.ForeignKey('Model', on_delete=models.CASCADE)
+
+ def __str__(self):
+ return self.name
+
+
+class ICEVehicle(Vehicle):
+ engine_number = models.CharField(max_length=50)
+ capacity = models.IntegerField()
diff --git a/vehicles/templates/vehicle_detail.html b/vehicles/templates/vehicle_detail.html
new file mode 100644
index 0000000..a88ed54
--- /dev/null
+++ b/vehicles/templates/vehicle_detail.html
@@ -0,0 +1,5 @@
+{% extends 'base.html' %}
+
+{% block content %}
+
Vehicle {{ object }}
+{% endblock %}
diff --git a/vehicles/templates/vehicle_list.html b/vehicles/templates/vehicle_list.html
index 6f8051f..5bf3563 100644
--- a/vehicles/templates/vehicle_list.html
+++ b/vehicles/templates/vehicle_list.html
@@ -1,5 +1,37 @@
{% extends 'base.html' %}
{% block content %}
-Test!
+
All Vehicles
+
+
+ | Name |
+ Make & Model |
+ Registration |
+ Owner |
+ Status |
+ VIN Number |
+ Engine Number |
+ Chassis Number |
+ |
+
+
+ {% for object in object_list %}
+
+ | {{ object.name }} |
+ {{ object.model }} |
+ {{ object.reg_number|slice:"4:" }} {{ object.reg_number|slice:":3" }} |
+ {{ object.owner|default:"God" }} |
+ {{ object.status }} |
+ {{ object.vin_number|default:"Unknown" }} |
+ {{ object.engine_number|default:"Unknown" }} |
+ {{ object.chassis_number|default:"Unknown" }} |
+ {% url 'vehicle_detail' object.pk %} |
+
+ {% empty %}
+
+ | Nothing found! |
+
+ {% endfor %}
+
+
{% endblock %}
diff --git a/vehicles/urls.py b/vehicles/urls.py
index acc146c..9e065f9 100644
--- a/vehicles/urls.py
+++ b/vehicles/urls.py
@@ -1,7 +1,8 @@
from django.urls import path
-from .views import VehicleList
+from . import views
urlpatterns = [
- path('list/', VehicleList.as_view(), name='vehicle_list')
+ path('list/', views.VehicleList.as_view(), name='vehicle_list'),
+ path('
/', views.VehicleDetail.as_view(), name='vehicle_detail')
]
diff --git a/vehicles/views.py b/vehicles/views.py
index 136fd50..e545f79 100644
--- a/vehicles/views.py
+++ b/vehicles/views.py
@@ -1,9 +1,14 @@
from django.shortcuts import render
-from django.views.generic.list import ListView
+from django.views import generic
from .models import Vehicle
-class VehicleList(ListView):
+class VehicleList(generic.ListView):
template_name = 'vehicle_list.html'
model = Vehicle
+
+
+class VehicleDetail(generic.DetailView):
+ template_name = 'vehicle_detail.html'
+ model = Vehicle