Add IntelliJ IDEA project configuration files
This commit adds IntelliJ IDEA-specific configuration files for the project, including module setup, version control integration, inspection profiles, and workspace settings. These files facilitate development environment configuration for contributors using IntelliJ IDEA.master
parent
ec8a920b9f
commit
21800ea5e3
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="Black">
|
||||||
|
<option name="sdkName" value="Python 3.13 (DepoT)" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
@ -0,0 +1,16 @@
|
|||||||
|
"""
|
||||||
|
ASGI config for DepoT project.
|
||||||
|
|
||||||
|
It exposes the ASGI callable as a module-level variable named ``application``.
|
||||||
|
|
||||||
|
For more information on this file, see
|
||||||
|
https://docs.djangoproject.com/en/5.2/howto/deployment/asgi/
|
||||||
|
"""
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
from django.core.asgi import get_asgi_application
|
||||||
|
|
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "DepoT.settings")
|
||||||
|
|
||||||
|
application = get_asgi_application()
|
||||||
@ -0,0 +1,140 @@
|
|||||||
|
"""
|
||||||
|
Django settings for DepoT project.
|
||||||
|
|
||||||
|
Generated by 'django-admin startproject' using Django 5.2.3.
|
||||||
|
|
||||||
|
For more information on this file, see
|
||||||
|
https://docs.djangoproject.com/en/5.2/topics/settings/
|
||||||
|
|
||||||
|
For the full list of settings and their values, see
|
||||||
|
https://docs.djangoproject.com/en/5.2/ref/settings/
|
||||||
|
"""
|
||||||
|
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
# Build paths inside the project like this: BASE_DIR / 'subdir'.
|
||||||
|
BASE_DIR = Path(__file__).resolve().parent.parent
|
||||||
|
|
||||||
|
|
||||||
|
# Quick-start development settings - unsuitable for production
|
||||||
|
# See https://docs.djangoproject.com/en/5.2/howto/deployment/checklist/
|
||||||
|
|
||||||
|
# SECURITY WARNING: keep the secret key used in production secret!
|
||||||
|
SECRET_KEY = "django-insecure-g%187p84o9^rr)3#9@r3n^o2v1i%@6=+puxm7hlodg+kbsk%n#"
|
||||||
|
|
||||||
|
# SECURITY WARNING: don't run with debug turned on in production!
|
||||||
|
DEBUG = True
|
||||||
|
|
||||||
|
ALLOWED_HOSTS = []
|
||||||
|
|
||||||
|
|
||||||
|
# Application definition
|
||||||
|
|
||||||
|
PROJECT_APPS = [
|
||||||
|
"common",
|
||||||
|
"booking",
|
||||||
|
"containers",
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
INSTALLED_APPS = [
|
||||||
|
"django.contrib.auth",
|
||||||
|
"django.contrib.contenttypes",
|
||||||
|
"django.contrib.sessions",
|
||||||
|
"django.contrib.messages",
|
||||||
|
"django.contrib.staticfiles",
|
||||||
|
] + PROJECT_APPS
|
||||||
|
|
||||||
|
MIDDLEWARE = [
|
||||||
|
"django.middleware.security.SecurityMiddleware",
|
||||||
|
"django.contrib.sessions.middleware.SessionMiddleware",
|
||||||
|
"django.middleware.common.CommonMiddleware",
|
||||||
|
"django.middleware.csrf.CsrfViewMiddleware",
|
||||||
|
"django.contrib.auth.middleware.AuthenticationMiddleware",
|
||||||
|
"django.contrib.messages.middleware.MessageMiddleware",
|
||||||
|
"django.middleware.clickjacking.XFrameOptionsMiddleware",
|
||||||
|
]
|
||||||
|
|
||||||
|
ROOT_URLCONF = "DepoT.urls"
|
||||||
|
|
||||||
|
TEMPLATES = [
|
||||||
|
{
|
||||||
|
"BACKEND": "django.template.backends.django.DjangoTemplates",
|
||||||
|
"DIRS": [BASE_DIR / 'templates']
|
||||||
|
,
|
||||||
|
"APP_DIRS": True,
|
||||||
|
"OPTIONS": {
|
||||||
|
"context_processors": [
|
||||||
|
"django.template.context_processors.request",
|
||||||
|
"django.contrib.auth.context_processors.auth",
|
||||||
|
"django.contrib.messages.context_processors.messages",
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
WSGI_APPLICATION = "DepoT.wsgi.application"
|
||||||
|
|
||||||
|
|
||||||
|
# Database
|
||||||
|
# https://docs.djangoproject.com/en/5.2/ref/settings/#databases
|
||||||
|
|
||||||
|
# DATABASES = {
|
||||||
|
# "default": {
|
||||||
|
# "ENGINE": "django.db.backends.sqlite3",
|
||||||
|
# "NAME": BASE_DIR / "db.sqlite3",
|
||||||
|
# }
|
||||||
|
# }
|
||||||
|
|
||||||
|
DATABASES = {
|
||||||
|
"default": {
|
||||||
|
"ENGINE": "django.db.backends.postgresql",
|
||||||
|
"NAME": "depot",
|
||||||
|
"USER": "postgres",
|
||||||
|
"PASSWORD": "admin",
|
||||||
|
"HOST": "127.0.0.1",
|
||||||
|
"PORT": "5432",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Password validation
|
||||||
|
# https://docs.djangoproject.com/en/5.2/ref/settings/#auth-password-validators
|
||||||
|
|
||||||
|
AUTH_PASSWORD_VALIDATORS = [
|
||||||
|
{
|
||||||
|
"NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"NAME": "django.contrib.auth.password_validation.MinimumLengthValidator",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"NAME": "django.contrib.auth.password_validation.CommonPasswordValidator",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"NAME": "django.contrib.auth.password_validation.NumericPasswordValidator",
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
# Internationalization
|
||||||
|
# https://docs.djangoproject.com/en/5.2/topics/i18n/
|
||||||
|
|
||||||
|
LANGUAGE_CODE = "en-us"
|
||||||
|
|
||||||
|
TIME_ZONE = "UTC"
|
||||||
|
|
||||||
|
USE_I18N = True
|
||||||
|
|
||||||
|
USE_TZ = True
|
||||||
|
|
||||||
|
|
||||||
|
# Static files (CSS, JavaScript, Images)
|
||||||
|
# https://docs.djangoproject.com/en/5.2/howto/static-files/
|
||||||
|
|
||||||
|
STATIC_URL = "static/"
|
||||||
|
|
||||||
|
# Default primary key field type
|
||||||
|
# https://docs.djangoproject.com/en/5.2/ref/settings/#default-auto-field
|
||||||
|
|
||||||
|
DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
|
||||||
@ -0,0 +1,23 @@
|
|||||||
|
"""
|
||||||
|
URL configuration for DepoT project.
|
||||||
|
|
||||||
|
The `urlpatterns` list routes URLs to views. For more information please see:
|
||||||
|
https://docs.djangoproject.com/en/5.2/topics/http/urls/
|
||||||
|
Examples:
|
||||||
|
Function views
|
||||||
|
1. Add an import: from my_app import views
|
||||||
|
2. Add a URL to urlpatterns: path('', views.home, name='home')
|
||||||
|
Class-based views
|
||||||
|
1. Add an import: from other_app.views import Home
|
||||||
|
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
|
||||||
|
Including another URLconf
|
||||||
|
1. Import the include() function: from django.urls import include, path
|
||||||
|
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
|
||||||
|
"""
|
||||||
|
|
||||||
|
# from django.contrib import admin
|
||||||
|
from django.urls import path
|
||||||
|
|
||||||
|
urlpatterns = [
|
||||||
|
# path("admin/", admin.site.urls),
|
||||||
|
]
|
||||||
@ -0,0 +1,16 @@
|
|||||||
|
"""
|
||||||
|
WSGI config for DepoT project.
|
||||||
|
|
||||||
|
It exposes the WSGI callable as a module-level variable named ``application``.
|
||||||
|
|
||||||
|
For more information on this file, see
|
||||||
|
https://docs.djangoproject.com/en/5.2/howto/deployment/wsgi/
|
||||||
|
"""
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
from django.core.wsgi import get_wsgi_application
|
||||||
|
|
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "DepoT.settings")
|
||||||
|
|
||||||
|
application = get_wsgi_application()
|
||||||
@ -0,0 +1,3 @@
|
|||||||
|
from django.contrib import admin
|
||||||
|
|
||||||
|
# Register your models here.
|
||||||
@ -0,0 +1,6 @@
|
|||||||
|
from django.apps import AppConfig
|
||||||
|
|
||||||
|
|
||||||
|
class BookingConfig(AppConfig):
|
||||||
|
default_auto_field = "django.db.models.BigAutoField"
|
||||||
|
name = "booking"
|
||||||
@ -0,0 +1,61 @@
|
|||||||
|
# Generated by Django 5.2.3 on 2025-06-25 12:33
|
||||||
|
|
||||||
|
import django.db.models.deletion
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
initial = True
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
("common", "0001_initial"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name="BookingModel",
|
||||||
|
fields=[
|
||||||
|
(
|
||||||
|
"id",
|
||||||
|
models.BigAutoField(
|
||||||
|
auto_created=True,
|
||||||
|
primary_key=True,
|
||||||
|
serialize=False,
|
||||||
|
verbose_name="ID",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
("number", models.CharField(max_length=50, unique=True)),
|
||||||
|
("vehicles", models.CharField(blank=True, null=True)),
|
||||||
|
("container_count", models.IntegerField()),
|
||||||
|
("carrier", models.CharField(blank=True, max_length=100, null=True)),
|
||||||
|
("visible", models.BooleanField(default=True)),
|
||||||
|
("is_new", models.BooleanField(default=True)),
|
||||||
|
(
|
||||||
|
"container_number",
|
||||||
|
models.CharField(blank=True, max_length=11, null=True),
|
||||||
|
),
|
||||||
|
("vehicles_left", models.IntegerField(blank=True, null=True)),
|
||||||
|
("created_on", models.DateTimeField(auto_now_add=True)),
|
||||||
|
("created_by", models.IntegerField()),
|
||||||
|
("updated_on", models.DateTimeField(auto_now=True)),
|
||||||
|
("updated_by", models.IntegerField()),
|
||||||
|
(
|
||||||
|
"container_type",
|
||||||
|
models.ForeignKey(
|
||||||
|
on_delete=django.db.models.deletion.CASCADE,
|
||||||
|
related_name="booking_container_types",
|
||||||
|
to="common.containertypemodel",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"line",
|
||||||
|
models.ForeignKey(
|
||||||
|
on_delete=django.db.models.deletion.CASCADE,
|
||||||
|
related_name="booking_lines",
|
||||||
|
to="common.linesmodel",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
]
|
||||||
@ -0,0 +1,27 @@
|
|||||||
|
from django.db import models
|
||||||
|
from common.models import ContainerTypeModel, LinesModel, OperationModel, PayerModel
|
||||||
|
|
||||||
|
# Create your models here.
|
||||||
|
class BookingModel(models.Model):
|
||||||
|
number = models.CharField(max_length=50, unique=True)
|
||||||
|
vehicles = models.CharField(blank=True, null=True)
|
||||||
|
container_type = models.ForeignKey(
|
||||||
|
ContainerTypeModel,
|
||||||
|
on_delete=models.CASCADE,
|
||||||
|
related_name='booking_container_types',
|
||||||
|
)
|
||||||
|
container_count = models.IntegerField()
|
||||||
|
carrier = models.CharField(max_length=100, blank=True, null=True)
|
||||||
|
line = models.ForeignKey(
|
||||||
|
LinesModel,
|
||||||
|
on_delete=models.CASCADE,
|
||||||
|
related_name='booking_lines',
|
||||||
|
)
|
||||||
|
visible = models.BooleanField(default=True)
|
||||||
|
is_new = models.BooleanField(default=True)
|
||||||
|
container_number = models.CharField(max_length=11, blank=True, null=True)
|
||||||
|
vehicles_left = models.IntegerField(blank=True, null=True)
|
||||||
|
created_on = models.DateTimeField(auto_now_add=True)
|
||||||
|
created_by = models.IntegerField()
|
||||||
|
updated_on = models.DateTimeField(auto_now=True)
|
||||||
|
updated_by = models.IntegerField()
|
||||||
@ -0,0 +1,3 @@
|
|||||||
|
from django.test import TestCase
|
||||||
|
|
||||||
|
# Create your tests here.
|
||||||
@ -0,0 +1,3 @@
|
|||||||
|
from django.shortcuts import render
|
||||||
|
|
||||||
|
# Create your views here.
|
||||||
@ -0,0 +1,3 @@
|
|||||||
|
from django.contrib import admin
|
||||||
|
|
||||||
|
# Register your models here.
|
||||||
@ -0,0 +1,6 @@
|
|||||||
|
from django.apps import AppConfig
|
||||||
|
|
||||||
|
|
||||||
|
class CommonConfig(AppConfig):
|
||||||
|
default_auto_field = "django.db.models.BigAutoField"
|
||||||
|
name = "common"
|
||||||
@ -0,0 +1,132 @@
|
|||||||
|
# Generated by Django 5.2.3 on 2025-06-25 12:33
|
||||||
|
|
||||||
|
import django.db.models.deletion
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
initial = True
|
||||||
|
|
||||||
|
dependencies = []
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name="ContainerKindModel",
|
||||||
|
fields=[
|
||||||
|
(
|
||||||
|
"id",
|
||||||
|
models.BigAutoField(
|
||||||
|
auto_created=True,
|
||||||
|
primary_key=True,
|
||||||
|
serialize=False,
|
||||||
|
verbose_name="ID",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
("name", models.CharField(max_length=100, unique=True)),
|
||||||
|
("short_name", models.CharField(max_length=5, unique=True)),
|
||||||
|
("description", models.TextField(blank=True, null=True)),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
"ordering": ["name"],
|
||||||
|
"abstract": False,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name="OperationModel",
|
||||||
|
fields=[
|
||||||
|
(
|
||||||
|
"id",
|
||||||
|
models.BigAutoField(
|
||||||
|
auto_created=True,
|
||||||
|
primary_key=True,
|
||||||
|
serialize=False,
|
||||||
|
verbose_name="ID",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
("name", models.CharField(max_length=100, unique=True)),
|
||||||
|
("short_name", models.CharField(max_length=5, unique=True)),
|
||||||
|
("description", models.TextField(blank=True, null=True)),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
"ordering": ["name"],
|
||||||
|
"abstract": False,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name="PayerModel",
|
||||||
|
fields=[
|
||||||
|
(
|
||||||
|
"id",
|
||||||
|
models.BigAutoField(
|
||||||
|
auto_created=True,
|
||||||
|
primary_key=True,
|
||||||
|
serialize=False,
|
||||||
|
verbose_name="ID",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
("name", models.CharField(max_length=100, unique=True)),
|
||||||
|
("short_name", models.CharField(max_length=5, unique=True)),
|
||||||
|
("description", models.TextField(blank=True, null=True)),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
"ordering": ["name"],
|
||||||
|
"abstract": False,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name="ContainerTypeModel",
|
||||||
|
fields=[
|
||||||
|
(
|
||||||
|
"id",
|
||||||
|
models.BigAutoField(
|
||||||
|
auto_created=True,
|
||||||
|
primary_key=True,
|
||||||
|
serialize=False,
|
||||||
|
verbose_name="ID",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
("name", models.CharField(max_length=6, unique=True)),
|
||||||
|
("length", models.IntegerField()),
|
||||||
|
("height", models.BooleanField()),
|
||||||
|
("deleted", models.BooleanField(default=False)),
|
||||||
|
(
|
||||||
|
"container_type",
|
||||||
|
models.ForeignKey(
|
||||||
|
on_delete=django.db.models.deletion.CASCADE,
|
||||||
|
related_name="container_type_container_kinds",
|
||||||
|
to="common.containerkindmodel",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name="LinesModel",
|
||||||
|
fields=[
|
||||||
|
(
|
||||||
|
"id",
|
||||||
|
models.BigAutoField(
|
||||||
|
auto_created=True,
|
||||||
|
primary_key=True,
|
||||||
|
serialize=False,
|
||||||
|
verbose_name="ID",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
("name", models.CharField(max_length=100, unique=True)),
|
||||||
|
("short_name", models.CharField(max_length=5, unique=True)),
|
||||||
|
("description", models.TextField(blank=True, null=True)),
|
||||||
|
(
|
||||||
|
"payer",
|
||||||
|
models.ForeignKey(
|
||||||
|
on_delete=django.db.models.deletion.CASCADE,
|
||||||
|
related_name="line_payers",
|
||||||
|
to="common.payermodel",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
"ordering": ["name"],
|
||||||
|
"abstract": False,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
]
|
||||||
@ -0,0 +1,41 @@
|
|||||||
|
from django.db import models
|
||||||
|
|
||||||
|
# Create your models here.
|
||||||
|
class NomenclatureBaseModel(models.Model):
|
||||||
|
name = models.CharField(max_length=100, unique=True)
|
||||||
|
short_name = models.CharField(max_length=5, unique=True)
|
||||||
|
description = models.TextField(blank=True, null=True)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
abstract = True
|
||||||
|
ordering = ['name']
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.name
|
||||||
|
|
||||||
|
class PayerModel(NomenclatureBaseModel):
|
||||||
|
...
|
||||||
|
|
||||||
|
class LinesModel(NomenclatureBaseModel):
|
||||||
|
payer = models.ForeignKey(
|
||||||
|
PayerModel,
|
||||||
|
on_delete=models.CASCADE,
|
||||||
|
related_name='line_payers'
|
||||||
|
)
|
||||||
|
|
||||||
|
class OperationModel(NomenclatureBaseModel):
|
||||||
|
...
|
||||||
|
|
||||||
|
class ContainerKindModel(NomenclatureBaseModel):
|
||||||
|
...
|
||||||
|
|
||||||
|
class ContainerTypeModel(models.Model):
|
||||||
|
name = models.CharField(max_length=6, unique=True)
|
||||||
|
length = models.IntegerField()
|
||||||
|
height = models.BooleanField()
|
||||||
|
container_type = models.ForeignKey(
|
||||||
|
ContainerKindModel,
|
||||||
|
on_delete=models.CASCADE,
|
||||||
|
related_name='container_type_container_kinds'
|
||||||
|
)
|
||||||
|
deleted = models.BooleanField(default=False)
|
||||||
@ -0,0 +1,3 @@
|
|||||||
|
from django.test import TestCase
|
||||||
|
|
||||||
|
# Create your tests here.
|
||||||
@ -0,0 +1,3 @@
|
|||||||
|
from django.shortcuts import render
|
||||||
|
|
||||||
|
# Create your views here.
|
||||||
@ -0,0 +1,3 @@
|
|||||||
|
from django.contrib import admin
|
||||||
|
|
||||||
|
# Register your models here.
|
||||||
@ -0,0 +1,6 @@
|
|||||||
|
from django.apps import AppConfig
|
||||||
|
|
||||||
|
|
||||||
|
class ContainersConfig(AppConfig):
|
||||||
|
default_auto_field = "django.db.models.BigAutoField"
|
||||||
|
name = "containers"
|
||||||
@ -0,0 +1,112 @@
|
|||||||
|
# Generated by Django 5.2.3 on 2025-06-25 12:33
|
||||||
|
|
||||||
|
import django.db.models.deletion
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
initial = True
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
("booking", "0001_initial"),
|
||||||
|
("common", "0001_initial"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name="Container",
|
||||||
|
fields=[
|
||||||
|
(
|
||||||
|
"id",
|
||||||
|
models.BigAutoField(
|
||||||
|
auto_created=True,
|
||||||
|
primary_key=True,
|
||||||
|
serialize=False,
|
||||||
|
verbose_name="ID",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
("number", models.CharField(max_length=11)),
|
||||||
|
("received_on", models.DateTimeField(auto_now_add=True)),
|
||||||
|
("received_by", models.IntegerField()),
|
||||||
|
(
|
||||||
|
"receive_vehicles",
|
||||||
|
models.CharField(blank=True, max_length=100, null=True),
|
||||||
|
),
|
||||||
|
("damages", models.TextField(blank=True, null=True)),
|
||||||
|
("heavy_damaged", models.BooleanField(default=False)),
|
||||||
|
("position", models.CharField(blank=True, max_length=100, null=True)),
|
||||||
|
("swept", models.BooleanField(default=False)),
|
||||||
|
("swept_on", models.DateTimeField(blank=True, null=True)),
|
||||||
|
("swept_by", models.IntegerField(blank=True, null=True)),
|
||||||
|
("washed", models.BooleanField(default=False)),
|
||||||
|
("washed_on", models.DateTimeField(blank=True, null=True)),
|
||||||
|
("washed_by", models.IntegerField(blank=True, null=True)),
|
||||||
|
("expedited", models.BooleanField(default=False)),
|
||||||
|
("expedited_on", models.DateTimeField(blank=True, null=True)),
|
||||||
|
("expedited_by", models.IntegerField(blank=True, null=True)),
|
||||||
|
(
|
||||||
|
"expedition_vehicle",
|
||||||
|
models.CharField(blank=True, max_length=100, null=True),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"booking",
|
||||||
|
models.ForeignKey(
|
||||||
|
on_delete=django.db.models.deletion.CASCADE,
|
||||||
|
related_name="container_bookings",
|
||||||
|
to="booking.bookingmodel",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"container_type",
|
||||||
|
models.ForeignKey(
|
||||||
|
on_delete=django.db.models.deletion.CASCADE,
|
||||||
|
related_name="container_container_types",
|
||||||
|
to="common.containertypemodel",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"line_id",
|
||||||
|
models.ForeignKey(
|
||||||
|
on_delete=django.db.models.deletion.CASCADE,
|
||||||
|
related_name="container_lines",
|
||||||
|
to="common.linesmodel",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name="ContainerHistory",
|
||||||
|
fields=[
|
||||||
|
(
|
||||||
|
"container_ptr",
|
||||||
|
models.OneToOneField(
|
||||||
|
auto_created=True,
|
||||||
|
on_delete=django.db.models.deletion.CASCADE,
|
||||||
|
parent_link=True,
|
||||||
|
primary_key=True,
|
||||||
|
serialize=False,
|
||||||
|
to="containers.container",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
("operation_date", models.DateTimeField(auto_now_add=True)),
|
||||||
|
(
|
||||||
|
"container",
|
||||||
|
models.ForeignKey(
|
||||||
|
on_delete=django.db.models.deletion.CASCADE,
|
||||||
|
related_name="history_containers",
|
||||||
|
to="containers.container",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"operation",
|
||||||
|
models.ForeignKey(
|
||||||
|
on_delete=django.db.models.deletion.CASCADE,
|
||||||
|
related_name="history_operations",
|
||||||
|
to="common.operationmodel",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
bases=("containers.container",),
|
||||||
|
),
|
||||||
|
]
|
||||||
@ -0,0 +1,51 @@
|
|||||||
|
from django.db import models
|
||||||
|
from common.models import LinesModel, ContainerTypeModel
|
||||||
|
|
||||||
|
# Create your models here.
|
||||||
|
class Container(models.Model):
|
||||||
|
number = models.CharField(max_length=11)
|
||||||
|
line_id = models.ForeignKey(
|
||||||
|
LinesModel,
|
||||||
|
on_delete=models.CASCADE,
|
||||||
|
related_name='container_lines',
|
||||||
|
)
|
||||||
|
container_type = models.ForeignKey(
|
||||||
|
ContainerTypeModel,
|
||||||
|
on_delete=models.CASCADE,
|
||||||
|
related_name='container_container_types',
|
||||||
|
)
|
||||||
|
received_on = models.DateTimeField(auto_now_add=True)
|
||||||
|
received_by = models.IntegerField()
|
||||||
|
receive_vehicles = models.CharField(max_length=100, blank=True, null=True)
|
||||||
|
damages = models.TextField(blank=True, null=True)
|
||||||
|
heavy_damaged = models.BooleanField(default=False)
|
||||||
|
position = models.CharField(max_length=100, blank=True, null=True)
|
||||||
|
swept = models.BooleanField(default=False)
|
||||||
|
swept_on = models.DateTimeField(blank=True, null=True)
|
||||||
|
swept_by = models.IntegerField(blank=True, null=True)
|
||||||
|
washed = models.BooleanField(default=False)
|
||||||
|
washed_on = models.DateTimeField(blank=True, null=True)
|
||||||
|
washed_by = models.IntegerField(blank=True, null=True)
|
||||||
|
booking = models.ForeignKey(
|
||||||
|
'booking.BookingModel',
|
||||||
|
on_delete=models.CASCADE,
|
||||||
|
related_name='container_bookings',
|
||||||
|
)
|
||||||
|
expedited = models.BooleanField(default=False)
|
||||||
|
expedited_on = models.DateTimeField(blank=True, null=True)
|
||||||
|
expedited_by = models.IntegerField(blank=True, null=True)
|
||||||
|
expedition_vehicle = models.CharField(max_length=100, blank=True, null=True)
|
||||||
|
|
||||||
|
|
||||||
|
class ContainerHistory(Container):
|
||||||
|
operation = models.ForeignKey(
|
||||||
|
'common.OperationModel',
|
||||||
|
on_delete=models.CASCADE,
|
||||||
|
related_name='history_operations',
|
||||||
|
)
|
||||||
|
operation_date = models.DateTimeField(auto_now_add=True)
|
||||||
|
container = models.ForeignKey(
|
||||||
|
Container,
|
||||||
|
on_delete=models.CASCADE,
|
||||||
|
related_name='history_containers'
|
||||||
|
)
|
||||||
@ -0,0 +1,3 @@
|
|||||||
|
from django.test import TestCase
|
||||||
|
|
||||||
|
# Create your tests here.
|
||||||
@ -0,0 +1,3 @@
|
|||||||
|
from django.shortcuts import render
|
||||||
|
|
||||||
|
# Create your views here.
|
||||||
@ -0,0 +1,22 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
"""Django's command-line utility for administrative tasks."""
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
"""Run administrative tasks."""
|
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "DepoT.settings")
|
||||||
|
try:
|
||||||
|
from django.core.management import execute_from_command_line
|
||||||
|
except ImportError as exc:
|
||||||
|
raise ImportError(
|
||||||
|
"Couldn't import Django. Are you sure it's installed and "
|
||||||
|
"available on your PYTHONPATH environment variable? Did you "
|
||||||
|
"forget to activate a virtual environment?"
|
||||||
|
) from exc
|
||||||
|
execute_from_command_line(sys.argv)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
Loading…
Reference in New Issue