Мелкие правки модели заказа и исправление параметров метода order.create
This commit is contained in:
parent
1e5c479077
commit
ca5ddec512
@ -300,8 +300,7 @@ class ApiAccount:
|
|||||||
user.password = new_password
|
user.password = new_password
|
||||||
try:
|
try:
|
||||||
await sync_to_async(user.full_clean)()
|
await sync_to_async(user.full_clean)()
|
||||||
except:
|
except Exception:
|
||||||
traceback.print_exc()
|
|
||||||
raise Exception(API_ERROR_INVALID_PASSWORD)
|
raise Exception(API_ERROR_INVALID_PASSWORD)
|
||||||
|
|
||||||
if ApiAccount.__check_phone_code(phone, code):
|
if ApiAccount.__check_phone_code(phone, code):
|
||||||
@ -502,51 +501,70 @@ class ApiOrder:
|
|||||||
params=[
|
params=[
|
||||||
ApiParamAccessToken(),
|
ApiParamAccessToken(),
|
||||||
ApiParamStr(name='name', max_length=200, description="Название заказа"),
|
ApiParamStr(name='name', max_length=200, description="Название заказа"),
|
||||||
ApiParamStr(name='description', max_length=1000, description="Описание заказа",
|
ApiParamEnum(name="address_city", description="Город: {choices}", choices=CITIES_CHOICES),
|
||||||
required=False, default=""),
|
ApiParamStr(name='address_text', max_length=70, description="Улица, дом",
|
||||||
ApiParamFloat(name='square', value_max=99999.99, value_min=1.0,
|
|
||||||
description='Площадь в м²'),
|
|
||||||
ApiParamStr(name='work_time', max_length=100, description="Рабочее время",
|
|
||||||
required=False, default=""),
|
required=False, default=""),
|
||||||
|
|
||||||
ApiParamEnum(name='type_of_renovation', choices=Order.TYPE_OF_RENOVATION_CHOICES, required=False,
|
ApiParamEnum(name='type_of_apartment', choices=Order.TYPE_OF_APARTMENT_CHOICES, required=False,
|
||||||
default=Order.CHOICE_UNDEFINED,
|
default=Order.CHOICE_UNDEFINED,
|
||||||
description="Тип ремонта: {choices}"),
|
description="Вид объекта: {choices}"),
|
||||||
ApiParamEnum(name='type_of_house', choices=Order.TYPE_OF_HOUSE_CHOICES, required=False,
|
ApiParamEnum(name='type_of_house', choices=Order.TYPE_OF_HOUSE_CHOICES, required=False,
|
||||||
default=Order.CHOICE_UNDEFINED,
|
default=Order.CHOICE_UNDEFINED,
|
||||||
description="Тип дома: {choices}"),
|
description="Тип дома: {choices}"),
|
||||||
ApiParamEnum(name='type_of_room', choices=Order.TYPE_OF_ROOM_CHOICES, required=False,
|
ApiParamEnum(name='type_of_room', choices=Order.TYPE_OF_ROOM_CHOICES, required=False,
|
||||||
default=Order.CHOICE_UNDEFINED,
|
default=Order.CHOICE_UNDEFINED,
|
||||||
description="Тип квартиры: {choices}"),
|
description="Тип квартиры: {choices}"),
|
||||||
|
ApiParamInt(name='number_of_rooms', required=True, value_min=-1, value_max=100,
|
||||||
|
description="Количество комнат, -1 = студия"),
|
||||||
|
ApiParamBoolean(name="is_balcony", default=True, description="Балкон"),
|
||||||
|
ApiParamBoolean(name="is_loggia", default=True, description="Лоджия"),
|
||||||
|
ApiParamStr(name='state_of_room', max_length=40, description="Состояние помещения",
|
||||||
|
required=False, default=""),
|
||||||
|
ApiParamFloat(name='square', value_max=99999.99, value_min=1.0,
|
||||||
|
description='Площадь в м²'),
|
||||||
|
ApiParamFloat(name='ceiling_height', value_max=99.99, value_min=1.0,
|
||||||
|
description='Высота потолков в м'),
|
||||||
|
ApiParamEnum(name='type_of_renovation', choices=Order.TYPE_OF_RENOVATION_CHOICES, required=False,
|
||||||
|
default=Order.CHOICE_UNDEFINED,
|
||||||
|
description="Тип ремонта: {choices}"),
|
||||||
|
ApiParamBoolean(name="is_redevelopment", required=False, default=True,
|
||||||
|
description="Требуется перепланировка"),
|
||||||
|
ApiParamBoolean(name="is_leveling_floors", required=False, default=False,
|
||||||
|
description="Требуется выравнивание полов"),
|
||||||
|
ApiParamBoolean(name="is_heated_floor", required=False, default=False,
|
||||||
|
description="Теплый пол"),
|
||||||
|
ApiParamBoolean(name="is_leveling_walls", required=False, default=False,
|
||||||
|
description="Требуется выравнивание стен"),
|
||||||
|
ApiParamStr(name='type_of_ceiling', max_length=40, description="Тип потолка",
|
||||||
|
required=False, default=""),
|
||||||
|
ApiParamBoolean(name="is_wiring_replace", required=False, default=False,
|
||||||
|
description="Требуется замена проводки"),
|
||||||
|
ApiParamBoolean(name="is_require_design", required=False, default=False,
|
||||||
|
description="Требуется дизайн проект"),
|
||||||
|
|
||||||
ApiParamEnum(name='purchase_of_material', choices=Order.PURCHASE_OF_MATERIAL_CHOICES,
|
ApiParamEnum(name='purchase_of_material', choices=Order.PURCHASE_OF_MATERIAL_CHOICES,
|
||||||
required=False, default=Order.CHOICE_UNDEFINED,
|
required=False, default=Order.CHOICE_UNDEFINED,
|
||||||
description="Закуп материала: {choices}"),
|
description="Закуп материала: {choices}"),
|
||||||
|
|
||||||
# дальше отдельные флаги
|
|
||||||
ApiParamBoolean(name="is_with_warranty", required=False, default=True,
|
|
||||||
description="С гарантией"),
|
|
||||||
ApiParamBoolean(name="is_with_contract", required=False, default=False,
|
ApiParamBoolean(name="is_with_contract", required=False, default=False,
|
||||||
description="Работа по договору"),
|
description="Работа по договору"),
|
||||||
|
ApiParamBoolean(name="is_with_warranty", required=False, default=True,
|
||||||
|
description="С гарантией"),
|
||||||
ApiParamBoolean(name="is_with_trade", required=False, default=False,
|
ApiParamBoolean(name="is_with_trade", required=False, default=False,
|
||||||
description="Возможен торг"),
|
description="Возможен торг"),
|
||||||
ApiParamBoolean(name="is_with_cleaning", required=False, default=False,
|
ApiParamBoolean(name="is_with_cleaning", required=False, default=False,
|
||||||
description="С уборкой"),
|
description="С уборкой"),
|
||||||
ApiParamBoolean(name="is_with_garbage_removal", required=False, default=False,
|
|
||||||
description="С вывозом мусора"),
|
|
||||||
ApiParamBoolean(name="is_require_design", required=False, default=False,
|
|
||||||
description="Требуется дизайн проект"),
|
|
||||||
|
|
||||||
# примерная цена
|
|
||||||
ApiParamFloat(name='approximate_price', value_max=9999999999.99, value_min=1.0,
|
|
||||||
description='Примерная цена'),
|
|
||||||
|
|
||||||
# date_start = models.DateField(null=True, blank=True, default=None, verbose_name="Дата начала")
|
# date_start = models.DateField(null=True, blank=True, default=None, verbose_name="Дата начала")
|
||||||
# date_end = models.DateField(null=True, blank=True, default=None, verbose_name="Дата окончания")
|
# date_end = models.DateField(null=True, blank=True, default=None, verbose_name="Дата окончания")
|
||||||
|
|
||||||
ApiParamEnum(name="address_city", description="Город: {choices}", choices=CITIES_CHOICES),
|
ApiParamFloat(name='approximate_price', value_max=9999999999.99, value_min=1.0,
|
||||||
|
description='Примерная цена'),
|
||||||
|
ApiParamStr(name='description', max_length=1000, description="Описание заказа",
|
||||||
|
required=False, default=""),
|
||||||
|
ApiParamStr(name='video_link', max_length=160, description="Ссылка на видео",
|
||||||
|
required=False, default=""),
|
||||||
|
|
||||||
ApiParamStr(name='address_text', max_length=70, description="Улица, дом",
|
|
||||||
required=False, default="")
|
|
||||||
# email = models.EmailField(null=True, blank=True, verbose_name="Email")
|
# email = models.EmailField(null=True, blank=True, verbose_name="Email")
|
||||||
# phone = models.CharField(null=True, blank=True, max_length=16, verbose_name="Телефон")
|
# phone = models.CharField(null=True, blank=True, max_length=16, verbose_name="Телефон")
|
||||||
],
|
],
|
||||||
|
@ -253,7 +253,7 @@ class Order(models.Model):
|
|||||||
(TYPE_OF_APARTMENT_SECONDARY, 'Вторичка')
|
(TYPE_OF_APARTMENT_SECONDARY, 'Вторичка')
|
||||||
]
|
]
|
||||||
type_of_apartment = models.CharField(max_length=10, choices=TYPE_OF_APARTMENT_CHOICES, blank=True,
|
type_of_apartment = models.CharField(max_length=10, choices=TYPE_OF_APARTMENT_CHOICES, blank=True,
|
||||||
default=CHOICE_UNDEFINED, verbose_name="Тип квартиры")
|
default=CHOICE_UNDEFINED, verbose_name="Вид объекта")
|
||||||
|
|
||||||
# тип дома
|
# тип дома
|
||||||
TYPE_OF_HOUSE_BLOCK = 'block'
|
TYPE_OF_HOUSE_BLOCK = 'block'
|
||||||
@ -261,6 +261,7 @@ class Order(models.Model):
|
|||||||
TYPE_OF_HOUSE_MONOLITH = 'monolith'
|
TYPE_OF_HOUSE_MONOLITH = 'monolith'
|
||||||
TYPE_OF_HOUSE_PANEL = 'panel'
|
TYPE_OF_HOUSE_PANEL = 'panel'
|
||||||
|
|
||||||
|
# TODO добавить чойсов, их на самом деле больше
|
||||||
TYPE_OF_HOUSE_CHOICES = [
|
TYPE_OF_HOUSE_CHOICES = [
|
||||||
(TYPE_OF_HOUSE_BLOCK, 'Блочный'),
|
(TYPE_OF_HOUSE_BLOCK, 'Блочный'),
|
||||||
(TYPE_OF_HOUSE_BRICK, 'Кирпичный'),
|
(TYPE_OF_HOUSE_BRICK, 'Кирпичный'),
|
||||||
@ -307,7 +308,7 @@ class Order(models.Model):
|
|||||||
square = models.DecimalField(max_digits=7, decimal_places=2, blank=False, verbose_name="Площадь в м²")
|
square = models.DecimalField(max_digits=7, decimal_places=2, blank=False, verbose_name="Площадь в м²")
|
||||||
|
|
||||||
# высота потолков
|
# высота потолков
|
||||||
ceiling_height = models.DecimalField(max_digits=2, decimal_places=2, blank=False,
|
ceiling_height = models.DecimalField(max_digits=4, decimal_places=2, blank=False,
|
||||||
verbose_name="Высота потолков в м")
|
verbose_name="Высота потолков в м")
|
||||||
|
|
||||||
# Раздел "Ремонт"
|
# Раздел "Ремонт"
|
||||||
@ -332,9 +333,9 @@ class Order(models.Model):
|
|||||||
is_leveling_walls = models.BooleanField(default=False, verbose_name="Выравнивать стены")
|
is_leveling_walls = models.BooleanField(default=False, verbose_name="Выравнивать стены")
|
||||||
|
|
||||||
type_of_ceiling = models.CharField(max_length=40, blank=True, default=CHOICE_UNDEFINED,
|
type_of_ceiling = models.CharField(max_length=40, blank=True, default=CHOICE_UNDEFINED,
|
||||||
verbose_name="Потолок")
|
verbose_name="Тип потолка")
|
||||||
|
|
||||||
is_wiring_replace = models.BooleanField(default=False, verbose_name="Замена проводки")
|
is_wiring_replace = models.BooleanField(default=False, verbose_name="Требуется замена проводки")
|
||||||
is_require_design = models.BooleanField(default=False, verbose_name="Требуется дизайн проект")
|
is_require_design = models.BooleanField(default=False, verbose_name="Требуется дизайн проект")
|
||||||
|
|
||||||
# закуп материала
|
# закуп материала
|
||||||
@ -362,10 +363,11 @@ class Order(models.Model):
|
|||||||
|
|
||||||
description = models.TextField(blank=True, verbose_name="Описание")
|
description = models.TextField(blank=True, verbose_name="Описание")
|
||||||
|
|
||||||
# TODO сделать ссылку на видео
|
video_link = models.CharField(max_length=160, blank=True, default=CHOICE_UNDEFINED,
|
||||||
|
verbose_name="Ссылка на видео")
|
||||||
|
|
||||||
email = models.EmailField(null=True, blank=True, verbose_name="Email")
|
email = models.EmailField(blank=True, verbose_name="Email")
|
||||||
phone = models.CharField(null=True, blank=True, max_length=16, verbose_name="Телефон", validators=[
|
phone = models.CharField(blank=True, max_length=16, verbose_name="Телефон", validators=[
|
||||||
RegexValidator(regex="^\\+7[0-9]{10}$")
|
RegexValidator(regex="^\\+7[0-9]{10}$")
|
||||||
])
|
])
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user