route model
This commit is contained in:
SDE
2023-07-13 15:06:08 +03:00
parent 30302cfb39
commit 4684dcb589
4 changed files with 120 additions and 19 deletions

View File

@@ -6,20 +6,26 @@ from django.core.exceptions import ValidationError
from .models import *
class RegistrationForm(forms.Form):
type_transport = forms.ChoiceField(choices=type_transport_choices, initial='avia', required=True, label='Выберите способ перевозки')
departure_DT = forms.DateTimeField(required=True, label='Дата и время выезда')
arrival_DT = forms.DateTimeField(required=True, label='Дата и время прибытия')
from_country = forms.CharField(required=True, label='Пункт выезда')
to_country = forms.CharField(required=True, label='Пункт приезда')
# from_city = forms.CharField(required=True)
# to_city = forms.CharField(required=True)
from_place = forms.ChoiceField(choices=transfer_location_choices, initial='other', required=True, label='Откуда можете забрать?')
to_place = forms.ChoiceField(choices=transfer_location_choices, initial='other', required=True, label='Куда можете доставить?')
cargo_type = forms.ChoiceField(choices=cargo_type_choices, initial='parcel', required=True, label='Могу перевезти')
weight = forms.IntegerField(required=True, label='Укажите вес до (кг)')
phone = forms.CharField(required=True, label='Укажите номер для связи')
add_phone = forms.CharField(required=True, label='Дополнительный номер')
receive_msg_by_email = forms.BooleanField(initial=False, required=True, label='Получать уведомления по E-mail')
# receive_msg_by_sms = forms.BooleanField(initial=False, required=True)
# owner = forms.IntegerField(required=True)
class RegistrationForm(forms.ModelForm):
class Meta:
model = Route
exclude = ['receive_msg_by_sms', 'owner', 'owner_type']
# class RegistrationForm(forms.Form):
# type_transport = forms.ChoiceField(choices=type_transport_choices, initial='avia', required=True, label='Выберите способ перевозки')
# departure_DT = forms.DateTimeField(required=True, label='Дата и время выезда')
# arrival_DT = forms.DateTimeField(required=True, label='Дата и время прибытия')
# from_country = forms.CharField(required=True, label='Пункт выезда')
# to_country = forms.CharField(required=True, label='Пункт приезда')
# # from_city = forms.CharField(required=True)
# # to_city = forms.CharField(required=True)
# from_place = forms.ChoiceField(choices=transfer_location_choices, initial='other', required=True, label='Откуда можете забрать?')
# to_place = forms.ChoiceField(choices=transfer_location_choices, initial='other', required=True, label='Куда можете доставить?')
# cargo_type = forms.ChoiceField(choices=cargo_type_choices, initial='parcel', required=True, label='Могу перевезти')
# weight = forms.IntegerField(required=True, label='Укажите вес до (кг)')
# phone = forms.CharField(required=True, label='Укажите номер для связи')
# add_phone = forms.CharField(required=True, label='Дополнительный номер')
# receive_msg_by_email = forms.BooleanField(initial=False, required=True, label='Получать уведомления по E-mail')
# # receive_msg_by_sms = forms.BooleanField(initial=False, required=True)
# # owner = forms.IntegerField(required=True)

View File

