From 99415d4f7ecc93d6f67c1176cf0b9f649d0a1434 Mon Sep 17 00:00:00 2001 From: vlados31 Date: Sun, 25 Sep 2022 17:29:45 +0300 Subject: [PATCH] Add basic order model --- order/models.py | 94 ++++++++++++++++++++++++++++++++++++++++++++++++- order/urls.py | 6 ---- 2 files changed, 93 insertions(+), 7 deletions(-) diff --git a/order/models.py b/order/models.py index 71a8362..21ff6f5 100644 --- a/order/models.py +++ b/order/models.py @@ -1,3 +1,95 @@ from django.db import models -# Create your models here. + +class Order(models.Model): + # основные поля: название и описание + name = models.CharField(max_length=200) + description = models.TextField(blank=True) + + # площадь в квадратных метрах + square = models.DecimalField(max_digits=5, decimal_places=2, blank=False) + + # TODO время работы, мы пока не определились как его хранить + # но было предложение от Паши хранить просто строкой, как на виксе + + # дальше вид дома, тип ремонта, тип квартиры, требуется дизайн проект, закуп материала, тип исполнителя + + # тип ремонта + TYPE_OF_RENOVATION_UNDEFINED = '' + TYPE_OF_RENOVATION_OVERHAUL = 'overhaul' + TYPE_OF_RENOVATION_PARTIAL = 'partial' + TYPE_OF_RENOVATION_REDECOR = 'redecor' + TYPE_OF_RENOVATION_PREMIUM = 'premium' + TYPE_OF_RENOVATION_DESIGN = 'design' + + TYPE_OF_RENOVATION_CHOICES = [ + (TYPE_OF_RENOVATION_UNDEFINED, 'Не указан'), + (TYPE_OF_RENOVATION_OVERHAUL, 'Капитальный'), + (TYPE_OF_RENOVATION_PARTIAL, 'Частичный'), + (TYPE_OF_RENOVATION_REDECOR, 'Косметический'), + (TYPE_OF_RENOVATION_PREMIUM, 'Премиальный'), + (TYPE_OF_RENOVATION_DESIGN, 'Дизайнерский'), + ] + type_of_renovation = models.CharField(max_length=10, choices=TYPE_OF_RENOVATION_CHOICES, blank=True, + default=TYPE_OF_RENOVATION_UNDEFINED) + + # тип дома + TYPE_OF_HOUSE_BLOCK = 'block' + TYPE_OF_HOUSE_BRICK = 'brick' + TYPE_OF_HOUSE_MONOLITH = 'monolith' + TYPE_OF_HOUSE_PANEL = 'panel' + + TYPE_OF_HOUSE_CHOICES = [ + (TYPE_OF_HOUSE_BLOCK, 'Блочный'), + (TYPE_OF_HOUSE_BRICK, 'Кирпичный'), + (TYPE_OF_HOUSE_MONOLITH, 'Монолит'), + (TYPE_OF_HOUSE_PANEL, 'Панельный'), + ] + type_of_house = models.CharField(max_length=10, choices=TYPE_OF_HOUSE_CHOICES, blank=True) + + # тип квартиры + TYPE_OF_ROOM_PRIMARY = 'primary' + TYPE_OF_ROOM_SECONDARY = 'secondary' + + TYPE_OF_ROOM_CHOICES = [ + (TYPE_OF_ROOM_PRIMARY, 'Первичка'), + (TYPE_OF_ROOM_SECONDARY, 'Вторичка') + ] + type_of_room = models.CharField(max_length=10, choices=TYPE_OF_ROOM_CHOICES, blank=True) + + # требуется дизайн проект + REQUIRED_DESIGN_CHOICES = ((None, ''), (True, 'Да'), (False, 'Нет')) + is_require_design = models.BooleanField(default=None, blank=True, null=True, choices=REQUIRED_DESIGN_CHOICES) + + # закуп материала + PURCHASE_OF_MATERIAL_EXECUTOR = 'executor' + PURCHASE_OF_MATERIAL_CUSTOMER = 'customer' + + PURCHASE_OF_MATERIAL_CHOICES = [ + (PURCHASE_OF_MATERIAL_EXECUTOR, 'Исполнитель'), + (PURCHASE_OF_MATERIAL_CUSTOMER, 'Заказчик') + ] + purchase_of_material = models.CharField(max_length=10, choices=PURCHASE_OF_MATERIAL_CHOICES, blank=True) + + # тип исполнителя + TYPE_OF_EXECUTOR_INDIVIDUAL = 'individual' + TYPE_OF_EXECUTOR_COMPANY = 'company' + + TYPE_OF_EXECUTOR_CHOICES = [ + (TYPE_OF_EXECUTOR_INDIVIDUAL, 'Самозанятый/бригада'), + (TYPE_OF_EXECUTOR_COMPANY, 'Компания') + ] + type_of_executor = models.CharField(max_length=10, choices=TYPE_OF_ROOM_CHOICES, blank=True) + + # дальше отдельные параметры + is_with_warranty = models.BooleanField(default=True, verbose_name="С гарантией") + is_with_contract = models.BooleanField(default=False, verbose_name="Работа по договору") + is_with_trade = models.BooleanField(default=False, verbose_name="Возможен торг") + is_with_cleaning = models.BooleanField(default=False, verbose_name="С уборкой") + is_with_garbage_removal = models.BooleanField(default=False, verbose_name="С вывозом мусора") + + # примерная цена + approximate_price = models.DecimalField(max_digits=9, decimal_places=2, blank=False) + + # TODO нужно определится по поводу почты, телефона, адреса + diff --git a/order/urls.py b/order/urls.py index 840b146..1e0cf97 100644 --- a/order/urls.py +++ b/order/urls.py @@ -20,11 +20,5 @@ from . import views urlpatterns = [ path('', views.orders_list, name='orders-list'), path('create', views.order_create, name='order-create'), - # path('account', views.account, name='account'), - # path('account_', views.account_action, name='account_action'), - # - # path('catalog/', views.catalog, name='catalog'), - # path('catalog//', views.product_view, name='product_view'), - # path('cart', views.cart, name='cart'), ]