2.1.0 change model route
This commit is contained in:
@@ -11,8 +11,9 @@ class Admin_Route(Admin_Trans_BaseModel):
|
||||
'id', 'owner_type',
|
||||
'rising_DT',
|
||||
'receive_msg_by_email', 'type_transport', 'cargo_type',
|
||||
'departure_DT', 'from_city', 'from_place',
|
||||
'arrival_DT', 'to_city', 'to_place', 'owner',
|
||||
'departure_DT', 'from_city', #'from_place',
|
||||
'arrival_DT', 'to_city', #'to_place',
|
||||
'owner',
|
||||
'order', 'modifiedDT', 'createDT'
|
||||
]
|
||||
list_editable = ['rising_DT']
|
||||
@@ -23,7 +24,8 @@ class Admin_Route(Admin_Trans_BaseModel):
|
||||
'owner_type', 'type_transport',
|
||||
'rising_DT',
|
||||
'cargo_type',
|
||||
'from_place', 'arrival_DT',
|
||||
# 'from_place',
|
||||
'arrival_DT',
|
||||
'modifiedDT', 'createDT'
|
||||
]
|
||||
|
||||
|
||||
@@ -48,16 +48,17 @@ def routeForm_assign_choices_by_type_transport(form, type_transport):
|
||||
|
||||
|
||||
class RouteForm(forms.ModelForm):
|
||||
from_address_point_txt = forms.CharField(required=True)
|
||||
to_address_point_txt = forms.CharField(required=True)
|
||||
departure_DT = forms.DateTimeField(required=True, input_formats=['%d.%m.%Y %H:%M'])
|
||||
arrival_DT = forms.DateTimeField(required=True, input_formats=['%d.%m.%Y %H:%M'])
|
||||
# from_address_point_txt = forms.CharField(required=True)
|
||||
# to_address_point_txt = forms.CharField(required=True)
|
||||
departure_DT = forms.DateField(required=True, input_formats=['%d.%m.%Y'])
|
||||
arrival_DT = forms.DateField(required=True, input_formats=['%d.%m.%Y'])
|
||||
|
||||
class Meta:
|
||||
model = Route
|
||||
exclude = [
|
||||
'name', 'name_plural', 'order', 'createDT', 'modifiedDT', 'enable', 'json_data',
|
||||
'receive_msg_by_sms', 'owner', 'owner_type'
|
||||
'receive_msg_by_sms', 'owner', 'owner_type',
|
||||
'extra_phone', 'weight', ''
|
||||
]
|
||||
|
||||
def clean(self):
|
||||
@@ -72,11 +73,11 @@ class RouteForm(forms.ModelForm):
|
||||
if error:
|
||||
self.add_error('phone', error)
|
||||
|
||||
if 'extra_phone' in cleaned_data and 'extra_phone' in cleaned_data:
|
||||
from BaseModels.validators.form_field_validators import get_phone_valid_error
|
||||
error = get_phone_valid_error(cleaned_data["extra_phone"])
|
||||
if error:
|
||||
self.add_error('extra_phone', error)
|
||||
# if 'extra_phone' in cleaned_data and 'extra_phone' in cleaned_data:
|
||||
# from BaseModels.validators.form_field_validators import get_phone_valid_error
|
||||
# error = get_phone_valid_error(cleaned_data["extra_phone"])
|
||||
# if error:
|
||||
# self.add_error('extra_phone', error)
|
||||
|
||||
if 'departure_DT' in cleaned_data and 'arrival_DT' in cleaned_data and cleaned_data['arrival_DT'] < cleaned_data['departure_DT']:
|
||||
self.add_error('arrival_DT', _('Указана неверная дата прибытия'))
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
# Generated by Django 4.2.2 on 2024-12-05 15:59
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('RoutesApp', '0009_alter_route_phone'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='route',
|
||||
name='comment',
|
||||
field=models.TextField(blank=True, null=True, verbose_name='Примечания'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='route',
|
||||
name='cargo_type',
|
||||
field=models.CharField(choices=[('passenger', 'Пассажир'), ('cargo', 'Груз (свыше 30 кг)'), ('parcel', 'Бандероль (до 5кг)'), ('package', 'Посылка (до 30кг)'), ('letter', 'Письмо\\Документы')], default='parcel', verbose_name='Могу перевезти'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='route',
|
||||
name='departure_DT',
|
||||
field=models.DateTimeField(blank=True, null=True, verbose_name='Дата и время выезда'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='route',
|
||||
name='from_place',
|
||||
field=models.CharField(blank=True, choices=[('airport', 'В аэропорту'), ('city', 'По городу'), ('other', 'По договоренности')], default='other', null=True, verbose_name='Откуда можете забрать?'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='route',
|
||||
name='to_place',
|
||||
field=models.CharField(blank=True, choices=[('airport', 'В аэропорту'), ('city', 'По городу'), ('other', 'По договоренности')], default='other', null=True, verbose_name='Куда можете доставить?'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='route',
|
||||
name='type_transport',
|
||||
field=models.CharField(blank=True, choices=[('', 'Мне без разницы'), ('avia', 'Авиатранспорт'), ('road', 'Наземный транспорт')], default='', verbose_name='Выберите способ перевозки'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='route',
|
||||
name='weight',
|
||||
field=models.IntegerField(blank=True, null=True, verbose_name='Укажите вес до (кг)'),
|
||||
),
|
||||
]
|
||||
@@ -5,7 +5,7 @@ from colorfield.fields import ColorField
|
||||
|
||||
|
||||
type_transport_choices = [
|
||||
('', _('-- Выберите cпособ перевозки --')),
|
||||
('', _('Мне без разницы')),
|
||||
('avia', _('Авиатранспорт')),
|
||||
('road', _('Наземный транспорт'))
|
||||
]
|
||||
@@ -18,10 +18,10 @@ transfer_location_choices = (
|
||||
|
||||
cargo_type_choices = (
|
||||
('passenger', _('Пассажир')),
|
||||
('cargo', _('Груз')),
|
||||
('parcel', _('Бандероль')),
|
||||
('package', _('Посылка')),
|
||||
('letter', _('Письмо\Документ'))
|
||||
('cargo', _('Груз (свыше 30 кг)')),
|
||||
('parcel', _('Бандероль (до 5кг)')),
|
||||
('package', _('Посылка (до 30кг)')),
|
||||
('letter', _('Письмо\Документы'))
|
||||
)
|
||||
|
||||
owner_type_choices = (
|
||||
@@ -38,11 +38,19 @@ class Route(BaseModel):
|
||||
choices=owner_type_choices, default='customer', verbose_name=_('Тип опреации'))
|
||||
|
||||
type_transport = models.CharField(
|
||||
choices=type_transport_choices, default='', verbose_name=_('Выберите способ перевозки'))
|
||||
departure_DT = models.DateTimeField(verbose_name=_('Дата и время выезда'))
|
||||
choices=type_transport_choices, default='', verbose_name=_('Выберите способ перевозки'),
|
||||
blank=True
|
||||
)
|
||||
# не обязательно с v2
|
||||
departure_DT = models.DateTimeField(
|
||||
verbose_name=_('Дата и время выезда'), null=True, blank=True
|
||||
)
|
||||
arrival_DT = models.DateTimeField(verbose_name=_('Дата и время прибытия'))
|
||||
# не используем с v2
|
||||
from_address_point = models.IntegerField(verbose_name=_('Пункт выезда'))
|
||||
# не используем с v2
|
||||
to_address_point = models.IntegerField(verbose_name=_('Пункт приезда'))
|
||||
|
||||
from_city = models.ForeignKey(
|
||||
City, verbose_name=_('Город отправки'), related_name='rel_routes_for_cityFrom', on_delete=models.SET_NULL,
|
||||
null=True, blank=True
|
||||
@@ -51,18 +59,34 @@ class Route(BaseModel):
|
||||
City, verbose_name=_('Город получения'), related_name='rel_routes_for_cityTo', on_delete=models.SET_NULL,
|
||||
null=True, blank=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=_('Куда можете доставить?'))
|
||||
# не используем с v2
|
||||
from_place = models.CharField(
|
||||
choices=transfer_location_choices, default='other',
|
||||
verbose_name=_('Откуда можете забрать?'),
|
||||
null=True, blank=True
|
||||
)
|
||||
# не используем с v2
|
||||
to_place = models.CharField(
|
||||
choices=transfer_location_choices, default='other',
|
||||
verbose_name=_('Куда можете доставить?'),
|
||||
null=True, blank=True
|
||||
)
|
||||
cargo_type = models.CharField(choices=cargo_type_choices, default='parcel', verbose_name=_('Могу перевезти'))
|
||||
weight = models.IntegerField(verbose_name=_('Укажите вес до (кг)'))
|
||||
# не используем с v2
|
||||
weight = models.IntegerField(verbose_name=_('Укажите вес до (кг)'), null=True, blank=True)
|
||||
phone = models.CharField(verbose_name=_('Укажите номер для связи'), blank=True, null=True)
|
||||
# не используем с v2
|
||||
extra_phone = models.CharField(verbose_name=_('Дополнительный номер'), blank=True, null=True)
|
||||
|
||||
receive_msg_by_email = models.BooleanField(default=False, verbose_name=_('Получать уведомления по E-mail'))
|
||||
# не используем с v2
|
||||
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)
|
||||
|
||||
# добавлен в v2
|
||||
comment = models.TextField(verbose_name='Примечания', null=True, blank=True)
|
||||
|
||||
rising_DT = models.DateTimeField(
|
||||
verbose_name=_('Дата и время последнего поднятия'),
|
||||
blank=True, null=True
|
||||
|
||||
Reference in New Issue
Block a user