@@ -0,0 +1,50 @@
# Generated by Django 4.2.2 on 2023-07-13 15:00
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='Route',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.TextField(blank=True, help_text='Название', null=True, verbose_name='Название')),
('name_plural', models.TextField(blank=True, null=True, verbose_name='Название (множественное число)')),
('order', models.IntegerField(blank=True, null=True, verbose_name='Очередность отображения')),
('createDT', models.DateTimeField(auto_now_add=True, verbose_name='Дата и время создания')),
('modifiedDT', models.DateTimeField(blank=True, null=True, verbose_name='Дата и время последнего изменения')),
('enable', models.BooleanField(db_index=True, default=True, verbose_name='Включено')),
('json_data', models.JSONField(blank=True, default=dict, verbose_name='Дополнительные данные')),
('owner_type', models.CharField(choices=[('customer', 'Заказчик'), ('mover', 'Перевозчик')], default='customer', verbose_name='Тип опреации')),
('type_transport', models.CharField(choices=[('avia', 'Авиатранспорт'), ('road', 'Наземный транспорт')], default='avia', verbose_name='Выберите способ перевозки')),
('departure_DT', models.DateTimeField(default=True, verbose_name='Дата и время выезда')),
('arrival_DT', models.DateTimeField(default=True, verbose_name='Дата и время прибытия')),
('from_country', models.CharField(verbose_name='Пункт выезда')),
('to_country', models.CharField(verbose_name='Пункт приезда')),
('from_place', models.CharField(choices=[('airport', 'В аэропорту'), ('city', 'По городу'), ('other', 'По договоренности')], default='other', verbose_name='Откуда можете забрать?')),
('to_place', models.CharField(choices=[('airport', 'В аэропорту'), ('city', 'По городу'), ('other', 'По договоренности')], default='other', verbose_name='Куда можете доставить?')),
('cargo_type', models.CharField(choices=[('passenger', 'Пассажир'), ('cargo', 'Груз'), ('parcel', 'Бандероль'), ('package', 'Посылка'), ('letter', 'Письмо\\Документ')], default='parcel', verbose_name='Могу перевезти')),
('weight', models.IntegerField(verbose_name='Укажите вес до (кг)')),
('phone', models.CharField(verbose_name='Укажите номер для связи')),
('extra_phone', models.CharField(blank=True, null=True, verbose_name='Дополнительный номер')),
('receive_msg_by_email', models.BooleanField(default=False, verbose_name='Получать уведомления по E-mail')),
('receive_msg_by_sms', models.BooleanField(default=False, verbose_name='Получать уведомления по SMS')),
('owner', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='rel_routes_for_owner', to=settings.AUTH_USER_MODEL, verbose_name='Владелец')),
],
options={
'verbose_name': 'Маршрут',
'verbose_name_plural': 'Маршруты',
'ordering': ('name',),
},
),
]

View File

@@ -1,6 +1,6 @@
from django.db import models
from django.utils.translation import gettext_lazy as _
# Create your models here.
from BaseModels.base_models import BaseModel
type_transport_choices = (
@@ -20,4 +20,48 @@ cargo_type_choices = (
('parcel', _('Бандероль')),
('package', _('Посылка')),
('letter', _('Письмо\Документ'))
)
)
owner_type_choices = (
('customer', 'Заказчик'),
('mover', 'Перевозчик')
)
class Route(BaseModel):
from django.contrib.auth.models import User
owner_type = models.CharField(
choices=owner_type_choices, default='customer', verbose_name=_('Тип опреации'))
type_transport = models.CharField(
choices=type_transport_choices, default='avia', verbose_name=_('Выберите способ перевозки'))
departure_DT = models.DateTimeField(default=True, verbose_name=_('Дата и время выезда'))
arrival_DT = models.DateTimeField(default=True, verbose_name=_('Дата и время прибытия'))
from_country = models.CharField(verbose_name=_('Пункт выезда'))
to_country = models.CharField(verbose_name=_('Пункт приезда'))
# from_city = forms.CharField(required=True)
# to_city = forms.CharField(required=True)
from_place = models.CharField(choices=transfer_location_choices, default='other',
verbose_name=_('Откуда можете забрать?'))
to_place = models.CharField(choices=transfer_location_choices, default='other',
verbose_name=_('Куда можете доставить?'))
cargo_type = models.CharField(choices=cargo_type_choices, default='parcel', verbose_name=_('Могу перевезти'))
weight = models.IntegerField(verbose_name=_('Укажите вес до (кг)'))
phone = models.CharField(verbose_name=_('Укажите номер для связи'))
extra_phone = models.CharField(verbose_name=_('Дополнительный номер'), blank=True, null=True)
receive_msg_by_email = models.BooleanField(default=False, verbose_name=_('Получать уведомления по E-mail'))
receive_msg_by_sms = models.BooleanField(default=False, verbose_name=_('Получать уведомления по SMS'))
owner = models.ForeignKey(User, verbose_name=_('Владелец'), related_name='rel_routes_for_owner', on_delete=models.CASCADE)
def __str__(self):
if self.name:
return f'{self.name}'
else:
return str(self.id)
class Meta:
verbose_name = _(u'Маршрут')
verbose_name_plural = _(u'Маршруты')
ordering = ('name',)

View File

@@ -46,6 +46,7 @@ INSTALLED_APPS = [
'GeneralApp',
'AuthApp',
'RoutesApp',
]
MIDDLEWARE = [