2.1.0 change model route

This commit is contained in:
SDE
2024-12-05 16:14:07 +03:00
parent b6c56b4890
commit a140ffe523
4 changed files with 100 additions and 25 deletions

View File

@@ -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'
]

View File

@@ -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', _('Указана неверная дата прибытия'))

View File

@@ -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='Укажите вес до (кг)'),
),
]

View File

@@ -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