More initial sketching
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
5
vehicles/templates/vehicle_detail.html
Normal file
5
vehicles/templates/vehicle_detail.html
Normal file
@@ -0,0 +1,5 @@
|
||||
{% extends 'base.html' %}
|
||||
|
||||
{% block content %}
|
||||
<h1 class="text-2xl">Vehicle {{ object }}</h1>
|
||||
{% endblock %}
|
||||
@@ -1,5 +1,37 @@
|
||||
{% extends 'base.html' %}
|
||||
|
||||
{% block content %}
|
||||
Test!
|
||||
<h1 class="text-2xl">All Vehicles</h1>
|
||||
<table class="table-auto border">
|
||||
<thead>
|
||||
<th class="p-2">Name</th>
|
||||
<th class="p-2">Make & Model</th>
|
||||
<th class="p-2">Registration</th>
|
||||
<th class="p-2">Owner</th>
|
||||
<th class="p-2">Status</th>
|
||||
<th class="p-2">VIN Number</th>
|
||||
<th class="p-2">Engine Number</th>
|
||||
<th class="p-2">Chassis Number</th>
|
||||
<th></th>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for object in object_list %}
|
||||
<tr>
|
||||
<th scope="row" class="p-2">{{ object.name }}</th>
|
||||
<td class="p-2">{{ object.model }}</td>
|
||||
<td class="bg-yellow-400 text-black font-black rounded text-xl px-2">{{ object.reg_number|slice:"4:" }} {{ object.reg_number|slice:":3" }}</td>
|
||||
<td class="p-2">{{ object.owner|default:"God" }}</td>
|
||||
<td class="p-2">{{ object.status }}</td>
|
||||
<td class="p-2">{{ object.vin_number|default:"Unknown" }}</td>
|
||||
<td class="p-2">{{ object.engine_number|default:"Unknown" }}</td>
|
||||
<td class="p-2">{{ object.chassis_number|default:"Unknown" }}</td>
|
||||
<td>{% url 'vehicle_detail' object.pk %}</td>
|
||||
</tr>
|
||||
{% empty %}
|
||||
<tr class="bg-yellow-400">
|
||||
<td span="10">Nothing found!</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% endblock %}
|
||||
|
||||
@@ -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('<int:pk>/', views.VehicleDetail.as_view(), name='vehicle_detail')
|
||||
]
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user