From 5874c5299bcb619884ffc67cdb80b2212ed7d2de Mon Sep 17 00:00:00 2001 From: Arona Jones Date: Sun, 14 Feb 2021 11:49:49 +0000 Subject: [PATCH] More initial sketching --- theme/templates/base.html | 6 ++--- users/models.py | 12 ++++++++- vehicles/admin.py | 7 +++++- vehicles/models.py | 24 +++++++++++++++++- vehicles/templates/vehicle_detail.html | 5 ++++ vehicles/templates/vehicle_list.html | 34 +++++++++++++++++++++++++- vehicles/urls.py | 5 ++-- vehicles/views.py | 9 +++++-- 8 files changed, 91 insertions(+), 11 deletions(-) create mode 100644 vehicles/templates/vehicle_detail.html 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 @@ Fleet Management - + - -
+ +
{% 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

+ + + + + + + + + + + + + + {% for object in object_list %} + + + + + + + + + + + + {% empty %} + + + + {% endfor %} + +
NameMake & ModelRegistrationOwnerStatusVIN NumberEngine NumberChassis Number
{{ 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 %}
Nothing found!
{% 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