Вьюшка: Подгружаемых фреймов ценовых предложений -- готово

This commit is contained in:
2022-12-31 04:33:59 +03:00
parent f2c89abe1c
commit 6a4c315cdc
2 changed files with 37 additions and 1 deletions

View File

@@ -71,9 +71,14 @@ urlpatterns = [
re_path(r'^catalog/company[/*]$', catalog.catalog_company), re_path(r'^catalog/company[/*]$', catalog.catalog_company),
re_path(r'^catalog/company/(?P<company_id>\d+)-(?P<company_name_slug>\S*)[/*]$', catalog.catalog_company_detail), re_path(r'^catalog/company/(?P<company_id>\d+)-(?P<company_name_slug>\S*)[/*]$', catalog.catalog_company_detail),
# ЦЕНОВЫЕ ПРЕДЛОЖЕНИЯ # ЦЕНОВЫЕ ПРЕДЛОЖЕНИЯ
# --- Одиночное окно
re_path(r'^tsena-odnogo-okna/(?P<win_width_mm>\d+)x(?P<win_height_mm>\d+)mm/tip(?P<win_id>\d+)[/*]$', re_path(r'^tsena-odnogo-okna/(?P<win_width_mm>\d+)x(?P<win_height_mm>\d+)mm/tip(?P<win_id>\d+)[/*]$',
prices.report_one_win_price), prices.report_one_win_price),
re_path(r'^(?P<build_id>\d{1,6})/(?P<apart_id>\d{1,})/(?P<slug>[\s\S]+|.*)$', prices.report_price), # --- Ценовая выдача
re_path(r'^(?P<build_id>\d+)/(?P<apart_id>\d+)/(?P<slug>[\s\S]+|.*)[/*]$', prices.report_price),
# --- Подгружаемый фрейм ценовая выдачи
re_path(r'^next_price_frame/idA(?P<apart_id>\d+)MDPO(?P<mount_dim_per_offer>\d+)LON(?P<address_longitude>\d+)'
r'LAT(?P<address_latitude>\d+\.*\d*)N(?P<frame_begin_n>\d+\.*\d*)\S*[/*]$', prices.next_price_frame),
] ]

View File

@@ -314,6 +314,35 @@ def report_price_frame(apartment_id: int, mount_dim_per_offer: int, address_long
return {'META_DATA_PUBLISH': time_for_meta, 'PRICE_FRAME': price_frame, 'N': n_begin} return {'META_DATA_PUBLISH': time_for_meta, 'PRICE_FRAME': price_frame, 'N': n_begin}
def next_price_frame(request: HttpRequest, apart_id: str = "1", mount_dim_per_offer: str = "1",
address_longitude: str = "0.", address_latitude: str = "0.",
frame_begin_n: str = "0") -> HttpResponse:
""" Возвращает очередным фреймом ценовых предложений.
:param request: HttpRequest -- входящий HTTP-запрос
:param apart_id: str -- ID типовой квартиры, для которой получаем ценовые предложения
:param mount_dim_per_offer: str -- число различных оконных проемов в этой квартире (чтобы отсеять предложения,
в которых не представлены все проемы)
:param address_longitude: str -- долгота адреса (геокоордината), для которого получаем ценовые предложения, чтобы
рассчитать удаленность компании предоставившей коммерческие предложения
:param address_latitude: str -- широта адреса (геокоордината), для которого получаем ценовые предложения, чтобы
рассчитать удаленность компании предоставившей коммерческие предложения
:param frame_begin_n: str -- Номер записи с которой начинается фрейм с ценами
:return: HttpResponse -- HTTP-ответ с JSON-данными:
"""
time_start = time.time()
# получаем данные для фрейма ценовых предложений
PriceFrame = report_price_frame(int(apart_id), int(mount_dim_per_offer), float(address_longitude),
float(address_latitude), int(frame_begin_n))
to_template = PriceFrame
to_template.update({'APPARTMENT_ID': apart_id,
'MOUNT_DIM_PER_OFFER': mount_dim_per_offer,
'ADDRESS_LAT': address_latitude,
'ADDRESS_LON': address_longitude,
'ticks': float(time.time() - time_start)})
return render(request, "report/report_precelist_frame.html", to_template)
def report_one_win_price(request: HttpRequest, win_width_mm: str = '670', win_height_mm: str = '2160', def report_one_win_price(request: HttpRequest, win_width_mm: str = '670', win_height_mm: str = '2160',
win_id: str = '16') -> HttpResponse: win_id: str = '16') -> HttpResponse:
""" Формируем выдачу цен для единичного ТИПОВОГО окна (т.е. проема из серийного дома). """ Формируем выдачу цен для единичного ТИПОВОГО окна (т.е. проема из серийного дома).
@@ -444,6 +473,8 @@ def report_one_win_price(request: HttpRequest, win_width_mm: str = '670', win_he
return render(request, "report/report_price-offers_for_one_window.html", to_template) return render(request, "report/report_price-offers_for_one_window.html", to_template)
def report_price(request: HttpRequest, build_id: str = "22427", apart_id: str = "61", def report_price(request: HttpRequest, build_id: str = "22427", apart_id: str = "61",
slug: str = "g-moskva-ul-novorossijskaya-d-16") -> HttpResponse: slug: str = "g-moskva-ul-novorossijskaya-d-16") -> HttpResponse:
""" Страница с расчетом стоимости окон """ Страница с расчетом стоимости окон