Create some initial models

This commit is contained in:
2021-02-03 23:18:31 +00:00
parent ac81466985
commit 4281941814
15 changed files with 119 additions and 18 deletions

View File

@@ -47,6 +47,7 @@ INSTALLED_APPS = [
# 1st Party # 1st Party
'theme', 'theme',
'users', 'users',
'vehicles'
] ]
MIDDLEWARE = [ MIDDLEWARE = [

View File

@@ -3,6 +3,7 @@ from django.urls import path
from django.conf.urls import include from django.conf.urls import include
urlpatterns = [ urlpatterns = [
path('', include('users.urls')), path('user/', include('users.urls')),
path('vehicles/', include('vehicles.urls')),
path('admin/', admin.site.urls), path('admin/', admin.site.urls),
] ]

View File

@@ -3,10 +3,4 @@ module.exports = {
tailwindcss: {}, tailwindcss: {},
autoprefixer: {}, autoprefixer: {},
}, },
purge: [
// Templates within theme app (e.g. base.html)
'../templates/**/*.html',
// Templates in other apps
'../../templates/**/*.html',
],
} }

View File

@@ -7,9 +7,9 @@ module.exports = {
'../templates/**/*.html', '../templates/**/*.html',
// Templates in other apps. Uncomment the following line if it matches // Templates in other apps. Uncomment the following line if it matches
// your project structure or change it to match. // your project structure or change it to match.
// '../../templates/**/*.html', '../../templates/**/*.html',
], ],
darkMode: false, // or 'media' or 'class' darkMode: 'media',
theme: { theme: {
extend: {}, extend: {},
}, },

View File

@@ -6,7 +6,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge"> <meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Tailwind CSS Skeleton</title> <title>Fleet Management</title>
<meta name="description" content=""> <meta name="description" content="">
<meta name="keywords" content=""> <meta name="keywords" content="">
<meta name="author" content=""> <meta name="author" content="">
@@ -15,15 +15,9 @@
</head> </head>
<body class="bg-grey-lightest font-serif leading-normal tracking-normal"> <body class="bg-grey-lightest font-serif leading-normal tracking-normal">
<div class="container mx-auto"> <div class="container mx-auto">
<section class="flex items-center justify-center h-screen"> {% block content %}
<h1 class="text-5xl">Django + Tailwind = ❤️</h1> {% endblock %}
</section>
</div> </div>
</body> </body>
</html> </html>

0
vehicles/__init__.py Normal file
View File

3
vehicles/admin.py Normal file
View File

@@ -0,0 +1,3 @@
from django.contrib import admin
# Register your models here.

5
vehicles/apps.py Normal file
View File

@@ -0,0 +1,5 @@
from django.apps import AppConfig
class VehiclesConfig(AppConfig):
name = 'vehicles'

View File

@@ -0,0 +1,53 @@
# Generated by Django 3.1.6 on 2021-02-03 23:18
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
initial = True
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name='Make',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=80)),
],
),
migrations.CreateModel(
name='Model',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=80)),
('make', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='vehicles.make')),
],
),
migrations.CreateModel(
name='Status',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=80)),
],
),
migrations.CreateModel(
name='Vehicle',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=50)),
('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)),
('model', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='vehicles.model')),
('owner', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
('status', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='vehicles.status')),
],
),
]

View File

26
vehicles/models.py Normal file
View File

@@ -0,0 +1,26 @@
from django.db import models
class Status(models.Model):
name = models.CharField(max_length=80)
class Make(models.Model):
name = models.CharField(max_length=80)
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)
class Vehicle(models.Model):
name = models.CharField(max_length=50)
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)

View File

@@ -0,0 +1,5 @@
{% extends 'base.html' %}
{% block content %}
Test!
{% endblock %}

3
vehicles/tests.py Normal file
View File

@@ -0,0 +1,3 @@
from django.test import TestCase
# Create your tests here.

7
vehicles/urls.py Normal file
View File

@@ -0,0 +1,7 @@
from django.urls import path
from .views import VehicleList
urlpatterns = [
path('list/', VehicleList.as_view(), name='vehicle_list')
]

9
vehicles/views.py Normal file
View File

@@ -0,0 +1,9 @@
from django.shortcuts import render
from django.views.generic.list import ListView
from .models import Vehicle
class VehicleList(ListView):
template_name = 'vehicle_list.html'
model = Vehicle