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
kikimor 8 months ago
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…
Cancel
Save